├── .gitignore ├── Gruntfile.js ├── README.md ├── gulpfile.js ├── karma.conf.js ├── lib ├── My97DatePicker │ ├── WdatePicker.js │ └── calendar.js ├── angular-1.3.6 │ ├── angular-animate.js │ ├── angular-animate.min.js │ ├── angular-animate.min.js.map │ ├── angular-aria.js │ ├── angular-aria.min.js │ ├── angular-aria.min.js.map │ ├── angular-cookies.js │ ├── angular-cookies.min.js │ ├── angular-cookies.min.js.map │ ├── angular-csp.css │ ├── angular-loader.js │ ├── angular-loader.min.js │ ├── angular-loader.min.js.map │ ├── angular-messages.js │ ├── angular-messages.min.js │ ├── angular-messages.min.js.map │ ├── angular-mocks.js │ ├── angular-resource.js │ ├── angular-resource.min.js │ ├── angular-resource.min.js.map │ ├── angular-route.js │ ├── angular-route.min.js │ ├── angular-route.min.js.map │ ├── angular-sanitize.js │ ├── angular-sanitize.min.js │ ├── angular-sanitize.min.js.map │ ├── angular-scenario.js │ ├── angular-touch.js │ ├── angular-touch.min.js │ ├── angular-touch.min.js.map │ ├── angular.js │ ├── angular.min.js │ ├── angular.min.js.map │ ├── errors.json │ ├── i18n │ │ ├── angular-locale_en-us.js │ │ ├── angular-locale_en.js │ │ ├── angular-locale_zh-cn.js │ │ └── angular-locale_zh.js │ ├── version.json │ └── version.txt ├── angular-locale_zh-cn.js ├── angular-mocks.js ├── angular.js ├── helpers.js ├── jquery-1.8.2.min.js └── resize-listener.js ├── misc ├── css │ ├── bootstrap.min.css │ └── demo.css ├── google-code-prettify │ ├── lang-apollo.js │ ├── lang-basic.js │ ├── lang-clj.js │ ├── lang-css.js │ ├── lang-dart.js │ ├── lang-erlang.js │ ├── lang-go.js │ ├── lang-hs.js │ ├── lang-lisp.js │ ├── lang-llvm.js │ ├── lang-lua.js │ ├── lang-matlab.js │ ├── lang-ml.js │ ├── lang-mumps.js │ ├── lang-n.js │ ├── lang-pascal.js │ ├── lang-proto.js │ ├── lang-r.js │ ├── lang-rd.js │ ├── lang-scala.js │ ├── lang-sql.js │ ├── lang-tcl.js │ ├── lang-tex.js │ ├── lang-vb.js │ ├── lang-vhdl.js │ ├── lang-wiki.js │ ├── lang-xq.js │ ├── lang-yaml.js │ ├── prettify.css │ ├── prettify.js │ └── run_prettify.js ├── icon │ └── redflag16.png ├── imageview │ ├── 1.jpg │ ├── 2.jpg │ ├── 3.jpg │ ├── B2.jpg │ └── B3.jpg ├── js │ └── ng-stats.js ├── temp │ ├── fileupload_test.html │ └── tabset_test.html ├── tempimg │ ├── button │ │ ├── iconl.gif │ │ └── iconr.gif │ ├── carousel │ │ ├── carousel1.jpg │ │ ├── carousel2.jpg │ │ ├── carousel3.jpg │ │ ├── carousel4.jpg │ │ ├── carousel5.jpg │ │ └── carousel6.jpg │ ├── menu │ │ └── save.gif │ └── panel │ │ └── icon.gif └── test.html ├── package.json ├── src ├── accordion │ ├── accordion.js │ ├── docs │ │ ├── demo.js │ │ ├── demo.json │ │ ├── demo1.html │ │ ├── demo1.js │ │ ├── demo2.html │ │ ├── demo2.js │ │ ├── demo3.html │ │ ├── demo3.js │ │ ├── demo_height.html │ │ ├── demo_isOpen.html │ │ ├── demo_isOpen.js │ │ ├── demo_listener.html │ │ ├── demo_listener.js │ │ ├── demo_method.html │ │ ├── demo_method.js │ │ └── demo_oneOpen.html │ ├── simpleTest.html │ ├── template │ │ └── accordion │ │ │ ├── wi-accordion-group.html │ │ │ └── wi-accordion.html │ └── test │ │ └── accordion.spec.js ├── alert │ ├── alert.js │ ├── docs │ │ ├── demo.json │ │ ├── demo1.html │ │ ├── demo1.js │ │ ├── demo2.html │ │ └── demo2.js │ └── test_alert.html ├── bindHtml │ ├── bindHtml.js │ └── docs │ │ ├── demo.html │ │ ├── demo.js │ │ ├── demo.json │ │ ├── demo_elem.html │ │ └── demo_elem.js ├── button │ ├── button.js │ ├── docs │ │ ├── demo.html │ │ ├── demo.js │ │ └── demo.json │ ├── template │ │ └── button │ │ │ └── wi-button.html │ └── test_button.html ├── camerascanner │ ├── camerascanner.js │ ├── demo │ │ └── camerascanner │ │ │ └── docs │ │ │ └── jscam.swf │ ├── docs │ │ ├── demo.json │ │ ├── demo1.html │ │ ├── demo1.js │ │ └── jscam.swf │ ├── template │ │ ├── camerascanner │ │ │ └── camerascannerTemplate.html │ │ └── imageview │ │ │ └── imageviewTemplate.html │ └── test_camerascanner.html ├── carousel │ ├── carousel.js │ ├── docs │ │ ├── demo.html │ │ ├── demo.js │ │ └── demo.json │ ├── simpleTest.html │ ├── template │ │ └── carousel │ │ │ ├── carousel.html │ │ │ └── slide.html │ └── test │ │ └── carousel.spec.js ├── collapse │ ├── collapse.js │ ├── docs │ │ ├── demo.html │ │ ├── demo.js │ │ └── demo.json │ ├── simpleTest.html │ └── test │ │ └── collapse.spec.js ├── combobox │ ├── combobox.js │ ├── docs │ │ ├── comboBox_basic.html │ │ ├── comboBox_basic.js │ │ ├── comboBox_enable.html │ │ ├── comboBox_enable.js │ │ ├── comboBox_group.html │ │ ├── comboBox_group.js │ │ ├── comboBox_multi.html │ │ ├── comboBox_multi.js │ │ ├── comboBox_noEdit.html │ │ ├── comboBox_noEdit.js │ │ ├── comboBox_rowCount.html │ │ ├── comboBox_rowCount.js │ │ └── demo.json │ ├── template │ │ └── combobox │ │ │ └── comboboxTemplate.html │ └── test_combobox.html ├── common │ └── common.js ├── datagrid │ ├── datagrid.js │ ├── docs │ │ ├── datagrid_basic.html │ │ ├── datagrid_basic.js │ │ ├── datagrid_columnGroup.html │ │ ├── datagrid_columnGroup.js │ │ ├── datagrid_excel.html │ │ ├── datagrid_excel.js │ │ ├── datagrid_filter.html │ │ ├── datagrid_filter.js │ │ ├── datagrid_headRenderer.html │ │ ├── datagrid_headRenderer.js │ │ ├── datagrid_itemRenderer.html │ │ ├── datagrid_itemRenderer.js │ │ ├── datagrid_labfunction.html │ │ ├── datagrid_labfunction.js │ │ ├── datagrid_lockColumn.html │ │ ├── datagrid_lockColumn.js │ │ ├── datagrid_multiSelect.html │ │ ├── datagrid_multiSelect.js │ │ ├── datagrid_nopage.html │ │ ├── datagrid_nopage.js │ │ ├── datagrid_rowcolor.html │ │ ├── datagrid_rowcolor.js │ │ ├── datagrid_server.html │ │ ├── datagrid_server.js │ │ ├── datagrid_sort.html │ │ ├── datagrid_sort.js │ │ ├── datagrid_tool.html │ │ ├── datagrid_tool.js │ │ ├── datagrid_tree.html │ │ ├── datagrid_tree.js │ │ └── demo.json │ ├── template │ │ └── datagrid │ │ │ └── datagridTemplate.html │ ├── test.html │ ├── test │ │ └── datagrid.spec.js │ ├── test_datagrid.html │ └── test_progress.html ├── dialog │ ├── dialog.js │ ├── docs │ │ ├── demo.json │ │ ├── demo1.html │ │ ├── demo1.js │ │ ├── demo2.html │ │ ├── demo2.js │ │ ├── demo3.html │ │ ├── demo3.js │ │ ├── demo4.html │ │ ├── demo4.js │ │ ├── demo5.html │ │ ├── demo5.js │ │ ├── iframe.html │ │ └── template.html │ ├── iframe.html │ ├── index.html │ ├── template.html │ └── test_dialog.html ├── dividedbox │ ├── dividedbox.js │ ├── docs │ │ ├── demo.html │ │ ├── demo.js │ │ ├── demo.json │ │ ├── demo0.html │ │ ├── demo1.html │ │ ├── demo2.html │ │ └── demo_head.html │ ├── template │ │ └── dividedbox │ │ │ ├── wi-dividedbox-group.html │ │ │ └── wi-dividedbox.html │ └── test_dividedbox.html ├── else │ └── docs │ │ ├── demo.json │ │ ├── demoFormBase.html │ │ ├── demoFormGrid.html │ │ ├── demoFormInline.html │ │ └── demoGrid.html ├── fileupload │ ├── docs │ │ ├── demo.js │ │ ├── demo.json │ │ ├── demo_basic.html │ │ ├── demo_filter.html │ │ ├── demo_modal.html │ │ ├── demo_multisel.html │ │ ├── demo_remove.html │ │ ├── demo_remove.js │ │ ├── demo_response.html │ │ └── demo_response.js │ ├── fileupload.js │ ├── temp │ │ ├── Moxie.swf │ │ ├── Moxie.xap │ │ ├── plupload.full.min.js │ │ └── upload.html │ ├── template │ │ └── fileupload │ │ │ └── wi-fileupload.html │ └── test_fileupload.html ├── imageview │ ├── docs │ │ ├── demo.json │ │ ├── demo1.html │ │ ├── demo1.js │ │ ├── demo2.html │ │ └── demo2.js │ ├── imageview.js │ ├── template │ │ └── imageview │ │ │ └── imageviewTemplate.html │ └── test_imageview.html ├── index_demo.html ├── index_demo.js ├── menu │ ├── docs │ │ ├── demo.html │ │ ├── demo.js │ │ ├── demo.json │ │ ├── demo0.html │ │ ├── demo0.js │ │ ├── demo1.html │ │ ├── demo1.js │ │ ├── demo2.html │ │ ├── demo2.js │ │ ├── demo3.html │ │ └── demo3.js │ ├── menu.js │ ├── template │ │ └── menu │ │ │ └── wi-menu.html │ └── test_menu.html ├── messagetip │ ├── docs │ │ ├── demo.json │ │ ├── demo1.html │ │ ├── demo1.js │ │ ├── demo2.html │ │ └── demo2.js │ ├── messagetip.js │ └── test_messagetip.html ├── my97datepicker │ ├── docs │ │ ├── datepicker_basic.html │ │ ├── datepicker_basic.js │ │ ├── datepicker_disable.html │ │ ├── datepicker_editable.html │ │ ├── datepicker_event.html │ │ ├── datepicker_firstDay.html │ │ ├── datepicker_format.html │ │ ├── datepicker_hideButtons.html │ │ ├── datepicker_highlight.html │ │ ├── datepicker_qsEnable.html │ │ ├── datepicker_quickSel.html │ │ ├── datepicker_range.html │ │ ├── datepicker_realDate.html │ │ ├── datepicker_showWeek.html │ │ ├── datepicker_startDate.html │ │ └── demo.json │ ├── my97datepicker.js │ └── testMy97datepicker.html ├── panel │ ├── docs │ │ ├── demo.html │ │ ├── demo.js │ │ ├── demo.json │ │ ├── demo_coll.html │ │ ├── demo_heading.html │ │ ├── demo_listener.html │ │ ├── demo_listener.js │ │ ├── demo_method.html │ │ ├── demo_method.js │ │ ├── demo_open.html │ │ ├── demo_size.html │ │ ├── demo_tools.html │ │ └── demo_tools.js │ ├── panel.js │ ├── template │ │ └── panel │ │ │ └── wi-panel.html │ └── test_panel.html ├── popup │ ├── popup.js │ └── test_popup.html ├── popupbutton │ ├── docs │ │ ├── demo.json │ │ ├── popupButton_tree.html │ │ └── popupButton_tree.js │ ├── popupbutton.js │ ├── template │ │ ├── popupbutton │ │ │ └── popupbuttonTemplate.html │ │ └── tree │ │ │ └── treeTemplate.html │ └── test_popupbutton.html ├── position │ ├── position.js │ └── test │ │ ├── position.spec.js │ │ └── test.html ├── progress │ ├── docs │ │ ├── demo.html │ │ ├── demo.js │ │ ├── demo.json │ │ ├── demoElem.html │ │ ├── demoElem.js │ │ ├── demoType.html │ │ └── demoType.js │ ├── progress.js │ ├── template │ │ └── progress │ │ │ └── wi-progress.html │ └── test_progress.html ├── resizelistener │ └── resizelistener.js ├── searchinput │ ├── docs │ │ ├── demo.html │ │ ├── demo.js │ │ └── demo.json │ ├── searchinput.js │ ├── template │ │ └── searchinput │ │ │ └── wi-searchinput.html │ └── test_searchinput.html ├── tabset │ ├── docs │ │ ├── demo.js │ │ ├── demo.json │ │ ├── demo1.html │ │ ├── demo1.js │ │ ├── demo2.html │ │ ├── demo3.html │ │ ├── demo3.js │ │ ├── demo4.html │ │ ├── demo5.html │ │ ├── demo_heading.html │ │ ├── demo_method.html │ │ └── demo_method.js │ ├── tabset.js │ ├── template │ │ └── tebset │ │ │ ├── tabTemplate.html │ │ │ └── tabsetTemplate.html │ ├── test │ │ └── tabset.spec.js │ └── test_tabset.html ├── tilelist │ ├── docs │ │ ├── demo.html │ │ ├── demo.js │ │ ├── demo.json │ │ ├── demoData.html │ │ ├── demoData.js │ │ └── demoH.html │ ├── template │ │ └── tilelist │ │ │ └── tilelistTemplate.html │ ├── test │ │ └── tilelist.spec.js │ ├── test_tilelist.html │ └── tilelist.js ├── tooltip │ ├── docs │ │ ├── demo.html │ │ ├── demo.js │ │ └── demo.json │ ├── template │ │ └── tooltip │ │ │ ├── tooltip-html-unsafe-popup.html │ │ │ └── tooltip-popup.html │ ├── test_tooltip.html │ └── tooltip.js ├── transition │ ├── docs │ │ ├── demo.html │ │ ├── demo.js │ │ └── demo.json │ ├── test │ │ └── transition.spec.js │ ├── test_transition.html │ └── transition.js └── tree │ ├── docs │ ├── demo.json │ ├── tree_custom.html │ ├── tree_custom.js │ ├── tree_dataprovider.html │ ├── tree_dataprovider.js │ ├── tree_event.html │ ├── tree_event.js │ ├── tree_filter.html │ ├── tree_filter.js │ ├── tree_method.html │ ├── tree_method.js │ ├── tree_renderer.html │ ├── tree_renderer.js │ ├── tree_select.html │ └── tree_select.js │ ├── index.html │ ├── template │ └── tree │ │ └── treeTemplate.html │ └── tree.js └── themes ├── blue ├── accordion.css ├── alert.css ├── camerascanner.css ├── carousel.css ├── collapse.css ├── combobox.css ├── datagrid.css ├── dialog.css ├── dividedbox.css ├── fileupload.css ├── fonts │ ├── glyphicons-halflings-regular.eot │ ├── glyphicons-halflings-regular.svg │ ├── glyphicons-halflings-regular.ttf │ └── glyphicons-halflings-regular.woff ├── images │ ├── camerascanner │ │ ├── tools.png │ │ └── wait.gif │ ├── datagrid │ │ └── loading.gif │ ├── dividedbox │ │ └── collctrl.gif │ ├── imageview │ │ ├── ctrls.png │ │ ├── loading.gif │ │ └── nopic.gif │ ├── my97datepicker │ │ ├── datePicker.gif │ │ └── img.gif │ └── tree │ │ └── loading.gif ├── imageview.css ├── less-nameset.less ├── menu.css ├── messagetip.css ├── my97datepicker.css ├── panel.css ├── popup.css ├── popupbutton.css ├── progress.css ├── searchinput.css ├── tabset.css ├── theme.css ├── tilelist.css ├── tooltip.css ├── tree.css └── wi-all.css └── default ├── accordion.css ├── alert.css ├── camerascanner.css ├── carousel.css ├── collapse.css ├── combobox.css ├── datagrid.css ├── dialog.css ├── dividedbox.css ├── fileupload.css ├── fonts ├── glyphicons-halflings-regular.eot ├── glyphicons-halflings-regular.svg ├── glyphicons-halflings-regular.ttf └── glyphicons-halflings-regular.woff ├── images ├── camerascanner │ ├── tools.png │ └── wait.gif ├── datagrid │ └── loading.gif ├── dividedbox │ └── collctrl.gif ├── imageview │ ├── ctrls.png │ ├── loading.gif │ └── nopic.gif ├── my97datepicker │ ├── datePicker.gif │ └── img.gif └── tree │ └── loading.gif ├── imageview.css ├── less-nameset.less ├── menu.css ├── messagetip.css ├── my97datepicker.css ├── panel.css ├── popup.css ├── popupbutton.css ├── progress.css ├── searchinput.css ├── tabset.css ├── theme.css ├── tilelist.css ├── tooltip.css ├── tree.css └── wi-all.css /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wi4angular/WebUI4Angular/23282a5e45111af5f81ab6bbaaa87d3feeb738cd/.gitignore -------------------------------------------------------------------------------- /Gruntfile.js: -------------------------------------------------------------------------------- 1 | module.exports = function (grunt) { 2 | 3 | grunt.loadNpmTasks('grunt-ngdocs'); 4 | grunt.loadNpmTasks('grunt-contrib-connect'); 5 | grunt.loadNpmTasks('grunt-contrib-clean'); 6 | 7 | grunt.initConfig({ 8 | ngdocs: { 9 | options: { 10 | dest: 'build/docs', 11 | title:'WebUI4AngularJS', 12 | scripts: ['angular.js', 'build/WebUI4Angular-tpls-all-mini.js'], 13 | html5Mode: false 14 | }, 15 | all: ['src/*/*.js'] 16 | } 17 | }); 18 | grunt.registerTask('default', ['ngdocs']); 19 | 20 | }; 21 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # WebUI4Angular 2 | a set of components with angularjs, which includes Datagrid,tree,dialog,progress,tilelist,tabset,dividedbox,imageview and so on. 3 | 4 | 参照了UI Bootstrap等组件的写法,主要对指令进行了自己的封装,我们希望通过angular的指令编写一套类似flex的声明式UI组件,使得页面代码更加简洁,可读性更强。 5 | 6 | #Quickstart 7 | 组件demo在线演示 8 | 9 | #Setup & Install 10 | 安装: 11 | npm install 12 | 13 | 运行构建:gulp build 14 | 15 | 构建清理:gulp clean 16 | 17 | 运行测试:gulp test 18 | 19 | 生成文档:gulp doc 20 | 21 | 22 | -------------------------------------------------------------------------------- /lib/angular-1.3.6/angular-cookies.min.js: -------------------------------------------------------------------------------- 1 | /* 2 | AngularJS v1.3.6 3 | (c) 2010-2014 Google, Inc. http://angularjs.org 4 | License: MIT 5 | */ 6 | (function(p,f,n){'use strict';f.module("ngCookies",["ng"]).factory("$cookies",["$rootScope","$browser",function(e,b){var c={},g={},h,k=!1,l=f.copy,m=f.isUndefined;b.addPollFn(function(){var a=b.cookies();h!=a&&(h=a,l(a,g),l(a,c),k&&e.$apply())})();k=!0;e.$watch(function(){var a,d,e;for(a in g)m(c[a])&&b.cookies(a,n);for(a in c)d=c[a],f.isString(d)||(d=""+d,c[a]=d),d!==g[a]&&(b.cookies(a,d),e=!0);if(e)for(a in d=b.cookies(),c)c[a]!==d[a]&&(m(d[a])?delete c[a]:c[a]=d[a])});return c}]).factory("$cookieStore", 7 | ["$cookies",function(e){return{get:function(b){return(b=e[b])?f.fromJson(b):b},put:function(b,c){e[b]=f.toJson(c)},remove:function(b){delete e[b]}}}])})(window,window.angular); 8 | //# sourceMappingURL=angular-cookies.min.js.map 9 | -------------------------------------------------------------------------------- /lib/angular-1.3.6/angular-csp.css: -------------------------------------------------------------------------------- 1 | /* Include this file in your html if you are using the CSP mode. */ 2 | 3 | @charset "UTF-8"; 4 | 5 | [ng\:cloak], [ng-cloak], [data-ng-cloak], [x-ng-cloak], 6 | .ng-cloak, .x-ng-cloak, 7 | .ng-hide:not(.ng-hide-animate) { 8 | display: none !important; 9 | } 10 | 11 | ng\:form { 12 | display: block; 13 | } 14 | -------------------------------------------------------------------------------- /lib/angular-1.3.6/version.json: -------------------------------------------------------------------------------- 1 | {"raw":"v1.3.6","major":1,"minor":3,"patch":6,"prerelease":[],"build":[],"version":"1.3.6","codeName":"robofunky-danceblaster","full":"1.3.6","branch":"v1.3.x","cdn":{"raw":"v1.3.5","major":1,"minor":3,"patch":5,"prerelease":[],"build":[],"version":"1.3.5","docsUrl":"http://code.angularjs.org/1.3.5/docs"}} -------------------------------------------------------------------------------- /lib/angular-1.3.6/version.txt: -------------------------------------------------------------------------------- 1 | 1.3.6 -------------------------------------------------------------------------------- /lib/helpers.js: -------------------------------------------------------------------------------- 1 | // jasmine matcher for expecting an element to have a css class 2 | // https://github.com/angular/angular.js/blob/master/test/matchers.js 3 | beforeEach(function() { 4 | this.addMatchers({ 5 | toHaveClass: function(cls) { 6 | this.message = function() { 7 | return "Expected '" + this.actual + "'" + (this.isNot ? ' not ' : ' ') + "to have class '" + cls + "'."; 8 | }; 9 | 10 | return this.actual.hasClass(cls); 11 | }, 12 | toBeHidden: function () { 13 | var element = angular.element(this.actual); 14 | return element.hasClass('ng-hide') || 15 | element.css('display') == 'none'; 16 | } 17 | }); 18 | }); 19 | -------------------------------------------------------------------------------- /misc/google-code-prettify/lang-apollo.js: -------------------------------------------------------------------------------- 1 | PR.registerLangHandler(PR.createSimpleLexer([["com",/^#[^\n\r]*/,null,"#"],["pln",/^[\t\n\r \xa0]+/,null,"\t\n\r \u00a0"],["str",/^"(?:[^"\\]|\\[\S\s])*(?:"|$)/,null,'"']],[["kwd",/^(?:ADS|AD|AUG|BZF|BZMF|CAE|CAF|CA|CCS|COM|CS|DAS|DCA|DCOM|DCS|DDOUBL|DIM|DOUBLE|DTCB|DTCF|DV|DXCH|EDRUPT|EXTEND|INCR|INDEX|NDX|INHINT|LXCH|MASK|MSK|MP|MSU|NOOP|OVSK|QXCH|RAND|READ|RELINT|RESUME|RETURN|ROR|RXOR|SQUARE|SU|TCR|TCAA|OVSK|TCF|TC|TS|WAND|WOR|WRITE|XCH|XLQ|XXALQ|ZL|ZQ|ADD|ADZ|SUB|SUZ|MPY|MPR|MPZ|DVP|COM|ABS|CLA|CLZ|LDQ|STO|STQ|ALS|LLS|LRS|TRA|TSQ|TMI|TOV|AXT|TIX|DLY|INP|OUT)\s/, 2 | null],["typ",/^(?:-?GENADR|=MINUS|2BCADR|VN|BOF|MM|-?2CADR|-?[1-6]DNADR|ADRES|BBCON|[ES]?BANK=?|BLOCK|BNKSUM|E?CADR|COUNT\*?|2?DEC\*?|-?DNCHAN|-?DNPTR|EQUALS|ERASE|MEMORY|2?OCT|REMADR|SETLOC|SUBRO|ORG|BSS|BES|SYN|EQU|DEFINE|END)\s/,null],["lit",/^'(?:-*(?:\w|\\[!-~])(?:[\w-]*|\\[!-~])[!=?]?)?/],["pln",/^-*(?:[!-z]|\\[!-~])(?:[\w-]*|\\[!-~])[!=?]?/],["pun",/^[^\w\t\n\r "'-);\\\xa0]+/]]),["apollo","agc","aea"]); 3 | -------------------------------------------------------------------------------- /misc/google-code-prettify/lang-basic.js: -------------------------------------------------------------------------------- 1 | var a=null; 2 | PR.registerLangHandler(PR.createSimpleLexer([["str",/^"(?:[^\n\r"\\]|\\.)*(?:"|$)/,a,'"'],["pln",/^\s+/,a," \r\n\t\u00a0"]],[["com",/^REM[^\n\r]*/,a],["kwd",/^\b(?:AND|CLOSE|CLR|CMD|CONT|DATA|DEF ?FN|DIM|END|FOR|GET|GOSUB|GOTO|IF|INPUT|LET|LIST|LOAD|NEW|NEXT|NOT|ON|OPEN|OR|POKE|PRINT|READ|RESTORE|RETURN|RUN|SAVE|STEP|STOP|SYS|THEN|TO|VERIFY|WAIT)\b/,a],["pln",/^[a-z][^\W_]?(?:\$|%)?/i,a],["lit",/^(?:\d+(?:\.\d*)?|\.\d+)(?:e[+-]?\d+)?/i,a,"0123456789"],["pun", 3 | /^.[^\s\w"$%.]*/,a]]),["basic","cbm"]); 4 | -------------------------------------------------------------------------------- /misc/google-code-prettify/lang-css.js: -------------------------------------------------------------------------------- 1 | PR.registerLangHandler(PR.createSimpleLexer([["pln",/^[\t\n\f\r ]+/,null," \t\r\n\u000c"]],[["str",/^"(?:[^\n\f\r"\\]|\\(?:\r\n?|\n|\f)|\\[\S\s])*"/,null],["str",/^'(?:[^\n\f\r'\\]|\\(?:\r\n?|\n|\f)|\\[\S\s])*'/,null],["lang-css-str",/^url\(([^"')]+)\)/i],["kwd",/^(?:url|rgb|!important|@import|@page|@media|@charset|inherit)(?=[^\w-]|$)/i,null],["lang-css-kw",/^(-?(?:[_a-z]|\\[\da-f]+ ?)(?:[\w-]|\\\\[\da-f]+ ?)*)\s*:/i],["com",/^\/\*[^*]*\*+(?:[^*/][^*]*\*+)*\//], 2 | ["com",/^(?:<\!--|--\>)/],["lit",/^(?:\d+|\d*\.\d+)(?:%|[a-z]+)?/i],["lit",/^#[\da-f]{3,6}\b/i],["pln",/^-?(?:[_a-z]|\\[\da-f]+ ?)(?:[\w-]|\\\\[\da-f]+ ?)*/i],["pun",/^[^\s\w"']+/]]),["css"]);PR.registerLangHandler(PR.createSimpleLexer([],[["kwd",/^-?(?:[_a-z]|\\[\da-f]+ ?)(?:[\w-]|\\\\[\da-f]+ ?)*/i]]),["css-kw"]);PR.registerLangHandler(PR.createSimpleLexer([],[["str",/^[^"')]+/]]),["css-str"]); 3 | -------------------------------------------------------------------------------- /misc/google-code-prettify/lang-dart.js: -------------------------------------------------------------------------------- 1 | PR.registerLangHandler(PR.createSimpleLexer([["pln",/^[\t\n\r \xa0]+/,null,"\t\n\r \u00a0"]],[["com",/^#!.*/],["kwd",/^\b(?:import|library|part of|part|as|show|hide)\b/i],["com",/^\/\/.*/],["com",/^\/\*[^*]*\*+(?:[^*/][^*]*\*+)*\//],["kwd",/^\b(?:class|interface)\b/i],["kwd",/^\b(?:assert|break|case|catch|continue|default|do|else|finally|for|if|in|is|new|return|super|switch|this|throw|try|while)\b/i],["kwd",/^\b(?:abstract|const|extends|factory|final|get|implements|native|operator|set|static|typedef|var)\b/i], 2 | ["typ",/^\b(?:bool|double|dynamic|int|num|object|string|void)\b/i],["kwd",/^\b(?:false|null|true)\b/i],["str",/^r?'''[\S\s]*?[^\\]'''/],["str",/^r?"""[\S\s]*?[^\\]"""/],["str",/^r?'('|[^\n\f\r]*?[^\\]')/],["str",/^r?"("|[^\n\f\r]*?[^\\]")/],["pln",/^[$_a-z]\w*/i],["pun",/^[!%&*+/:<-?^|~-]/],["lit",/^\b0x[\da-f]+/i],["lit",/^\b\d+(?:\.\d*)?(?:e[+-]?\d+)?/i],["lit",/^\b\.\d+(?:e[+-]?\d+)?/i],["pun",/^[(),.;[\]{}]/]]), 3 | ["dart"]); 4 | -------------------------------------------------------------------------------- /misc/google-code-prettify/lang-erlang.js: -------------------------------------------------------------------------------- 1 | PR.registerLangHandler(PR.createSimpleLexer([["pln",/^[\t-\r ]+/,null,"\t\n\u000b\u000c\r "],["str",/^"(?:[^\n\f\r"\\]|\\[\S\s])*(?:"|$)/,null,'"'],["lit",/^[a-z]\w*/],["lit",/^'(?:[^\n\f\r'\\]|\\[^&])+'?/,null,"'"],["lit",/^\?[^\t\n ({]+/,null,"?"],["lit",/^(?:0o[0-7]+|0x[\da-f]+|\d+(?:\.\d+)?(?:e[+-]?\d+)?)/i,null,"0123456789"]],[["com",/^%[^\n]*/],["kwd",/^(?:module|attributes|do|let|in|letrec|apply|call|primop|case|of|end|when|fun|try|catch|receive|after|char|integer|float,atom,string,var)\b/], 2 | ["kwd",/^-[_a-z]+/],["typ",/^[A-Z_]\w*/],["pun",/^[,.;]/]]),["erlang","erl"]); 3 | -------------------------------------------------------------------------------- /misc/google-code-prettify/lang-go.js: -------------------------------------------------------------------------------- 1 | PR.registerLangHandler(PR.createSimpleLexer([["pln",/^[\t\n\r \xa0]+/,null,"\t\n\r \u00a0"],["pln",/^(?:"(?:[^"\\]|\\[\S\s])*(?:"|$)|'(?:[^'\\]|\\[\S\s])+(?:'|$)|`[^`]*(?:`|$))/,null,"\"'"]],[["com",/^(?:\/\/[^\n\r]*|\/\*[\S\s]*?\*\/)/],["pln",/^(?:[^"'/`]|\/(?![*/]))+/]]),["go"]); 2 | -------------------------------------------------------------------------------- /misc/google-code-prettify/lang-hs.js: -------------------------------------------------------------------------------- 1 | PR.registerLangHandler(PR.createSimpleLexer([["pln",/^[\t-\r ]+/,null,"\t\n\u000b\u000c\r "],["str",/^"(?:[^\n\f\r"\\]|\\[\S\s])*(?:"|$)/,null,'"'],["str",/^'(?:[^\n\f\r'\\]|\\[^&])'?/,null,"'"],["lit",/^(?:0o[0-7]+|0x[\da-f]+|\d+(?:\.\d+)?(?:e[+-]?\d+)?)/i,null,"0123456789"]],[["com",/^(?:--+[^\n\f\r]*|{-(?:[^-]|-+[^}-])*-})/],["kwd",/^(?:case|class|data|default|deriving|do|else|if|import|in|infix|infixl|infixr|instance|let|module|newtype|of|then|type|where|_)(?=[^\d'A-Za-z]|$)/, 2 | null],["pln",/^(?:[A-Z][\w']*\.)*[A-Za-z][\w']*/],["pun",/^[^\d\t-\r "'A-Za-z]+/]]),["hs"]); 3 | -------------------------------------------------------------------------------- /misc/google-code-prettify/lang-lisp.js: -------------------------------------------------------------------------------- 1 | var a=null; 2 | PR.registerLangHandler(PR.createSimpleLexer([["opn",/^\(+/,a,"("],["clo",/^\)+/,a,")"],["com",/^;[^\n\r]*/,a,";"],["pln",/^[\t\n\r \xa0]+/,a,"\t\n\r \u00a0"],["str",/^"(?:[^"\\]|\\[\S\s])*(?:"|$)/,a,'"']],[["kwd",/^(?:block|c[ad]+r|catch|con[ds]|def(?:ine|un)|do|eq|eql|equal|equalp|eval-when|flet|format|go|if|labels|lambda|let|load-time-value|locally|macrolet|multiple-value-call|nil|progn|progv|quote|require|return-from|setq|symbol-macrolet|t|tagbody|the|throw|unwind)\b/,a], 3 | ["lit",/^[+-]?(?:[#0]x[\da-f]+|\d+\/\d+|(?:\.\d+|\d+(?:\.\d*)?)(?:[de][+-]?\d+)?)/i],["lit",/^'(?:-*(?:\w|\\[!-~])(?:[\w-]*|\\[!-~])[!=?]?)?/],["pln",/^-*(?:[_a-z]|\\[!-~])(?:[\w-]*|\\[!-~])[!=?]?/i],["pun",/^[^\w\t\n\r "'-);\\\xa0]+/]]),["cl","el","lisp","lsp","scm","ss","rkt"]); 4 | -------------------------------------------------------------------------------- /misc/google-code-prettify/lang-llvm.js: -------------------------------------------------------------------------------- 1 | PR.registerLangHandler(PR.createSimpleLexer([["pln",/^[\t\n\r \xa0]+/,null,"\t\n\r \u00a0"],["str",/^!?"(?:[^"\\]|\\[\S\s])*(?:"|$)/,null,'"'],["com",/^;[^\n\r]*/,null,";"]],[["pln",/^[!%@](?:[$\-.A-Z_a-z][\w$\-.]*|\d+)/],["kwd",/^[^\W\d]\w*/,null],["lit",/^\d+\.\d+/],["lit",/^(?:\d+|0[Xx][\dA-Fa-f]+)/],["pun",/^[(-*,:<->[\]{}]|\.\.\.$/]]),["llvm","ll"]); 2 | -------------------------------------------------------------------------------- /misc/google-code-prettify/lang-lua.js: -------------------------------------------------------------------------------- 1 | PR.registerLangHandler(PR.createSimpleLexer([["pln",/^[\t\n\r \xa0]+/,null,"\t\n\r \u00a0"],["str",/^(?:"(?:[^"\\]|\\[\S\s])*(?:"|$)|'(?:[^'\\]|\\[\S\s])*(?:'|$))/,null,"\"'"]],[["com",/^--(?:\[(=*)\[[\S\s]*?(?:]\1]|$)|[^\n\r]*)/],["str",/^\[(=*)\[[\S\s]*?(?:]\1]|$)/],["kwd",/^(?:and|break|do|else|elseif|end|false|for|function|if|in|local|nil|not|or|repeat|return|then|true|until|while)\b/,null],["lit",/^[+-]?(?:0x[\da-f]+|(?:\.\d+|\d+(?:\.\d*)?)(?:e[+-]?\d+)?)/i], 2 | ["pln",/^[_a-z]\w*/i],["pun",/^[^\w\t\n\r \xa0][^\w\t\n\r "'+=\xa0-]*/]]),["lua"]); 3 | -------------------------------------------------------------------------------- /misc/google-code-prettify/lang-ml.js: -------------------------------------------------------------------------------- 1 | PR.registerLangHandler(PR.createSimpleLexer([["pln",/^[\t\n\r \xa0]+/,null,"\t\n\r \u00a0"],["com",/^#(?:if[\t\n\r \xa0]+(?:[$_a-z][\w']*|``[^\t\n\r`]*(?:``|$))|else|endif|light)/i,null,"#"],["str",/^(?:"(?:[^"\\]|\\[\S\s])*(?:"|$)|'(?:[^'\\]|\\[\S\s])(?:'|$))/,null,"\"'"]],[["com",/^(?:\/\/[^\n\r]*|\(\*[\S\s]*?\*\))/],["kwd",/^(?:abstract|and|as|assert|begin|class|default|delegate|do|done|downcast|downto|elif|else|end|exception|extern|false|finally|for|fun|function|if|in|inherit|inline|interface|internal|lazy|let|match|member|module|mutable|namespace|new|null|of|open|or|override|private|public|rec|return|static|struct|then|to|true|try|type|upcast|use|val|void|when|while|with|yield|asr|land|lor|lsl|lsr|lxor|mod|sig|atomic|break|checked|component|const|constraint|constructor|continue|eager|event|external|fixed|functor|global|include|method|mixin|object|parallel|process|protected|pure|sealed|trait|virtual|volatile)\b/], 2 | ["lit",/^[+-]?(?:0x[\da-f]+|(?:\.\d+|\d+(?:\.\d*)?)(?:e[+-]?\d+)?)/i],["pln",/^(?:[_a-z][\w']*[!#?]?|``[^\t\n\r`]*(?:``|$))/i],["pun",/^[^\w\t\n\r "'\xa0]+/]]),["fs","ml"]); 3 | -------------------------------------------------------------------------------- /misc/google-code-prettify/lang-mumps.js: -------------------------------------------------------------------------------- 1 | PR.registerLangHandler(PR.createSimpleLexer([["pln",/^[\t\n\r \xa0]+/,null,"\t\n\r \u00a0"],["str",/^"(?:[^"]|\\.)*"/,null,'"']],[["com",/^;[^\n\r]*/,null,";"],["dec",/^\$(?:d|device|ec|ecode|es|estack|et|etrap|h|horolog|i|io|j|job|k|key|p|principal|q|quit|st|stack|s|storage|sy|system|t|test|tl|tlevel|tr|trestart|x|y|z[a-z]*|a|ascii|c|char|d|data|e|extract|f|find|fn|fnumber|g|get|j|justify|l|length|na|name|o|order|p|piece|ql|qlength|qs|qsubscript|q|query|r|random|re|reverse|s|select|st|stack|t|text|tr|translate|nan)\b/i, 2 | null],["kwd",/^(?:[^$]b|break|c|close|d|do|e|else|f|for|g|goto|h|halt|h|hang|i|if|j|job|k|kill|l|lock|m|merge|n|new|o|open|q|quit|r|read|s|set|tc|tcommit|tre|trestart|tro|trollback|ts|tstart|u|use|v|view|w|write|x|xecute)\b/i,null],["lit",/^[+-]?(?:\.\d+|\d+(?:\.\d*)?)(?:e[+-]?\d+)?/i],["pln",/^[a-z][^\W_]*/i],["pun",/^[^\w\t\n\r"$%;^\xa0]|_/]]),["mumps"]); 3 | -------------------------------------------------------------------------------- /misc/google-code-prettify/lang-n.js: -------------------------------------------------------------------------------- 1 | var a=null; 2 | PR.registerLangHandler(PR.createSimpleLexer([["str",/^(?:'(?:[^\n\r'\\]|\\.)*'|"(?:[^\n\r"\\]|\\.)*(?:"|$))/,a,'"'],["com",/^#(?:(?:define|elif|else|endif|error|ifdef|include|ifndef|line|pragma|undef|warning)\b|[^\n\r]*)/,a,"#"],["pln",/^\s+/,a," \r\n\t\u00a0"]],[["str",/^@"(?:[^"]|"")*(?:"|$)/,a],["str",/^<#[^#>]*(?:#>|$)/,a],["str",/^<(?:(?:(?:\.\.\/)*|\/?)(?:[\w-]+(?:\/[\w-]+)+)?[\w-]+\.h|[a-z]\w*)>/,a],["com",/^\/\/[^\n\r]*/,a],["com",/^\/\*[\S\s]*?(?:\*\/|$)/, 3 | a],["kwd",/^(?:abstract|and|as|base|catch|class|def|delegate|enum|event|extern|false|finally|fun|implements|interface|internal|is|macro|match|matches|module|mutable|namespace|new|null|out|override|params|partial|private|protected|public|ref|sealed|static|struct|syntax|this|throw|true|try|type|typeof|using|variant|virtual|volatile|when|where|with|assert|assert2|async|break|checked|continue|do|else|ensures|for|foreach|if|late|lock|new|nolate|otherwise|regexp|repeat|requires|return|surroundwith|unchecked|unless|using|while|yield)\b/, 4 | a],["typ",/^(?:array|bool|byte|char|decimal|double|float|int|list|long|object|sbyte|short|string|ulong|uint|ufloat|ulong|ushort|void)\b/,a],["lit",/^@[$_a-z][\w$@]*/i,a],["typ",/^@[A-Z]+[a-z][\w$@]*/,a],["pln",/^'?[$_a-z][\w$@]*/i,a],["lit",/^(?:0x[\da-f]+|(?:\d(?:_\d+)*\d*(?:\.\d*)?|\.\d\+)(?:e[+-]?\d+)?)[a-z]*/i,a,"0123456789"],["pun",/^.[^\s\w"-$'./@`]*/,a]]),["n","nemerle"]); 5 | -------------------------------------------------------------------------------- /misc/google-code-prettify/lang-pascal.js: -------------------------------------------------------------------------------- 1 | var a=null; 2 | PR.registerLangHandler(PR.createSimpleLexer([["str",/^'(?:[^\n\r'\\]|\\.)*(?:'|$)/,a,"'"],["pln",/^\s+/,a," \r\n\t\u00a0"]],[["com",/^\(\*[\S\s]*?(?:\*\)|$)|^{[\S\s]*?(?:}|$)/,a],["kwd",/^(?:absolute|and|array|asm|assembler|begin|case|const|constructor|destructor|div|do|downto|else|end|external|for|forward|function|goto|if|implementation|in|inline|interface|interrupt|label|mod|not|object|of|or|packed|procedure|program|record|repeat|set|shl|shr|then|to|type|unit|until|uses|var|virtual|while|with|xor)\b/i,a], 3 | ["lit",/^(?:true|false|self|nil)/i,a],["pln",/^[a-z][^\W_]*/i,a],["lit",/^(?:\$[\da-f]+|(?:\d+(?:\.\d*)?|\.\d+)(?:e[+-]?\d+)?)/i,a,"0123456789"],["pun",/^.[^\s\w$'./@]*/,a]]),["pascal"]); 4 | -------------------------------------------------------------------------------- /misc/google-code-prettify/lang-proto.js: -------------------------------------------------------------------------------- 1 | PR.registerLangHandler(PR.sourceDecorator({keywords:"bytes,default,double,enum,extend,extensions,false,group,import,max,message,option,optional,package,repeated,required,returns,rpc,service,syntax,to,true",types:/^(bool|(double|s?fixed|[su]?int)(32|64)|float|string)\b/,cStyleComments:!0}),["proto"]); 2 | -------------------------------------------------------------------------------- /misc/google-code-prettify/lang-r.js: -------------------------------------------------------------------------------- 1 | PR.registerLangHandler(PR.createSimpleLexer([["pln",/^[\t\n\r \xa0]+/,null,"\t\n\r \u00a0"],["str",/^"(?:[^"\\]|\\[\S\s])*(?:"|$)/,null,'"'],["str",/^'(?:[^'\\]|\\[\S\s])*(?:'|$)/,null,"'"]],[["com",/^#.*/],["kwd",/^(?:if|else|for|while|repeat|in|next|break|return|switch|function)(?![\w.])/],["lit",/^0[Xx][\dA-Fa-f]+([Pp]\d+)?[Li]?/],["lit",/^[+-]?(\d+(\.\d+)?|\.\d+)([Ee][+-]?\d+)?[Li]?/],["lit",/^(?:NULL|NA(?:_(?:integer|real|complex|character)_)?|Inf|TRUE|FALSE|NaN|\.\.(?:\.|\d+))(?![\w.])/], 2 | ["pun",/^(?:<>?|-|==|<=|>=|<|>|&&?|!=|\|\|?|[!*+/^]|%.*?%|[$=@~]|:{1,3}|[(),;?[\]{}])/],["pln",/^(?:[A-Za-z]+[\w.]*|\.[^\W\d][\w.]*)(?![\w.])/],["str",/^`.+`/]]),["r","s","R","S","Splus"]); 3 | -------------------------------------------------------------------------------- /misc/google-code-prettify/lang-rd.js: -------------------------------------------------------------------------------- 1 | PR.registerLangHandler(PR.createSimpleLexer([["pln",/^[\t\n\r \xa0]+/,null,"\t\n\r \u00a0"],["com",/^%[^\n\r]*/,null,"%"]],[["lit",/^\\(?:cr|l?dots|R|tab)\b/],["kwd",/^\\[@-Za-z]+/],["kwd",/^#(?:ifn?def|endif)/],["pln",/^\\[{}]/],["pun",/^[()[\]{}]+/]]),["Rd","rd"]); 2 | -------------------------------------------------------------------------------- /misc/google-code-prettify/lang-scala.js: -------------------------------------------------------------------------------- 1 | PR.registerLangHandler(PR.createSimpleLexer([["pln",/^[\t\n\r \xa0]+/,null,"\t\n\r \u00a0"],["str",/^"(?:""(?:""?(?!")|[^"\\]|\\.)*"{0,3}|(?:[^\n\r"\\]|\\.)*"?)/,null,'"'],["lit",/^`(?:[^\n\r\\`]|\\.)*`?/,null,"`"],["pun",/^[!#%&(--:-@[-^{-~]+/,null,"!#%&()*+,-:;<=>?@[\\]^{|}~"]],[["str",/^'(?:[^\n\r'\\]|\\(?:'|[^\n\r']+))'/],["lit",/^'[$A-Z_a-z][\w$]*(?![\w$'])/],["kwd",/^(?:abstract|case|catch|class|def|do|else|extends|final|finally|for|forSome|if|implicit|import|lazy|match|new|object|override|package|private|protected|requires|return|sealed|super|throw|trait|try|type|val|var|while|with|yield)\b/], 2 | ["lit",/^(?:true|false|null|this)\b/],["lit",/^(?:0(?:[0-7]+|x[\da-f]+)l?|(?:0|[1-9]\d*)(?:(?:\.\d+)?(?:e[+-]?\d+)?f?|l?)|\\.\d+(?:e[+-]?\d+)?f?)/i],["typ",/^[$_]*[A-Z][\d$A-Z_]*[a-z][\w$]*/],["pln",/^[$A-Z_a-z][\w$]*/],["com",/^\/(?:\/.*|\*(?:\/|\**[^*/])*(?:\*+\/?)?)/],["pun",/^(?:\.+|\/)/]]),["scala"]); 3 | -------------------------------------------------------------------------------- /misc/google-code-prettify/lang-tcl.js: -------------------------------------------------------------------------------- 1 | var a=null; 2 | PR.registerLangHandler(PR.createSimpleLexer([["opn",/^{+/,a,"{"],["clo",/^}+/,a,"}"],["com",/^#[^\n\r]*/,a,"#"],["pln",/^[\t\n\r \xa0]+/,a,"\t\n\r \u00a0"],["str",/^"(?:[^"\\]|\\[\S\s])*(?:"|$)/,a,'"']],[["kwd",/^(?:after|append|apply|array|break|case|catch|continue|error|eval|exec|exit|expr|for|foreach|if|incr|info|proc|return|set|switch|trace|uplevel|upvar|while)\b/,a],["lit",/^[+-]?(?:[#0]x[\da-f]+|\d+\/\d+|(?:\.\d+|\d+(?:\.\d*)?)(?:[de][+-]?\d+)?)/i],["lit", 3 | /^'(?:-*(?:\w|\\[!-~])(?:[\w-]*|\\[!-~])[!=?]?)?/],["pln",/^-*(?:[_a-z]|\\[!-~])(?:[\w-]*|\\[!-~])[!=?]?/i],["pun",/^[^\w\t\n\r "'-);\\\xa0]+/]]),["tcl"]); 4 | -------------------------------------------------------------------------------- /misc/google-code-prettify/lang-tex.js: -------------------------------------------------------------------------------- 1 | PR.registerLangHandler(PR.createSimpleLexer([["pln",/^[\t\n\r \xa0]+/,null,"\t\n\r \u00a0"],["com",/^%[^\n\r]*/,null,"%"]],[["kwd",/^\\[@-Za-z]+/],["kwd",/^\\./],["typ",/^[$&]/],["lit",/[+-]?(?:\.\d+|\d+(?:\.\d*)?)(cm|em|ex|in|pc|pt|bp|mm)/i],["pun",/^[()=[\]{}]+/]]),["latex","tex"]); 2 | -------------------------------------------------------------------------------- /misc/google-code-prettify/lang-wiki.js: -------------------------------------------------------------------------------- 1 | PR.registerLangHandler(PR.createSimpleLexer([["pln",/^[\d\t a-gi-z\xa0]+/,null,"\t \u00a0abcdefgijklmnopqrstuvwxyz0123456789"],["pun",/^[*=[\]^~]+/,null,"=*~^[]"]],[["lang-wiki.meta",/(?:^^|\r\n?|\n)(#[a-z]+)\b/],["lit",/^[A-Z][a-z][\da-z]+[A-Z][a-z][^\W_]+\b/],["lang-",/^{{{([\S\s]+?)}}}/],["lang-",/^`([^\n\r`]+)`/],["str",/^https?:\/\/[^\s#/?]*(?:\/[^\s#?]*)?(?:\?[^\s#]*)?(?:#\S*)?/i],["pln",/^(?:\r\n|[\S\s])[^\n\r#*=A-[^`h{~]*/]]),["wiki"]); 2 | PR.registerLangHandler(PR.createSimpleLexer([["kwd",/^#[a-z]+/i,null,"#"]],[]),["wiki.meta"]); 3 | -------------------------------------------------------------------------------- /misc/google-code-prettify/lang-yaml.js: -------------------------------------------------------------------------------- 1 | var a=null; 2 | PR.registerLangHandler(PR.createSimpleLexer([["pun",/^[:>?|]+/,a,":|>?"],["dec",/^%(?:YAML|TAG)[^\n\r#]+/,a,"%"],["typ",/^&\S+/,a,"&"],["typ",/^!\S*/,a,"!"],["str",/^"(?:[^"\\]|\\.)*(?:"|$)/,a,'"'],["str",/^'(?:[^']|'')*(?:'|$)/,a,"'"],["com",/^#[^\n\r]*/,a,"#"],["pln",/^\s+/,a," \t\r\n"]],[["dec",/^(?:---|\.\.\.)(?:[\n\r]|$)/],["pun",/^-/],["kwd",/^\w+:[\n\r ]/],["pln",/^\w+/]]),["yaml","yml"]); 3 | -------------------------------------------------------------------------------- /misc/google-code-prettify/prettify.css: -------------------------------------------------------------------------------- 1 | .pln{color:#000}@media screen{.str{color:#080}.kwd{color:#008}.com{color:#800}.typ{color:#606}.lit{color:#066}.pun,.opn,.clo{color:#660}.tag{color:#008}.atn{color:#606}.atv{color:#080}.dec,.var{color:#606}.fun{color:red}}@media print,projection{.str{color:#060}.kwd{color:#006;font-weight:bold}.com{color:#600;font-style:italic}.typ{color:#404;font-weight:bold}.lit{color:#044}.pun,.opn,.clo{color:#440}.tag{color:#006;font-weight:bold}.atn{color:#404}.atv{color:#060}}pre.prettyprint{padding:2px;border:1px solid #888}ol.linenums{margin-top:0;margin-bottom:0}li.L0,li.L1,li.L2,li.L3,li.L5,li.L6,li.L7,li.L8{list-style-type:none}li.L1,li.L3,li.L5,li.L7,li.L9{background:#eee} -------------------------------------------------------------------------------- /misc/icon/redflag16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wi4angular/WebUI4Angular/23282a5e45111af5f81ab6bbaaa87d3feeb738cd/misc/icon/redflag16.png -------------------------------------------------------------------------------- /misc/imageview/1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wi4angular/WebUI4Angular/23282a5e45111af5f81ab6bbaaa87d3feeb738cd/misc/imageview/1.jpg -------------------------------------------------------------------------------- /misc/imageview/2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wi4angular/WebUI4Angular/23282a5e45111af5f81ab6bbaaa87d3feeb738cd/misc/imageview/2.jpg -------------------------------------------------------------------------------- /misc/imageview/3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wi4angular/WebUI4Angular/23282a5e45111af5f81ab6bbaaa87d3feeb738cd/misc/imageview/3.jpg -------------------------------------------------------------------------------- /misc/imageview/B2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wi4angular/WebUI4Angular/23282a5e45111af5f81ab6bbaaa87d3feeb738cd/misc/imageview/B2.jpg -------------------------------------------------------------------------------- /misc/imageview/B3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wi4angular/WebUI4Angular/23282a5e45111af5f81ab6bbaaa87d3feeb738cd/misc/imageview/B3.jpg -------------------------------------------------------------------------------- /misc/temp/fileupload_test.html: -------------------------------------------------------------------------------- 1 | 我是返回值…… -------------------------------------------------------------------------------- /misc/temp/tabset_test.html: -------------------------------------------------------------------------------- 1 | 我是通过 url 载入的标签内容…… -------------------------------------------------------------------------------- /misc/tempimg/button/iconl.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wi4angular/WebUI4Angular/23282a5e45111af5f81ab6bbaaa87d3feeb738cd/misc/tempimg/button/iconl.gif -------------------------------------------------------------------------------- /misc/tempimg/button/iconr.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wi4angular/WebUI4Angular/23282a5e45111af5f81ab6bbaaa87d3feeb738cd/misc/tempimg/button/iconr.gif -------------------------------------------------------------------------------- /misc/tempimg/carousel/carousel1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wi4angular/WebUI4Angular/23282a5e45111af5f81ab6bbaaa87d3feeb738cd/misc/tempimg/carousel/carousel1.jpg -------------------------------------------------------------------------------- /misc/tempimg/carousel/carousel2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wi4angular/WebUI4Angular/23282a5e45111af5f81ab6bbaaa87d3feeb738cd/misc/tempimg/carousel/carousel2.jpg -------------------------------------------------------------------------------- /misc/tempimg/carousel/carousel3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wi4angular/WebUI4Angular/23282a5e45111af5f81ab6bbaaa87d3feeb738cd/misc/tempimg/carousel/carousel3.jpg -------------------------------------------------------------------------------- /misc/tempimg/carousel/carousel4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wi4angular/WebUI4Angular/23282a5e45111af5f81ab6bbaaa87d3feeb738cd/misc/tempimg/carousel/carousel4.jpg -------------------------------------------------------------------------------- /misc/tempimg/carousel/carousel5.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wi4angular/WebUI4Angular/23282a5e45111af5f81ab6bbaaa87d3feeb738cd/misc/tempimg/carousel/carousel5.jpg -------------------------------------------------------------------------------- /misc/tempimg/carousel/carousel6.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wi4angular/WebUI4Angular/23282a5e45111af5f81ab6bbaaa87d3feeb738cd/misc/tempimg/carousel/carousel6.jpg -------------------------------------------------------------------------------- /misc/tempimg/menu/save.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wi4angular/WebUI4Angular/23282a5e45111af5f81ab6bbaaa87d3feeb738cd/misc/tempimg/menu/save.gif -------------------------------------------------------------------------------- /misc/tempimg/panel/icon.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wi4angular/WebUI4Angular/23282a5e45111af5f81ab6bbaaa87d3feeb738cd/misc/tempimg/panel/icon.gif -------------------------------------------------------------------------------- /misc/test.html: -------------------------------------------------------------------------------- 1 |
嵌入网页测试页面
-------------------------------------------------------------------------------- /src/accordion/docs/demo.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wi4angular/WebUI4Angular/23282a5e45111af5f81ab6bbaaa87d3feeb738cd/src/accordion/docs/demo.js -------------------------------------------------------------------------------- /src/accordion/docs/demo.json: -------------------------------------------------------------------------------- 1 | { 2 | "cname":"accordion", 3 | "discribe":"accordion(折叠面板)", 4 | "demos":[ 5 | {"demoDiscribe":"基本","html":"accordion/docs/demo1.html","js":"accordion/docs/demo.js"}, 6 | {"demoDiscribe":"动态创建","html":"accordion/docs/demo2.html","js":"accordion/docs/demo2.js"}, 7 | {"demoDiscribe":"自定义heading","html":"accordion/docs/demo3.html","js":"accordion/docs/demo3.js"}, 8 | {"demoDiscribe":"只打开一个","html":"accordion/docs/demo_oneOpen.html","js":"accordion/docs/demo.js"}, 9 | {"demoDiscribe":"设定高度","html":"accordion/docs/demo_height.html","js":"accordion/docs/demo.js"}, 10 | {"demoDiscribe":"修改is-open","html":"accordion/docs/demo_isOpen.html","js":"accordion/docs/demo_isOpen.js"}, 11 | {"demoDiscribe":"事件监听","html":"accordion/docs/demo_listener.html","js":"accordion/docs/demo_listener.js"}, 12 | {"demoDiscribe":"wiid调用方法","html":"accordion/docs/demo_method.html","js":"accordion/docs/demo_method.js"} 13 | ] 14 | } -------------------------------------------------------------------------------- /src/accordion/docs/demo1.html: -------------------------------------------------------------------------------- 1 |
2 |

3 | width 设置宽度。 4 | 不设定高度时,高度由内容撑开,标题二中可以“添加节点”观察效果。 5 |

6 | 7 | 8 | 内容一 9 | 10 | 11 | 内容二,高度随内容高度变化。
12 | 13 |
{{item}}
14 |
15 |
16 |
-------------------------------------------------------------------------------- /src/accordion/docs/demo1.js: -------------------------------------------------------------------------------- 1 | var AccordionDemoCtrl1=['$scope',function ($scope) { 2 | $scope.items = ['Item 1', 'Item 2', 'Item 3']; 3 | $scope.addItem = function() { 4 | var newItemNo = $scope.items.length + 1; 5 | $scope.items.push('Item ' + newItemNo); 6 | }; 7 | }]; 8 | angular.module('ui.wisoft').controller('AccordionDemoCtrl1',AccordionDemoCtrl1); -------------------------------------------------------------------------------- /src/accordion/docs/demo2.html: -------------------------------------------------------------------------------- 1 |
2 | 3 | 4 | {{group.content}} 5 | 6 | 7 |
-------------------------------------------------------------------------------- /src/accordion/docs/demo2.js: -------------------------------------------------------------------------------- 1 | var AccordionDemoCtrl2=['$scope',function ($scope) { 2 | $scope.groups = [ 3 | { 4 | title: '动态 Header - 1', 5 | content: 'Dynamic Group Body - 1', 6 | open:true 7 | }, 8 | { 9 | title: '动态 Header - 2', 10 | content: 'Dynamic Group Body - 2', 11 | open:false 12 | } 13 | ]; 14 | }]; 15 | angular.module('ui.wisoft').controller('AccordionDemoCtrl2',AccordionDemoCtrl2); -------------------------------------------------------------------------------- /src/accordion/docs/demo3.html: -------------------------------------------------------------------------------- 1 |
2 |

3 | 通过 headheight 设置标题部分高度;
4 | 通过 wi-accordion-heading 添加自定义标题。 5 |

6 | 7 | 8 | 内容一 9 | 10 | 11 | 12 | 标题二,自定义 13 | 14 | 内容二 15 | 16 | 17 |
-------------------------------------------------------------------------------- /src/accordion/docs/demo3.js: -------------------------------------------------------------------------------- 1 | var AccordionDemoCtrl3=['$scope',function ($scope) { 2 | $scope.status = { 3 | open: true, 4 | isFirstDisabled: false 5 | }; 6 | }]; 7 | angular.module('ui.wisoft').controller('AccordionDemoCtrl3',AccordionDemoCtrl3); -------------------------------------------------------------------------------- /src/accordion/docs/demo_height.html: -------------------------------------------------------------------------------- 1 |
2 |

3 | 通过 height 指定 wi-accordion 高度,指定后,有且仅有一个打开的 wi-accordion-group,oneOpen 属性失效。 4 |

5 | 6 | 7 | 内容一 8 | 9 | 10 | 内容二 11 | 12 | 13 |
-------------------------------------------------------------------------------- /src/accordion/docs/demo_isOpen.html: -------------------------------------------------------------------------------- 1 |
2 |

3 | 通过修改 is-open 控制 wi-accordion-group 的打开状态。点击下方按钮切换第二个 wi-accordion-group 的打开状态。
4 | 5 |

6 | 7 | 8 | 内容一 9 | 10 | 11 | 内容二 12 | 13 | 14 |
-------------------------------------------------------------------------------- /src/accordion/docs/demo_isOpen.js: -------------------------------------------------------------------------------- 1 | var AccordionDemoIsOpenCtrl=['$scope',function ($scope) { 2 | $scope.status = { 3 | isFirstOpen: true, 4 | isFirstDisabled: false 5 | }; 6 | }]; 7 | angular.module('ui.wisoft').controller('AccordionDemoIsOpenCtrl',AccordionDemoIsOpenCtrl); -------------------------------------------------------------------------------- /src/accordion/docs/demo_listener.html: -------------------------------------------------------------------------------- 1 |
2 |

3 | 请打开控制台查看输出,切换选中状态时将触发事件 4 |

5 | 6 | 7 | 内容一 8 | 9 | 10 | 内容二 11 | 12 | 13 | 内容三 14 | 15 | 16 | 内容四 17 | 18 | 19 |
-------------------------------------------------------------------------------- /src/accordion/docs/demo_listener.js: -------------------------------------------------------------------------------- 1 | var AccordionDemoListenerCtrl=['$scope',function ($scope) { 2 | $scope.onSelect = function(index,scope){ 3 | console.log('选中:第',index,'项',scope); 4 | }; 5 | $scope.onUnselect = function(index,scope){ 6 | console.log('取消:第',index,'项',scope); 7 | }; 8 | }]; 9 | angular.module('ui.wisoft').controller('AccordionDemoListenerCtrl',AccordionDemoListenerCtrl); -------------------------------------------------------------------------------- /src/accordion/docs/demo_method.html: -------------------------------------------------------------------------------- 1 |
2 |

3 |   4 |   5 |   6 |   7 | 8 |

9 |

10 | 11 |

12 |

13 |  (此处无明显效果) 14 |

15 | 16 | 17 | 内容一 18 | 19 | 20 | 内容二 21 | 22 | 23 | 内容三 24 | 25 | 26 | 内容四 27 | 28 | 29 |
-------------------------------------------------------------------------------- /src/accordion/docs/demo_method.js: -------------------------------------------------------------------------------- 1 | var AccordionDemoMethodCtrl=['$scope',function ($scope) { 2 | $scope.myAcc = {}; 3 | $scope.element = function(){ 4 | console.log('jqlite元素:',$scope.myAcc.element()); 5 | }; 6 | $scope.options = function(){ 7 | console.log('用户配置:',$scope.myAcc.options()); 8 | }; 9 | $scope.panels = function(){ 10 | console.log('所有面板:',$scope.myAcc.panels()); 11 | }; 12 | $scope.getSelect = function(){ 13 | console.log('选中项:',$scope.myAcc.getSelect()); 14 | }; 15 | $scope.getGroup = function(){ 16 | console.log('第1项',$scope.myAcc.getGroup(1)); 17 | }; 18 | $scope.toggle = function(){ 19 | $scope.myAcc.toggle(2); 20 | console.log('切换第二项选中状态'); 21 | }; 22 | $scope.reCompute = function(){ 23 | $scope.myAcc.reCompute(); 24 | console.log('重新计算尺寸'); 25 | }; 26 | }]; 27 | angular.module('ui.wisoft').controller('AccordionDemoMethodCtrl',AccordionDemoMethodCtrl); -------------------------------------------------------------------------------- /src/accordion/docs/demo_oneOpen.html: -------------------------------------------------------------------------------- 1 |
2 |

3 | 通过 oneopen 指定打开一个 wi-accordion-group 时,关闭其他已打开的。 4 |

5 | 6 | 7 | 内容一 8 | 9 | 10 | 内容二 11 | 12 | 13 |
-------------------------------------------------------------------------------- /src/accordion/template/accordion/wi-accordion-group.html: -------------------------------------------------------------------------------- 1 |
2 |
{{heading}}
5 |
6 |
7 |
8 |
-------------------------------------------------------------------------------- /src/accordion/template/accordion/wi-accordion.html: -------------------------------------------------------------------------------- 1 |
-------------------------------------------------------------------------------- /src/alert/docs/demo.json: -------------------------------------------------------------------------------- 1 | { 2 | "cname":"alert", 3 | "discribe":"alert(提示框)", 4 | "demos":[ 5 | {"demoDiscribe":"基本用法","html":"alert/docs/demo1.html","js":"alert/docs/demo1.js"}, 6 | {"demoDiscribe":"自定义属性","html":"alert/docs/demo2.html","js":"alert/docs/demo2.js"} 7 | ] 8 | } -------------------------------------------------------------------------------- /src/alert/docs/demo1.html: -------------------------------------------------------------------------------- 1 |
2 |
3 |
4 |
5 |
6 |
7 |
-------------------------------------------------------------------------------- /src/alert/docs/demo1.js: -------------------------------------------------------------------------------- 1 | var alertCtrl1=['$scope','wiAlert',function ($scope,wiAlert){ 2 | $scope.info=function(){ 3 | wiAlert.info("请选择要操作的数据!"); 4 | } 5 | $scope.warn=function(){ 6 | wiAlert.warn("该条数据已经被更新,请刷新列表获取最新数据!"); 7 | } 8 | $scope.error=function(){ 9 | wiAlert.error("数据删除失败!"); 10 | } 11 | $scope.success=function(){ 12 | wiAlert.success("删除数据成功!") 13 | .yes(function(){ 14 | wiAlert.info("点击了确定按钮!!!"); 15 | }) 16 | } 17 | $scope.confirm=function(){ 18 | wiAlert.confirm("确定要删除该条数据吗?") 19 | .yes(function(){ 20 | wiAlert.success("删除数据成功!"); 21 | }) 22 | .no(function(){ 23 | wiAlert.info("您取消了本次操作!"); 24 | }) 25 | } 26 | }]; 27 | angular.module('ui.wisoft').controller('alertCtrl1',alertCtrl1); -------------------------------------------------------------------------------- /src/alert/docs/demo2.html: -------------------------------------------------------------------------------- 1 | 12 |
13 | 14 |
15 |
-------------------------------------------------------------------------------- /src/alert/docs/demo2.js: -------------------------------------------------------------------------------- 1 | var alertCtrl2=['$scope','wiAlert',function ($scope,wiAlert){ 2 | $scope.confirm=function(){ 3 | wiAlert.confirm({ 4 | title:'社区删除', 5 | yesLabel:'确定删除', 6 | noLabel:'取消操作', 7 | width:500, 8 | content:'删除社区后对应的系统办件信息也将被删除,您确定要删除 胡埭社区 吗?' 9 | }) .yes(function(){ 10 | wiAlert.success("删除数据成功!"); 11 | }) 12 | .no(function(){ 13 | wiAlert.info("您取消了本次操作!"); 14 | }) 15 | } 16 | }]; 17 | angular.module('ui.wisoft').controller('alertCtrl2',alertCtrl2); -------------------------------------------------------------------------------- /src/bindHtml/bindHtml.js: -------------------------------------------------------------------------------- 1 | angular.module('ui.wisoft.bindHtml', []) 2 | 3 | /** 4 | * @ngdoc directive 5 | * @name ui.wisoft.bindHtml.directive:bindHtmlUnsafe 6 | * @restrict A 7 | * 8 | * @description 9 | * bindHtmlUnsafe 可以指定该元素中的内容。 10 | * 11 | * @param {string} bindHtmlUnsafe 绑定了该元素内容的 scope 中的对象名(其值可以为 html 代码段的字符串,或 jqlite 元素) 12 | * 13 | */ 14 | .directive('bindHtmlUnsafe', function () { 15 | return function (scope, element, attr) { 16 | element.addClass('ng-binding').data('$binding', attr.bindHtmlUnsafe); 17 | scope.$watch(attr.bindHtmlUnsafe, function bindHtmlUnsafeWatchAction(value) { 18 | if(!value) return; 19 | if(typeof value == 'string') 20 | element.html(value || ''); 21 | else{ 22 | element.empty().append(value); 23 | } 24 | }); 25 | }; 26 | }); -------------------------------------------------------------------------------- /src/bindHtml/docs/demo.html: -------------------------------------------------------------------------------- 1 |
2 |

绑定的对象指定一段 html 代码段:

3 |
4 |
-------------------------------------------------------------------------------- /src/bindHtml/docs/demo.js: -------------------------------------------------------------------------------- 1 | var bindHtmlCtrl = ['$scope',function($scope){ 2 | $scope.elemStr = ''; 3 | }]; 4 | angular.module('ui.wisoft').controller('bindHtmlCtrl',bindHtmlCtrl); -------------------------------------------------------------------------------- /src/bindHtml/docs/demo.json: -------------------------------------------------------------------------------- 1 | { 2 | "cname":"bindHtml", 3 | "discribe":"bindHtml(绑定html)", 4 | "demos":[ 5 | {"demoDiscribe": "html 代码段","html":"bindHtml/docs/demo.html","js":"bindHtml/docs/demo.js"}, 6 | {"demoDiscribe":"html 元素","html":"bindHtml/docs/demo_elem.html","js":"bindHtml/docs/demo_elem.js"} 7 | ] 8 | } -------------------------------------------------------------------------------- /src/bindHtml/docs/demo_elem.html: -------------------------------------------------------------------------------- 1 |
2 |

绑定的对象是 jqlite 元素:

3 |
4 |
-------------------------------------------------------------------------------- /src/bindHtml/docs/demo_elem.js: -------------------------------------------------------------------------------- 1 | var bindHtmlCtrl1 = ['$scope','$compile',function($scope, $compile){ 2 | $scope.myClick = function(){ 3 | alert('事件被触发了'); 4 | }; 5 | $scope.elem = $compile('')($scope); 6 | }]; 7 | angular.module('ui.wisoft').controller('bindHtmlCtrl1',bindHtmlCtrl1); -------------------------------------------------------------------------------- /src/button/docs/demo.html: -------------------------------------------------------------------------------- 1 |
2 |
3 | 4 |
5 |

6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 |

14 |
-------------------------------------------------------------------------------- /src/button/docs/demo.js: -------------------------------------------------------------------------------- 1 | var ButtonDemoCtrl = ['$scope', function($scope) { 2 | var ctrl = this; 3 | }]; 4 | angular.module('ui.wisoft').controller('ButtonDemoCtrl',ButtonDemoCtrl); -------------------------------------------------------------------------------- /src/button/docs/demo.json: -------------------------------------------------------------------------------- 1 | { 2 | "cname":"button", 3 | "discribe":"button(按钮)", 4 | "demos":[ 5 | {"demoDiscribe":"常用","html":"button/docs/demo.html","js":"button/docs/demo.js"} 6 | ] 7 | } -------------------------------------------------------------------------------- /src/button/template/button/wi-button.html: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/button/test_button.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | button 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 |
14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 33 | 34 | -------------------------------------------------------------------------------- /src/camerascanner/demo/camerascanner/docs/jscam.swf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wi4angular/WebUI4Angular/23282a5e45111af5f81ab6bbaaa87d3feeb738cd/src/camerascanner/demo/camerascanner/docs/jscam.swf -------------------------------------------------------------------------------- /src/camerascanner/docs/demo.json: -------------------------------------------------------------------------------- 1 | { 2 | "cname":"cameraScanner", 3 | "discribe":"cameraScanner(拍照上传)", 4 | "demos":[ 5 | {"demoDiscribe":"拍照上传","html":"camerascanner/docs/demo1.html","js":"camerascanner/docs/demo1.js"} 6 | ] 7 | } -------------------------------------------------------------------------------- /src/camerascanner/docs/demo1.html: -------------------------------------------------------------------------------- 1 |
2 | 拍照上传 3 |
4 | -------------------------------------------------------------------------------- /src/camerascanner/docs/demo1.js: -------------------------------------------------------------------------------- 1 | var CameraScannerDemoCtrl=['wiAlert',function (wiAlert) { 2 | this.uploadUrl = 'http://192.10.110.174:8804/NewFrame/CommonServlet?bean=FileUploadCommonPO&path=D:\\wisoft\\&sid=408aee4e3bacd24f013bb0ec0e650030'; 3 | 4 | this.uploadComplete = function(data) { 5 | setTimeout(function(){ 6 | var option = { 7 | width: 600, 8 | title: '文件下载地址', 9 | content:'http://192.10.110.174:8804/NewFrame/CommonServlet?bean=FileDownloadPO&file'+data 10 | } 11 | wiAlert.info(option); 12 | }, 500); 13 | 14 | } 15 | }]; 16 | angular.module('ui.wisoft').controller('CameraScannerDemoCtrl',CameraScannerDemoCtrl); -------------------------------------------------------------------------------- /src/camerascanner/docs/jscam.swf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wi4angular/WebUI4Angular/23282a5e45111af5f81ab6bbaaa87d3feeb738cd/src/camerascanner/docs/jscam.swf -------------------------------------------------------------------------------- /src/carousel/docs/demo.html: -------------------------------------------------------------------------------- 1 | 20 |
21 |
22 | 23 | 24 | 25 | 29 | 30 | 31 |
32 |
33 |
34 | 35 |
36 |
37 | Interval, in milliseconds: 38 |
Enter a negative number to stop the interval. 39 |
40 |
41 |
42 | 43 | -------------------------------------------------------------------------------- /src/carousel/docs/demo.js: -------------------------------------------------------------------------------- 1 | var CarouselDemoCtrl=['$scope',function($scope) { 2 | $scope.myInterval = 2000; 3 | var slides = $scope.slides = []; 4 | $scope.addSlide = function() { 5 | var index = 1 + slides.length%5; 6 | slides.push({ 7 | image: 'misc/tempimg/carousel/carousel' + index + '.jpg', 8 | text: ['More','Extra','Lots of','Surplus'][slides.length % 4] + ' ' + 9 | ['Cats', 'Kittys', 'Felines', 'Cutes'][slides.length % 4] 10 | }); 11 | }; 12 | for (var i=0; i<4; i++) { 13 | $scope.addSlide(); 14 | } 15 | }]; 16 | angular.module('ui.wisoft').controller('CarouselDemoCtrl',CarouselDemoCtrl); 17 | -------------------------------------------------------------------------------- /src/carousel/docs/demo.json: -------------------------------------------------------------------------------- 1 | { 2 | "cname":"carousel", 3 | "discribe":"carousel(图片滑动)", 4 | "demos":[ 5 | {"demoDiscribe":"carousel","html":"carousel/docs/demo.html","js":"carousel/docs/demo.js"} 6 | ] 7 | } -------------------------------------------------------------------------------- /src/carousel/template/carousel/carousel.html: -------------------------------------------------------------------------------- 1 | 9 | -------------------------------------------------------------------------------- /src/carousel/template/carousel/slide.html: -------------------------------------------------------------------------------- 1 |
8 | -------------------------------------------------------------------------------- /src/collapse/docs/demo.html: -------------------------------------------------------------------------------- 1 |
2 | 3 |
4 |
5 |
Some content
6 |
7 |
-------------------------------------------------------------------------------- /src/collapse/docs/demo.js: -------------------------------------------------------------------------------- 1 | var CollapseDemoCtrl=['$scope',function($scope) { 2 | $scope.isCollapsed = false; 3 | }]; 4 | angular.module('ui.wisoft').controller('CollapseDemoCtrl',CollapseDemoCtrl); 5 | -------------------------------------------------------------------------------- /src/collapse/docs/demo.json: -------------------------------------------------------------------------------- 1 | { 2 | "cname":"collapse", 3 | "discribe":"collapse(折叠)", 4 | "demos":[ 5 | {"demoDiscribe":"collapse","html":"collapse/docs/demo.html","js":"collapse/docs/demo.js"} 6 | ] 7 | } -------------------------------------------------------------------------------- /src/collapse/simpleTest.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 |
17 |
18 |
Some content
19 |
20 |
21 | 27 | 28 | -------------------------------------------------------------------------------- /src/combobox/docs/comboBox_basic.html: -------------------------------------------------------------------------------- 1 |
2 | 6 | 7 | 8 |

{{selected | json}}

9 |
10 | -------------------------------------------------------------------------------- /src/combobox/docs/comboBox_basic.js: -------------------------------------------------------------------------------- 1 | var ComboBoxDemoBasicCtrl=['$scope',function($scope) { 2 | 3 | var vm = $scope; 4 | vm.mydata = []; 5 | 6 | var seed = new Array('A','B','C','D','E','F','G','H','I','J','K','L','M','N','P','Q','R','S','T','U','V','W','X','Y','Z', 7 | 'a','b','c','d','e','f','g','h','i','j','k','m','n','p','q','r','s','t','u','v','w','x','y','z', 8 | '1','2','3','4','5','6','7','8','9','0', 9 | '一','二','三','四','五','六','七','八','九','十' 10 | ); 11 | 12 | function randomWord() { 13 | var createPassword = '', m,n; 14 | for(m=0;m<10;m++) { 15 | n = Math.floor(Math.random()*seed.length); 16 | createPassword += seed[n]; 17 | } 18 | return createPassword; 19 | } 20 | 21 | for(var i=0;i<100;i++) { 22 | var obj = {}; 23 | obj.id = i; 24 | obj.name = randomWord(); 25 | vm.mydata.push(obj) 26 | } 27 | 28 | vm.itemChangeHandler = function (data){ 29 | vm.selected = data; 30 | } 31 | 32 | }]; 33 | angular.module('ui.wisoft').controller('ComboBoxDemoBasicCtrl',ComboBoxDemoBasicCtrl); 34 | -------------------------------------------------------------------------------- /src/combobox/docs/comboBox_enable.html: -------------------------------------------------------------------------------- 1 |
2 | 7 | 8 | 可用: 9 | {{myEnable}} 10 | 11 |

{{selected | json}}

12 |
13 | -------------------------------------------------------------------------------- /src/combobox/docs/comboBox_enable.js: -------------------------------------------------------------------------------- 1 | var ComboBoxDemoEnableCtrl=['$scope',function($scope) { 2 | 3 | var vm = $scope; 4 | 5 | vm.mydata = []; 6 | 7 | var seed = new Array('A','B','C','D','E','F','G','H','I','J','K','L','M','N','P','Q','R','S','T','U','V','W','X','Y','Z', 8 | 'a','b','c','d','e','f','g','h','i','j','k','m','n','p','q','r','s','t','u','v','w','x','y','z', 9 | '1','2','3','4','5','6','7','8','9','0', 10 | '一','二','三','四','五','六','七','八','九','十' 11 | ); 12 | 13 | function randomWord() { 14 | var createPassword = '', m,n; 15 | for(m=0;m<10;m++) { 16 | n = Math.floor(Math.random()*seed.length); 17 | createPassword += seed[n]; 18 | } 19 | return createPassword; 20 | } 21 | 22 | for(var i=0;i<100;i++) { 23 | var obj = {}; 24 | obj.id = i; 25 | obj.name = randomWord(); 26 | vm.mydata.push(obj) 27 | } 28 | 29 | vm.myEnable = false; 30 | 31 | vm.itemChangeHandler = function (data){ 32 | vm.selected = data; 33 | } 34 | 35 | }]; 36 | angular.module('ui.wisoft').controller('ComboBoxDemoEnableCtrl',ComboBoxDemoEnableCtrl); 37 | -------------------------------------------------------------------------------- /src/combobox/docs/comboBox_group.html: -------------------------------------------------------------------------------- 1 |
2 | 8 | 9 | 10 |

{{selected | json}}

11 |
12 | -------------------------------------------------------------------------------- /src/combobox/docs/comboBox_group.js: -------------------------------------------------------------------------------- 1 | var ComboBoxDemoGroupCtrl=['$scope',function($scope) { 2 | 3 | var vm = $scope; 4 | vm.groupData = [ 5 | { "value":"f20", "text":"Firefox 2.0 or higher", "group":"Firefox" }, 6 | { "value":"f15", "text":"Firefox 1.5.x", "group":"Firefox" }, 7 | { "value":"f10", "text":"Firefox 1.0.x", "group":"Firefox" }, 8 | { "value":"ie7", "text":"IE 7.0 or higher", "group":"Microsoft Internet Explorer" }, 9 | { "value":"ie6", "text":"IE 6.x", "group":"Microsoft Internet Explorer" }, 10 | { "value":"ie5", "text":"IE 5.x", "group":"Microsoft Internet Explorer" }, 11 | { "value":"ie4", "text":"IE 4.x", "group":"Microsoft Internet Explorer" }, 12 | { "value":"op9", "text":"Opera 9.0 or higher", "group":"Opera" }, 13 | { "value":"op8", "text":"Opera 8.x", "group":"Opera" }, 14 | { "value":"op7", "text":"Opera 7.x", "group":"Opera" }, 15 | { "value":"Safari", "text":"Safari", "group":"Safari" }, 16 | { "value":"Other", "text":"Other", "group":"Other" } 17 | ]; 18 | 19 | vm.itemChangeHandler = function (data){ 20 | vm.selected = data; 21 | } 22 | }]; 23 | angular.module('ui.wisoft').controller('ComboBoxDemoGroupCtrl',ComboBoxDemoGroupCtrl); 24 | -------------------------------------------------------------------------------- /src/combobox/docs/comboBox_multi.html: -------------------------------------------------------------------------------- 1 |
2 | 7 | 8 | 9 |

{{selected | json}}

10 |
11 | -------------------------------------------------------------------------------- /src/combobox/docs/comboBox_multi.js: -------------------------------------------------------------------------------- 1 | var ComboBoxDemoMultiCtrl=['$scope',function($scope) { 2 | 3 | var vm = $scope; 4 | 5 | vm.mydata = []; 6 | 7 | var seed = new Array('A','B','C','D','E','F','G','H','I','J','K','L','M','N','P','Q','R','S','T','U','V','W','X','Y','Z', 8 | 'a','b','c','d','e','f','g','h','i','j','k','m','n','p','q','r','s','t','u','v','w','x','y','z', 9 | '1','2','3','4','5','6','7','8','9','0', 10 | '一','二','三','四','五','六','七','八','九','十' 11 | ); 12 | 13 | function randomWord() { 14 | var createPassword = '', m,n; 15 | for(m=0;m<10;m++) { 16 | n = Math.floor(Math.random()*seed.length); 17 | createPassword += seed[n]; 18 | } 19 | return createPassword; 20 | } 21 | 22 | for(var i=0;i<100;i++) { 23 | var obj = {}; 24 | obj.id = i; 25 | obj.name = randomWord(); 26 | vm.mydata.push(obj) 27 | } 28 | 29 | }]; 30 | angular.module('ui.wisoft').controller('ComboBoxDemoMultiCtrl',ComboBoxDemoMultiCtrl); -------------------------------------------------------------------------------- /src/combobox/docs/comboBox_noEdit.html: -------------------------------------------------------------------------------- 1 |
2 | 7 | 8 | 9 |

{{selected | json}}

10 |
11 | -------------------------------------------------------------------------------- /src/combobox/docs/comboBox_noEdit.js: -------------------------------------------------------------------------------- 1 | var ComboBoxDemoNoEditCtrl=['$scope',function($scope) { 2 | 3 | var vm = $scope; 4 | 5 | vm.mydata = []; 6 | 7 | var seed = new Array('A','B','C','D','E','F','G','H','I','J','K','L','M','N','P','Q','R','S','T','U','V','W','X','Y','Z', 8 | 'a','b','c','d','e','f','g','h','i','j','k','m','n','p','q','r','s','t','u','v','w','x','y','z', 9 | '1','2','3','4','5','6','7','8','9','0', 10 | '一','二','三','四','五','六','七','八','九','十' 11 | ); 12 | 13 | function randomWord() { 14 | var createPassword = '', m,n; 15 | for(m=0;m<10;m++) { 16 | n = Math.floor(Math.random()*seed.length); 17 | createPassword += seed[n]; 18 | } 19 | return createPassword; 20 | } 21 | 22 | for(var i=0;i<100;i++) { 23 | var obj = {}; 24 | obj.id = i; 25 | obj.name = randomWord(); 26 | vm.mydata.push(obj) 27 | } 28 | 29 | vm.itemChangeHandler = function (data){ 30 | vm.selected = data; 31 | } 32 | 33 | }]; 34 | angular.module('ui.wisoft').controller('ComboBoxDemoNoEditCtrl',ComboBoxDemoNoEditCtrl); -------------------------------------------------------------------------------- /src/combobox/docs/comboBox_rowCount.html: -------------------------------------------------------------------------------- 1 |
2 | 7 | 8 | 9 |

{{selected | json}}

10 |
11 | -------------------------------------------------------------------------------- /src/combobox/docs/comboBox_rowCount.js: -------------------------------------------------------------------------------- 1 | var ComboBoxDemoRowCountCtrl=['$scope',function($scope) { 2 | 3 | var vm = $scope; 4 | 5 | vm.mydata = []; 6 | 7 | var seed = new Array('A','B','C','D','E','F','G','H','I','J','K','L','M','N','P','Q','R','S','T','U','V','W','X','Y','Z', 8 | 'a','b','c','d','e','f','g','h','i','j','k','m','n','p','q','r','s','t','u','v','w','x','y','z', 9 | '1','2','3','4','5','6','7','8','9','0', 10 | '一','二','三','四','五','六','七','八','九','十' 11 | ); 12 | 13 | function randomWord() { 14 | var createPassword = '', m,n; 15 | for(m=0;m<10;m++) { 16 | n = Math.floor(Math.random()*seed.length); 17 | createPassword += seed[n]; 18 | } 19 | return createPassword; 20 | } 21 | 22 | for(var i=0;i<100;i++) { 23 | var obj = {}; 24 | obj.id = i; 25 | obj.name = randomWord(); 26 | vm.mydata.push(obj) 27 | } 28 | 29 | vm.itemChangeHandler = function (data){ 30 | vm.selected = data; 31 | } 32 | 33 | }]; 34 | angular.module('ui.wisoft').controller('ComboBoxDemoRowCountCtrl',ComboBoxDemoRowCountCtrl); -------------------------------------------------------------------------------- /src/combobox/docs/demo.json: -------------------------------------------------------------------------------- 1 | { 2 | "cname":"comboBox", 3 | "discribe":"comboBox(下拉框)", 4 | "demos":[ 5 | {"demoDiscribe":"基本","html":"combobox/docs/comboBox_basic.html","js":"combobox/docs/comboBox_basic.js"} 6 | ,{"demoDiscribe":"不可编辑","html":"combobox/docs/comboBox_noEdit.html","js":"combobox/docs/comboBox_noEdit.js"} 7 | ,{"demoDiscribe":"显示行数","html":"combobox/docs/comboBox_rowCount.html","js":"combobox/docs/comboBox_rowCount.js"} 8 | ,{"demoDiscribe":"分组","html":"combobox/docs/comboBox_group.html","js":"combobox/docs/comboBox_group.js"} 9 | ,{"demoDiscribe":"不可用","html":"combobox/docs/comboBox_enable.html","js":"combobox/docs/comboBox_enable.js"} 10 | ,{"demoDiscribe":"多选","html":"combobox/docs/comboBox_multi.html","js":"combobox/docs/comboBox_multi.js"} 11 | ] 12 | } -------------------------------------------------------------------------------- /src/combobox/template/combobox/comboboxTemplate.html: -------------------------------------------------------------------------------- 1 |
5 |
6 | 15 |
16 | 17 | 18 |
-------------------------------------------------------------------------------- /src/datagrid/docs/datagrid_basic.html: -------------------------------------------------------------------------------- 1 |
2 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | -------------------------------------------------------------------------------- /src/datagrid/docs/datagrid_basic.js: -------------------------------------------------------------------------------- 1 | var DataGridDemoBasicCtrl=['$scope',function ($scope) { 2 | 3 | $scope.dg={}; 4 | 5 | function pad(num, n) { 6 | return (Array(n).join(0) + num).slice(-n); 7 | } 8 | 9 | var dgData=[]; 10 | 11 | for(var i=0;i<50;i++){ 12 | var obj={}; 13 | obj.username='username'+i; 14 | obj.address='address'+i; 15 | obj.date='2014-07-'+pad(((i>30?i-30:i)+1),2); 16 | obj.num = (i+1)*100; 17 | 18 | dgData.push(obj); 19 | } 20 | 21 | $scope.dgData = dgData; 22 | 23 | $scope.dblClick = function (data){ 24 | alert(data.username+'----'+data.address); 25 | } 26 | }] 27 | angular.module('ui.wisoft').controller('DataGridDemoBasicCtrl',DataGridDemoBasicCtrl); -------------------------------------------------------------------------------- /src/datagrid/docs/datagrid_columnGroup.html: -------------------------------------------------------------------------------- 1 |
2 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | -------------------------------------------------------------------------------- /src/datagrid/docs/datagrid_columnGroup.js: -------------------------------------------------------------------------------- 1 | var DataGridDemoColumnGroupCtrl=['$scope',function($scope) { 2 | 3 | $scope.dg={}; 4 | 5 | function pad(num, n) { 6 | return (Array(n).join(0) + num).slice(-n); 7 | } 8 | 9 | var dgData=[]; 10 | 11 | for(var i=0;i<50;i++){ 12 | var obj={}; 13 | obj.username='username'+i; 14 | obj.address='address'+i; 15 | obj.date='2014-07-'+pad((i+1),2); 16 | obj.num = (i+1)*100; 17 | 18 | dgData.push(obj); 19 | } 20 | 21 | $scope.dgData = dgData; 22 | 23 | }]; 24 | angular.module('ui.wisoft').controller('DataGridDemoColumnGroupCtrl',DataGridDemoColumnGroupCtrl); -------------------------------------------------------------------------------- /src/datagrid/docs/datagrid_excel.html: -------------------------------------------------------------------------------- 1 |
2 |

目前仅支持导出当前页数据

3 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | -------------------------------------------------------------------------------- /src/datagrid/docs/datagrid_excel.js: -------------------------------------------------------------------------------- 1 | var DataGridDemoExcelCtrl=['$scope',function($scope) { 2 | 3 | $scope.dg={}; 4 | 5 | function pad(num, n) { 6 | return (Array(n).join(0) + num).slice(-n); 7 | } 8 | 9 | var dgData=[]; 10 | 11 | for(var i=0;i<50;i++){ 12 | var obj={}; 13 | obj.username='username'+i; 14 | obj.address='address'+i; 15 | obj.date='2014-07-'+pad((i+1),2); 16 | obj.num = (i+1)*100; 17 | 18 | dgData.push(obj); 19 | } 20 | 21 | $scope.dgData = dgData; 22 | 23 | }]; 24 | angular.module('ui.wisoft').controller('DataGridDemoExcelCtrl',DataGridDemoExcelCtrl); -------------------------------------------------------------------------------- /src/datagrid/docs/datagrid_filter.html: -------------------------------------------------------------------------------- 1 |
2 | 未完待续...... 3 |
4 | -------------------------------------------------------------------------------- /src/datagrid/docs/datagrid_filter.js: -------------------------------------------------------------------------------- 1 | var DataGridDemoFilterCtrl=['$scope',function($scope) { 2 | 3 | $scope.dg={}; 4 | 5 | function pad(num, n) { 6 | return (Array(n).join(0) + num).slice(-n); 7 | } 8 | 9 | var dgData=[]; 10 | 11 | for(var i=0;i<50;i++){ 12 | var obj={}; 13 | obj.username='username'+i; 14 | obj.address='address'+i; 15 | obj.sex=i%2; 16 | obj.date='2014-07-'+pad((i+1),2); 17 | obj.num = (i+1)*100; 18 | 19 | dgData.push(obj); 20 | } 21 | 22 | $scope.dgData = dgData; 23 | 24 | $scope.sexLabelFun = function(data){ 25 | if(data){ 26 | if(data.sex===1){ 27 | return '男'; 28 | }else{ 29 | return '女'; 30 | } 31 | }else{ 32 | return '未知'; 33 | } 34 | } 35 | }]; 36 | angular.module('ui.wisoft').controller('DataGridDemoFilterCtrl',DataGridDemoFilterCtrl); -------------------------------------------------------------------------------- /src/datagrid/docs/datagrid_headRenderer.js: -------------------------------------------------------------------------------- 1 | var DataGridDemoHeadRendererCtrl=['$scope',function($scope) { 2 | 3 | $scope.dg={}; 4 | 5 | function pad(num, n) { 6 | return (Array(n).join(0) + num).slice(-n); 7 | } 8 | 9 | var dgData=[]; 10 | 11 | for(var i=0;i<50;i++){ 12 | var obj={}; 13 | obj.username='username'+i; 14 | obj.address='address'+i; 15 | obj.date='2014-07-'+pad(((i>30?i-30:i)+1),2); 16 | obj.num = (i+1)*100; 17 | 18 | dgData.push(obj); 19 | } 20 | 21 | $scope.dgData = dgData; 22 | 23 | $scope.$on('itemClickHandler', function (d,data) { 24 | alert(data.username); 25 | }) 26 | }]; 27 | angular.module('ui.wisoft').controller('DataGridDemoHeadRendererCtrl',DataGridDemoHeadRendererCtrl); -------------------------------------------------------------------------------- /src/datagrid/docs/datagrid_itemRenderer.html: -------------------------------------------------------------------------------- 1 |
2 | 4 | 5 | 6 | 7 | 8 | 13 | 14 | 15 |
16 | -------------------------------------------------------------------------------- /src/datagrid/docs/datagrid_itemRenderer.js: -------------------------------------------------------------------------------- 1 | var DataGridDemoItemRendererCtrl=['$scope',function($scope) { 2 | 3 | $scope.dg={}; 4 | 5 | function pad(num, n) { 6 | return (Array(n).join(0) + num).slice(-n); 7 | } 8 | 9 | var dgData=[]; 10 | 11 | for(var i=0;i<50;i++){ 12 | var obj={}; 13 | obj.username='username'+i; 14 | obj.address='address'+i; 15 | obj.date='2014-07-'+pad((i+1),2); 16 | obj.num = (i+1)*100; 17 | 18 | dgData.push(obj); 19 | } 20 | 21 | $scope.dgData = dgData; 22 | 23 | $scope.$on('itemClickHandler', function (d,data) { 24 | alert(data.username); 25 | }) 26 | }]; 27 | angular.module('ui.wisoft').controller('DataGridDemoItemRendererCtrl',DataGridDemoItemRendererCtrl); -------------------------------------------------------------------------------- /src/datagrid/docs/datagrid_labfunction.html: -------------------------------------------------------------------------------- 1 |
2 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | -------------------------------------------------------------------------------- /src/datagrid/docs/datagrid_labfunction.js: -------------------------------------------------------------------------------- 1 | var DataGridDemoLabFunCtrl=['$scope',function ($scope) { 2 | 3 | $scope.dg={}; 4 | 5 | function pad(num, n) { 6 | return (Array(n).join(0) + num).slice(-n); 7 | } 8 | 9 | var dgData=[]; 10 | 11 | for(var i=0;i<50;i++){ 12 | var obj={}; 13 | obj.username='username'+i; 14 | obj.address='address'+i; 15 | obj.date='2014-07-'+pad((i+1),2); 16 | obj.num = (i+1)*100; 17 | 18 | dgData.push(obj); 19 | } 20 | 21 | $scope.dgData = dgData; 22 | 23 | $scope.usenameLabFun = function (data){ 24 | if(data){ 25 | if(data.username=='username1'){ 26 | return ''+data.username+''; 27 | }else{ 28 | return ''+data.username+''; 29 | } 30 | } 31 | else{ 32 | //清空数据(必须要写为空的判断处理,否则不能清空数据) 33 | return " ";//空字符串 34 | } 35 | } 36 | }] 37 | angular.module('ui.wisoft').controller('DataGridDemoLabFunCtrl',DataGridDemoLabFunCtrl); -------------------------------------------------------------------------------- /src/datagrid/docs/datagrid_lockColumn.html: -------------------------------------------------------------------------------- 1 |
2 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | -------------------------------------------------------------------------------- /src/datagrid/docs/datagrid_lockColumn.js: -------------------------------------------------------------------------------- 1 | var DataGridDemoLockColumnCtrl=['$scope',function($scope) { 2 | 3 | $scope.dg={}; 4 | 5 | function pad(num, n) { 6 | return (Array(n).join(0) + num).slice(-n); 7 | } 8 | 9 | var dgData=[]; 10 | 11 | for(var i=0;i<50;i++){ 12 | var obj={}; 13 | obj.username='username'+i; 14 | obj.address='address'+i; 15 | obj.date='2014-07-'+pad((i+1),2); 16 | obj.num = (i+1)*100; 17 | 18 | dgData.push(obj); 19 | } 20 | 21 | $scope.dgData = dgData; 22 | }]; 23 | angular.module('ui.wisoft').controller('DataGridDemoLockColumnCtrl',DataGridDemoLockColumnCtrl); -------------------------------------------------------------------------------- /src/datagrid/docs/datagrid_multiSelect.html: -------------------------------------------------------------------------------- 1 |
2 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | -------------------------------------------------------------------------------- /src/datagrid/docs/datagrid_multiSelect.js: -------------------------------------------------------------------------------- 1 | var DataGridDemoMultiSelectCtrl=['$scope',function($scope) { 2 | 3 | $scope.dg={}; 4 | 5 | function pad(num, n) { 6 | return (Array(n).join(0) + num).slice(-n); 7 | } 8 | 9 | var dgData=[]; 10 | 11 | for(var i=0;i<50;i++){ 12 | var obj={}; 13 | obj.username='username'+i; 14 | obj.address='address'+i; 15 | obj.date='2014-07-'+pad((i+1),2); 16 | obj.num = (i+1)*100; 17 | 18 | dgData.push(obj); 19 | } 20 | 21 | $scope.dgData = dgData; 22 | }]; 23 | angular.module('ui.wisoft').controller('DataGridDemoMultiSelectCtrl',DataGridDemoMultiSelectCtrl); -------------------------------------------------------------------------------- /src/datagrid/docs/datagrid_nopage.html: -------------------------------------------------------------------------------- 1 |
2 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | -------------------------------------------------------------------------------- /src/datagrid/docs/datagrid_nopage.js: -------------------------------------------------------------------------------- 1 | var DataGridDemoNoPageCtrl=['$scope',function($scope) { 2 | 3 | $scope.dg={}; 4 | 5 | function pad(num, n) { 6 | return (Array(n).join(0) + num).slice(-n); 7 | } 8 | 9 | var dgData=[]; 10 | 11 | for(var i=0;i<50;i++){ 12 | var obj={}; 13 | obj.username='username'+i; 14 | obj.address='address'+i; 15 | obj.date='2014-07-'+pad((i+1),2); 16 | obj.num = (i+1)*100; 17 | 18 | dgData.push(obj); 19 | } 20 | 21 | $scope.dgData = dgData; 22 | }]; 23 | angular.module('ui.wisoft').controller('DataGridDemoNoPageCtrl',DataGridDemoNoPageCtrl); -------------------------------------------------------------------------------- /src/datagrid/docs/datagrid_rowcolor.html: -------------------------------------------------------------------------------- 1 |
2 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | -------------------------------------------------------------------------------- /src/datagrid/docs/datagrid_rowcolor.js: -------------------------------------------------------------------------------- 1 | var DataGridDemoRowcolorCtrl=['$scope',function ($scope) { 2 | 3 | $scope.dg={}; 4 | 5 | function pad(num, n) { 6 | return (Array(n).join(0) + num).slice(-n); 7 | } 8 | 9 | var dgData=[]; 10 | 11 | for(var i=0;i<50;i++){ 12 | var obj={}; 13 | obj.username='username'+i; 14 | obj.address='address'+i; 15 | obj.date='2014-07-'+pad((i+1),2); 16 | obj.num = (i+1)*100; 17 | 18 | dgData.push(obj); 19 | } 20 | 21 | $scope.dgData = dgData; 22 | 23 | //返回颜色值 24 | $scope.myRowColorFunction=function(data){ 25 | if(data.username=='username2'){ 26 | return "#6BA95B"; 27 | } 28 | }; 29 | }] 30 | angular.module('ui.wisoft').controller('DataGridDemoRowcolorCtrl',DataGridDemoRowcolorCtrl); -------------------------------------------------------------------------------- /src/datagrid/docs/datagrid_server.html: -------------------------------------------------------------------------------- 1 |
2 | 未完待续...... 3 |
4 | -------------------------------------------------------------------------------- /src/datagrid/docs/datagrid_server.js: -------------------------------------------------------------------------------- 1 | var DataGridDemoServerCtrl=['$scope',function($scope) { 2 | 3 | $scope.dg={}; 4 | 5 | function pad(num, n) { 6 | return (Array(n).join(0) + num).slice(-n); 7 | } 8 | 9 | var dgData=[]; 10 | 11 | for(var i=0;i<50;i++){ 12 | var obj={}; 13 | obj.username='username'+i; 14 | obj.address='address'+i; 15 | obj.date='2014-07-'+pad((i+1),2); 16 | obj.num = (i+1)*100; 17 | 18 | dgData.push(obj); 19 | } 20 | 21 | $scope.dgData = dgData; 22 | }]; 23 | angular.module('ui.wisoft').controller('DataGridDemoServerCtrl',DataGridDemoServerCtrl); -------------------------------------------------------------------------------- /src/datagrid/docs/datagrid_sort.html: -------------------------------------------------------------------------------- 1 |
2 |

点击表头排序

3 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | -------------------------------------------------------------------------------- /src/datagrid/docs/datagrid_sort.js: -------------------------------------------------------------------------------- 1 | var DataGridDemoSortCtrl=['$scope',function($scope) { 2 | 3 | $scope.dg={}; 4 | 5 | function pad(num, n) { 6 | return (Array(n).join(0) + num).slice(-n); 7 | } 8 | 9 | var dgData=[]; 10 | 11 | for(var i=0;i<50;i++){ 12 | var obj={}; 13 | obj.username='username'+i; 14 | obj.address='address'+i; 15 | obj.date='2014-07-'+pad((i+1),2); 16 | obj.num = (i+1)*100; 17 | 18 | dgData.push(obj); 19 | } 20 | 21 | $scope.dgData = dgData; 22 | }]; 23 | angular.module('ui.wisoft').controller('DataGridDemoSortCtrl',DataGridDemoSortCtrl); -------------------------------------------------------------------------------- /src/datagrid/docs/datagrid_tool.html: -------------------------------------------------------------------------------- 1 |
2 | 5 | 6 | 9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | -------------------------------------------------------------------------------- /src/datagrid/docs/datagrid_tool.js: -------------------------------------------------------------------------------- 1 | var DataGridDemoToolCtrl=['$scope',function($scope) { 2 | 3 | $scope.dg={}; 4 | 5 | function pad(num, n) { 6 | return (Array(n).join(0) + num).slice(-n); 7 | } 8 | 9 | var dgData=[]; 10 | 11 | for(var i=0;i<50;i++){ 12 | var obj={}; 13 | obj.username='username'+i; 14 | obj.address='address'+i; 15 | obj.date='2014-07-'+pad((i+1),2); 16 | obj.num = (i+1)*100; 17 | 18 | dgData.push(obj); 19 | } 20 | 21 | $scope.dgData = dgData; 22 | 23 | $scope.$on('custom', function (event) { 24 | alert("自定义操作"); 25 | }) 26 | }]; 27 | angular.module('ui.wisoft').controller('DataGridDemoToolCtrl',DataGridDemoToolCtrl); -------------------------------------------------------------------------------- /src/datagrid/docs/datagrid_tree.html: -------------------------------------------------------------------------------- 1 |
2 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | -------------------------------------------------------------------------------- /src/datagrid/test/datagrid.spec.js: -------------------------------------------------------------------------------- 1 | 2 | describe('datagrid', function () { 3 | var scope, $compile; 4 | var element; 5 | 6 | var mydgService; 7 | 8 | var dataprovider=[ 9 | {ischecked:true}, {ischecked:true}, {ischecked:false} 10 | ]; 11 | 12 | beforeEach(module('ui.wisoft.datagrid')); 13 | //beforeEach(module('template/alert/alert.html')); 14 | 15 | beforeEach( inject( function(_dgService_){ 16 | mydgService = _dgService_; 17 | })); 18 | 19 | it('checkTotal of myService', function() { 20 | expect(mydgService.checkTotal()).toBe(false); 21 | }); 22 | 23 | 24 | }); 25 | -------------------------------------------------------------------------------- /src/dialog/docs/demo.json: -------------------------------------------------------------------------------- 1 | { 2 | "cname":"dialog", 3 | "discribe":"dialog弹出框", 4 | "demos":[ 5 | {"demoDiscribe":"弹出dialog","html":"dialog/docs/demo1.html","js":"dialog/docs/demo1.js"}, 6 | {"demoDiscribe":"关闭dialog","html":"dialog/docs/demo5.html","js":"dialog/docs/demo5.js"}, 7 | {"demoDiscribe":"监听窗口关闭","html":"dialog/docs/demo2.html","js":"dialog/docs/demo2.js"}, 8 | {"demoDiscribe":"打开和关闭窗口时的数据传递","html":"dialog/docs/demo3.html","js":"dialog/docs/demo3.js"}, 9 | {"demoDiscribe":"其它","html":"dialog/docs/demo4.html","js":"dialog/docs/demo4.js"} 10 | ] 11 | } -------------------------------------------------------------------------------- /src/dialog/docs/demo1.html: -------------------------------------------------------------------------------- 1 | 2 | 14 | 15 |
16 | 使用字符串作为模板
17 | 使用script作为模板
18 | 使用Url作为模板
19 |
-------------------------------------------------------------------------------- /src/dialog/docs/demo1.js: -------------------------------------------------------------------------------- 1 | var dialogCtrl1=['$scope','wiDialog',function($scope,wiDialog) { 2 | 3 | $scope.dialogData={"username":"中科惠软","address":"长江路科技园五区三楼"}; 4 | 5 | //使用字符串作为模板 6 | $scope.openByStringTpl = function () { 7 | wiDialog.open({ 8 | plain:true, 9 | template:'
使用字符串模板
', 10 | title:'字符串模板', 11 | width:280 12 | }); 13 | }; 14 | 15 | var scriptDialog; 16 | //使用script作为模板 17 | $scope.openByScriptTpl = function () { 18 | scriptDialog=wiDialog.open({ 19 | template: 'firstDialogId', 20 | title:'script作为模板', 21 | scope: $scope, 22 | width:380 23 | }); 24 | }; 25 | $scope.closeScriptDialog=function(){ 26 | scriptDialog.close(); 27 | } 28 | 29 | 30 | //使用url作为模板,该url必须是一个html片段 31 | $scope.openDefaultByUrl = function () { 32 | wiDialog.open({ 33 | template: 'demo/dialog/docs/template.html', 34 | closeByEscape:false, 35 | title:'url作为模板', 36 | scope: $scope, 37 | width:680//height是自适应的,不需要指定 38 | }); 39 | }; 40 | }]; 41 | angular.module('ui.wisoft').controller('dialogCtrl1',dialogCtrl1); -------------------------------------------------------------------------------- /src/dialog/docs/demo2.html: -------------------------------------------------------------------------------- 1 |
2 | 使用promise监听窗口关闭
3 | 使用rootscope监听打开和关闭---请查看console控制台
4 |
-------------------------------------------------------------------------------- /src/dialog/docs/demo3.js: -------------------------------------------------------------------------------- 1 | var dialogCtrl3=['$scope','wiDialog',function($scope,wiDialog) { 2 | 3 | $scope.dialogData={"username":"中科惠软","address":"长江路科技园五区三楼"}; 4 | 5 | $scope.openByScriptTpl = function () { 6 | wiDialog.open({ 7 | template: 'firstDialogId', 8 | title:'script作为模板', 9 | scope: $scope, 10 | width:380, 11 | height:300 12 | }); 13 | }; 14 | $scope.sayHello=function(){ 15 | console.log("弹出的dialog窗口调用到了scope中的sayHello()方法........"); 16 | } 17 | 18 | $scope.openConfirm = function () { 19 | wiDialog.openConfirm({ 20 | template: 'modalDialogId', 21 | width:600, 22 | closeByEscape:true, 23 | title:'confirm窗口' 24 | }).then(function (value) { 25 | console.log('Modal promise resolved. Value: ', '姓名:'+value.username+'---住址:'+value.address); 26 | }, function (reason) { 27 | console.log('Modal promise rejected. Reason: ', reason); 28 | }); 29 | }; 30 | }]; 31 | angular.module('ui.wisoft').controller('dialogCtrl3',dialogCtrl3); -------------------------------------------------------------------------------- /src/dialog/docs/demo4.html: -------------------------------------------------------------------------------- 1 |
2 | 无header的弹出框
3 | 定时关闭的dialog
4 | 非模态的dialog
5 |
6 | 7 | -------------------------------------------------------------------------------- /src/dialog/docs/demo4.js: -------------------------------------------------------------------------------- 1 | var dialogCtrl4=['$scope','wiDialog',function($scope,wiDialog) { 2 | 3 | $scope.openDialogWithNoHead=function(){ 4 | wiDialog.open({ 5 | plain:true, 6 | template:'
无header的弹出框
', 7 | width:200, 8 | height:200, 9 | withoutHead:true 10 | }); 11 | } 12 | $scope.openNoModalDialog=function(){ 13 | wiDialog.open({ 14 | plain:true, 15 | template:'
非模态的弹出框
', 16 | width:300, 17 | height:200, 18 | overlay:false, 19 | title:'非模态的弹出框' 20 | }); 21 | } 22 | $scope.openTimed = function () { 23 | var dialog = wiDialog.open({ 24 | template: '

1秒后自己关闭!

', 25 | plain: true, 26 | title:'提示', 27 | width:200, 28 | closeByDocument: false, 29 | closeByEscape: false 30 | }); 31 | setTimeout(function () { 32 | dialog.close(); 33 | }, 1000); 34 | }; 35 | }]; 36 | angular.module('ui.wisoft').controller('dialogCtrl4',dialogCtrl4); -------------------------------------------------------------------------------- /src/dialog/docs/demo5.html: -------------------------------------------------------------------------------- 1 | 15 |
16 | 使用open弹出dialog
17 | 使用openConfirm弹出dialog
18 |
-------------------------------------------------------------------------------- /src/dialog/docs/demo5.js: -------------------------------------------------------------------------------- 1 | var dialogCtrl5=['$scope','wiDialog',function($scope,wiDialog) { 2 | 3 | var scriptDialog; 4 | //使用script作为模板 5 | $scope.openByScriptTpl = function () { 6 | scriptDialog=wiDialog.open({ 7 | template: 'dialog4close', 8 | title:'script作为模板', 9 | scope: $scope, 10 | width:480 11 | }); 12 | }; 13 | $scope.openConfirmDialog = function () { 14 | wiDialog.openConfirm({ 15 | template: 'dialog4close', 16 | title:'script作为模板', 17 | scope: $scope, 18 | width:480 19 | }); 20 | }; 21 | $scope.closeScriptDialog=function(){ 22 | //使用openConfirm打开窗口时无效 23 | scriptDialog.close(); 24 | } 25 | $scope.closeAll=function(){ 26 | wiDialog.closeAll(); 27 | } 28 | $scope.closeOne=function(){ 29 | wiDialog.closeOne(scriptDialog.id); 30 | } 31 | }]; 32 | angular.module('ui.wisoft').controller('dialogCtrl5',dialogCtrl5); -------------------------------------------------------------------------------- /src/dialog/docs/iframe.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 28 | 29 | -------------------------------------------------------------------------------- /src/dialog/docs/template.html: -------------------------------------------------------------------------------- 1 |
2 |
3 |

独立的html片段作为模板

4 |

username:{{dialogData.username}}------------address:{{dialogData.address}}

5 |

username:{{dialogData.username}}------------address:{{dialogData.address}}

6 |

username:{{dialogData.username}}------------address:{{dialogData.address}}

7 |

username:{{dialogData.username}}------------address:{{dialogData.address}}

8 |

username:{{dialogData.username}}------------address:{{dialogData.address}}

9 |

username:{{dialogData.username}}------------address:{{dialogData.address}}

10 |

username:{{dialogData.username}}------------address:{{dialogData.address}}

11 |

username:{{dialogData.username}}------------address:{{dialogData.address}}

12 |

username:{{dialogData.username}}------------address:{{dialogData.address}}

13 |

username:{{dialogData.username}}------------address:{{dialogData.address}}

14 |
15 |
16 | 17 |
18 |
-------------------------------------------------------------------------------- /src/dividedbox/docs/demo.html: -------------------------------------------------------------------------------- 1 |
2 |

横向分屏标签:wi-hdividedbox

3 |
4 | 5 | 1-1 6 | 1-2 7 | 1-3 8 | 1-4 9 | 1-5 10 | 11 |
12 |
-------------------------------------------------------------------------------- /src/dividedbox/docs/demo.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wi4angular/WebUI4Angular/23282a5e45111af5f81ab6bbaaa87d3feeb738cd/src/dividedbox/docs/demo.js -------------------------------------------------------------------------------- /src/dividedbox/docs/demo.json: -------------------------------------------------------------------------------- 1 | { 2 | "cname":"dividedbox", 3 | "discribe":"dividedbox(分屏)", 4 | "demos":[ 5 | {"demoDiscribe":"横向","html":"dividedbox/docs/demo.html","js":"dividedbox/docs/demo.js"}, 6 | {"demoDiscribe":"纵向","html":"dividedbox/docs/demo0.html","js":"dividedbox/docs/demo.js"}, 7 | {"demoDiscribe":"标题栏","html":"dividedbox/docs/demo_head.html","js":"dividedbox/docs/demo.js"}, 8 | {"demoDiscribe":"折叠","html":"dividedbox/docs/demo1.html","js":"dividedbox/docs/demo.js"}, 9 | {"demoDiscribe":"禁用 resize","html":"dividedbox/docs/demo2.html","js":"dividedbox/docs/demo.js"} 10 | ] 11 | } -------------------------------------------------------------------------------- /src/dividedbox/docs/demo0.html: -------------------------------------------------------------------------------- 1 |
2 |

纵向分屏标签:wi-vdividedbox

3 |
4 | 5 | 1-1 6 | 1-2 7 | 8 |
9 |
-------------------------------------------------------------------------------- /src/dividedbox/docs/demo1.html: -------------------------------------------------------------------------------- 1 |
2 |

【collapseto】:折叠方向(横向——"left"/"right",纵向——"up"/"down")

3 |

【collapsed】:初始折叠状态,必须定义 collapseto 才会生效,true 时折叠,默认为 false。

4 |
5 | 6 | 1-1 7 | 1-2 8 | 1-3 9 | 1-4 10 | 1-5 11 | 12 |
13 |
-------------------------------------------------------------------------------- /src/dividedbox/docs/demo2.html: -------------------------------------------------------------------------------- 1 |
2 |

【resizable="false"】:边界禁止拖动

3 |
4 | 5 | 1-1 6 | 1-2 7 | 1-3 8 | 9 |
10 |
-------------------------------------------------------------------------------- /src/dividedbox/docs/demo_head.html: -------------------------------------------------------------------------------- 1 |
2 |

wi-title:标题栏文字

3 |

wi-icon:标题栏图标 url

4 |
5 | 6 | 1-1 7 | 1-2 8 | 1-3 9 | 1-4 10 | 11 |
12 |
-------------------------------------------------------------------------------- /src/dividedbox/template/dividedbox/wi-dividedbox-group.html: -------------------------------------------------------------------------------- 1 |
4 |
5 | 6 | 7 | {{dividedboxG.title}} 8 | 9 |
10 |
11 |
12 |
13 |
-------------------------------------------------------------------------------- /src/dividedbox/template/dividedbox/wi-dividedbox.html: -------------------------------------------------------------------------------- 1 |
3 |
-------------------------------------------------------------------------------- /src/else/docs/demo.json: -------------------------------------------------------------------------------- 1 | { 2 | "cname":"else", 3 | "discribe":"else(其他)", 4 | "demos":[ 5 | {"demoDiscribe":"栅格布局","html":"else/docs/demoGrid.html"}, 6 | {"demoDiscribe":"基础表单","html":"else/docs/demoFormBase.html"}, 7 | {"demoDiscribe":"行内表单","html":"else/docs/demoFormInline.html"}, 8 | {"demoDiscribe":"栅格表单","html":"else/docs/demoFormGrid.html"} 9 | ] 10 | } -------------------------------------------------------------------------------- /src/else/docs/demoFormBase.html: -------------------------------------------------------------------------------- 1 |
2 |
3 |
4 | 5 | 6 |
7 |
8 | 9 | 10 |
11 |
12 | Check me out 13 |
14 |
15 | 16 | Male 17 | Female 18 |
19 |
20 | 21 |
22 |
23 |
-------------------------------------------------------------------------------- /src/else/docs/demoFormGrid.html: -------------------------------------------------------------------------------- 1 |
2 |
3 |
4 | 5 |
6 | 7 |
8 | 9 |
10 | 11 |
12 |
13 |
14 |
15 | Check me out 16 |
17 | 18 |
19 | Male 20 | Female 21 |
22 |
23 |
24 |
25 | 26 |
27 |
28 |
29 |
-------------------------------------------------------------------------------- /src/else/docs/demoFormInline.html: -------------------------------------------------------------------------------- 1 |
2 |
3 |
4 | 5 | 6 | 7 | 8 | Check me out 9 |
10 |
11 | 12 | Male 13 | Female 14 | 15 |
16 |
17 |
-------------------------------------------------------------------------------- /src/else/docs/demoGrid.html: -------------------------------------------------------------------------------- 1 |
2 | 5 |
6 |
1
7 |
2
8 |
3
9 |
6
10 |
11 |
12 |
13 |
1
14 |
2
15 |
3
16 |
2 offset-4
17 |
18 |
19 |
20 |
1
21 |
2
22 |
3
23 |
24 |
-------------------------------------------------------------------------------- /src/fileupload/docs/demo.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wi4angular/WebUI4Angular/23282a5e45111af5f81ab6bbaaa87d3feeb738cd/src/fileupload/docs/demo.js -------------------------------------------------------------------------------- /src/fileupload/docs/demo.json: -------------------------------------------------------------------------------- 1 | { 2 | "cname":"fileupload", 3 | "discribe":"fileupload(文件上传)", 4 | "demos":[ 5 | {"demoDiscribe":"基本用法","html":"fileupload/docs/demo_basic.html","js":"fileupload/docs/demo.js"}, 6 | {"demoDiscribe":"多选","html":"fileupload/docs/demo_multisel.html","js":"fileupload/docs/demo.js"}, 7 | {"demoDiscribe":"过滤(类型、文件大小)","html":"fileupload/docs/demo_filter.html","js":"fileupload/docs/demo.js"}, 8 | {"demoDiscribe":"模态显示状态","html":"fileupload/docs/demo_modal.html","js":"fileupload/docs/demo.js"}, 9 | {"demoDiscribe":"返回数据","html":"fileupload/docs/demo_response.html","js":"fileupload/docs/demo_response.js"}, 10 | {"demoDiscribe":"取消上传","html":"fileupload/docs/demo_remove.html","js":"fileupload/docs/demo_remove.js"} 11 | ] 12 | } -------------------------------------------------------------------------------- /src/fileupload/docs/demo_basic.html: -------------------------------------------------------------------------------- 1 |
2 |

点击按钮选择要上传的文件: 3 | 4 |

5 |
6 | 进度显示区域:
7 | 11 | 12 |
13 |
-------------------------------------------------------------------------------- /src/fileupload/docs/demo_filter.html: -------------------------------------------------------------------------------- 1 |
2 |

点击按钮选择要上传的文件(不超过 4M,文件后缀名为 .txt): 3 | 4 |

5 |
6 | 进度显示区域:
7 | 14 | 15 |
16 |
-------------------------------------------------------------------------------- /src/fileupload/docs/demo_modal.html: -------------------------------------------------------------------------------- 1 |
2 |

点击按钮选择要上传的文件: 3 | 4 |

5 | 11 | 12 |
-------------------------------------------------------------------------------- /src/fileupload/docs/demo_multisel.html: -------------------------------------------------------------------------------- 1 |
2 |

点击按钮选择要上传的文件: 3 | 4 |

5 |
6 | 进度显示区域:
7 | 12 | 13 |
14 |
-------------------------------------------------------------------------------- /src/fileupload/docs/demo_remove.html: -------------------------------------------------------------------------------- 1 |
2 |

开始上传后,点击“删除”,触发自定义事件(取消某个文件 f 传输后触发)。
3 | 本例中,将在控制台输出取消传输的文件信息。 4 | 5 |

6 |
7 | 进度显示区域:
8 | 13 | 14 |
15 |
-------------------------------------------------------------------------------- /src/fileupload/docs/demo_remove.js: -------------------------------------------------------------------------------- 1 | var FileUploadDemoCtrl1 = ['$scope', function($scope) { 2 | $scope.removef = function(f){ 3 | console.log(f); 4 | }; 5 | }]; 6 | angular.module('ui.wisoft').controller('FileUploadDemoCtrl1',FileUploadDemoCtrl1); -------------------------------------------------------------------------------- /src/fileupload/docs/demo_response.html: -------------------------------------------------------------------------------- 1 |
2 |

上传成功后,点击文件名,显示返回数据。(由于无后台服务支持,demo 中仅返回响应 url 的内容,并不对上传的文件做任何处理) 3 | 4 |

5 |
6 | 进度显示区域:
7 | 12 | 13 |
14 |
-------------------------------------------------------------------------------- /src/fileupload/docs/demo_response.js: -------------------------------------------------------------------------------- 1 | var FileUploadDemoCtrl = ['$scope', function($scope) { 2 | $scope.responseText = undefined; 3 | $scope.$watch('responseText', function(newV, oldV){ 4 | if(newV && newV != oldV){ 5 | alert('返回的数据:' + newV); 6 | $scope.responseText = undefined; 7 | } 8 | }); 9 | }]; 10 | angular.module('ui.wisoft').controller('FileUploadDemoCtrl',FileUploadDemoCtrl); -------------------------------------------------------------------------------- /src/fileupload/temp/Moxie.swf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wi4angular/WebUI4Angular/23282a5e45111af5f81ab6bbaaa87d3feeb738cd/src/fileupload/temp/Moxie.swf -------------------------------------------------------------------------------- /src/fileupload/temp/Moxie.xap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wi4angular/WebUI4Angular/23282a5e45111af5f81ab6bbaaa87d3feeb738cd/src/fileupload/temp/Moxie.xap -------------------------------------------------------------------------------- /src/fileupload/temp/upload.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /src/fileupload/template/fileupload/wi-fileupload.html: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/imageview/docs/demo.json: -------------------------------------------------------------------------------- 1 | { 2 | "cname":"imageview", 3 | "discribe":"imageview(图片查看)", 4 | "demos":[ 5 | {"demoDiscribe":"URL数据源","html":"imageview/docs/demo1.html","js":"imageview/docs/demo1.js"}, 6 | {"demoDiscribe":"ImageData数据源","html":"imageview/docs/demo2.html","js":"imageview/docs/demo2.js"} 7 | ] 8 | } -------------------------------------------------------------------------------- /src/imageview/docs/demo1.html: -------------------------------------------------------------------------------- 1 |
2 |
3 | 4 | 5 | 6 | 7 | 8 |
-------------------------------------------------------------------------------- /src/imageview/docs/demo1.js: -------------------------------------------------------------------------------- 1 | var imageviewMainCtrl1=['$scope',function($scope) { 2 | //第一张图片不存在 3 | $scope.images = ['misc/imageview/B11.jpg','misc/imageview/B2.jpg','misc/imageview/B3.jpg']; 4 | 5 | $scope.openview = function(index) { 6 | $scope.openindex = index; 7 | } 8 | }]; 9 | angular.module('ui.wisoft').controller('imageviewMainCtrl1',imageviewMainCtrl1); -------------------------------------------------------------------------------- /src/imageview/docs/demo2.html: -------------------------------------------------------------------------------- 1 |
2 | 3 | 4 |
-------------------------------------------------------------------------------- /src/imageview/docs/demo2.js: -------------------------------------------------------------------------------- 1 | var imageviewMainCtrl2=['$scope',function($scope) { 2 | $scope.open = function() { 3 | $scope.imagedata = getImageData(); 4 | } 5 | 6 | //上一张回调 7 | $scope.previous = function() { 8 | v-=20; 9 | $scope.imagedata = getImageData(); 10 | } 11 | 12 | //下一张回调 13 | $scope.next = function() { 14 | v+=20; 15 | $scope.imagedata = getImageData(); 16 | } 17 | 18 | //生成测试用ImageData 19 | var c = document.createElement('canvas'); 20 | var ctx=c.getContext("2d"); 21 | var v = 1; 22 | function getImageData() { 23 | if (v > 255) { 24 | v = 1; 25 | } else if (v < 0) { 26 | v = 255; 27 | } 28 | 29 | var imgData=ctx.createImageData(400,300); 30 | for (var i=0;i 2 |

【wi-right-menu】 右键菜单标识。

3 |

【adaptable】 true 时允许自适应,false 时不论空间是否足够都以用户定义的方向弹出,默认为 true。

4 |

【position】 默认为 "bottom-left"。

5 |

【filterable】 第一级菜单是否支持关键字过滤,默认为 false。

6 |

【dataprovider】 json 格式的数据源。

7 |

【selectitem】 选中的菜单项绑定,详见选中事件。

8 |
9 |

10 | 固定方向弹出菜单: 11 | 12 | - 13 |

14 |
15 | 18 | 19 | 20 |
21 |
-------------------------------------------------------------------------------- /src/menu/docs/demo.js: -------------------------------------------------------------------------------- 1 | var MenuDemoCtrl = ['$scope', function($scope) { 2 | var options = $scope.options = { 3 | pos0Arr: ['top', 'bottom', 'left', 'right'], 4 | pos1ArrX: ['left', 'right'], 5 | pos1ArrY: ['top', 'bottom'], 6 | pos0: 'bottom', 7 | pos1: 'left', 8 | isopen: false 9 | }; 10 | options.pos1Arr = options.pos1ArrX; 11 | $scope.$watch('options.pos0',function(){ 12 | if(options.pos0 == 'top' || options.pos0 == 'bottom'){ 13 | options.pos1Arr = options.pos1ArrX; 14 | options.pos1 = 'left'; 15 | }else{ 16 | options.pos1Arr = options.pos1ArrY; 17 | options.pos1 = 'top'; 18 | } 19 | }); 20 | var ctrl = this; 21 | /** 22 | * id: string 菜单项 id 23 | * label: string 菜单项显示内容 24 | * icon: string 菜单项自定义图标 25 | * filterable: boolean 子菜单是否支持搜索 26 | * children: [] 子菜单数据源 27 | * enabled: boolean 菜单项是否可用 28 | * event: string 可直接执行的表达式(复杂事件根据点击后返回的菜单项自定义) 29 | */ 30 | ctrl.data = [ 31 | {id: '0', label: 'node0'}, 32 | {id: '1', label: 'node1'}, 33 | {id: '2', label: 'node2'}, 34 | {id: '3', label: 'node3'}, 35 | ]; 36 | }]; 37 | angular.module('ui.wisoft').controller('MenuDemoCtrl',MenuDemoCtrl); -------------------------------------------------------------------------------- /src/menu/docs/demo.json: -------------------------------------------------------------------------------- 1 | { 2 | "cname":"menu", 3 | "discribe":"menu(菜单)", 4 | "demos":[ 5 | {"demoDiscribe":"固定方向菜单","html":"menu/docs/demo.html","js":"menu/docs/demo.js"}, 6 | {"demoDiscribe":"自适应方向菜单","html":"menu/docs/demo0.html","js":"menu/docs/demo0.js"}, 7 | {"demoDiscribe":"右键菜单","html":"menu/docs/demo1.html","js":"menu/docs/demo1.js"}, 8 | {"demoDiscribe":"二级菜单、关键字过滤","html":"menu/docs/demo2.html","js":"menu/docs/demo2.js"}, 9 | {"demoDiscribe":"图标、禁用、事件","html":"menu/docs/demo3.html","js":"menu/docs/demo3.js"} 10 | ] 11 | } -------------------------------------------------------------------------------- /src/menu/docs/demo0.html: -------------------------------------------------------------------------------- 1 |
2 |

3 | 设置 adaptable = "true"
4 | 设置优先弹出方向为 position = "bottom-left",当空间不足时将重新调整弹出方向,或进行分栏处理
5 |

6 |
7 | 10 | 11 | 12 |
13 |
-------------------------------------------------------------------------------- /src/menu/docs/demo0.js: -------------------------------------------------------------------------------- 1 | var MenuDemoCtrl0 = [function() { 2 | var ctrl = this; 3 | ctrl.data = [ 4 | {id: '0', label: 'node0'}, 5 | {id: '1', label: 'node1'}, 6 | {id: '2', label: 'node2'}, 7 | {id: '3', label: 'node3'}, 8 | {id: '4', label: 'node4'}, 9 | {id: '5', label: 'node5'}, 10 | {id: '6', label: 'node6'}, 11 | {id: '7', label: 'node7'}, 12 | {id: '8', label: 'node8'}, 13 | {id: '9', label: 'node9'}, 14 | {id: '10', label: 'menu0'}, 15 | {id: '11', label: 'menu1'}, 16 | {id: '12', label: 'menu2'}, 17 | {id: '13', label: 'menu3'}, 18 | {id: '14', label: 'menu4'}, 19 | {id: '15', label: 'menu5'}, 20 | {id: '16', label: 'menu6'}, 21 | {id: '17', label: 'menu7'}, 22 | {id: '18', label: 'menu8'}, 23 | {id: '19', label: 'menu9'} 24 | ]; 25 | }]; 26 | angular.module('ui.wisoft').controller('MenuDemoCtrl0',MenuDemoCtrl0); -------------------------------------------------------------------------------- /src/menu/docs/demo1.html: -------------------------------------------------------------------------------- 1 |
2 |

灰色区域内右击弹出菜单

3 | 4 |
-------------------------------------------------------------------------------- /src/menu/docs/demo1.js: -------------------------------------------------------------------------------- 1 | var MenuDemoCtrl1=[function() { 2 | var ctrl = this; 3 | ctrl.data = [ 4 | {id: '0', label: 'node0'}, 5 | {id: '1', label: 'node1'}, 6 | {id: '2', label: 'node2'} 7 | ]; 8 | }]; 9 | angular.module('ui.wisoft').controller('MenuDemoCtrl1',MenuDemoCtrl1); -------------------------------------------------------------------------------- /src/menu/docs/demo2.html: -------------------------------------------------------------------------------- 1 |
2 |

【filterable】 第一级菜单是否支持关键字过滤,默认为 false。

3 |

【数据源】 子菜单支持关键字过滤。filterable: true

4 |
5 | 9 | 10 | 11 |
12 |
-------------------------------------------------------------------------------- /src/menu/docs/demo2.js: -------------------------------------------------------------------------------- 1 | var MenuDemoCtrl2 = [function() { 2 | var ctrl = this; 3 | ctrl.data = [ 4 | {id: '0', label: 'node0'}, 5 | {id: '1', label: 'node1'}, 6 | {id: '2', label: 'node2', filterable:true, children: [ 7 | {id: 'a', label: 'nodea'}, 8 | {id: 'b', label: 'nodeb'}, 9 | {id: 'c', label: 'nodec'}, 10 | {id: 'd', label: 'menua'}, 11 | {id: 'e', label: 'menub'}, 12 | {id: 'f', label: 'menuc'} 13 | ]}, 14 | {id: '3', label: 'node3'}, 15 | {id: '4', label: 'node4'}, 16 | {id: '5', label: 'node5'} 17 | ]; 18 | }]; 19 | angular.module('ui.wisoft').controller('MenuDemoCtrl2',MenuDemoCtrl2); -------------------------------------------------------------------------------- /src/menu/docs/demo3.html: -------------------------------------------------------------------------------- 1 |
2 |

数据源中通过【icon】指定菜单项图标,路径相对于菜单显示页面。

3 |

数据源中通过【enabled】设置为 false 禁用菜单项。

4 |

数据源中通过【event】指定简单的可执行 js 表达式,点击该项时执行。

5 |

复杂事件需绑定【selectitem】获取点击的菜单项(点击第二、三项时,请在控制台中查看结果)。

6 |

7 | 11 | 12 | 13 |

14 |
-------------------------------------------------------------------------------- /src/menu/docs/demo3.js: -------------------------------------------------------------------------------- 1 | var MenuDemoCtrl3 = ['$scope', function($scope) { 2 | $scope.vm = { 3 | selectFn: function(f){ 4 | console.log(f); 5 | } 6 | }; 7 | var ctrl = this; 8 | ctrl.data = [ 9 | {id: '0', label: '简单 js 表达式', icon: 'misc/tempimg/menu/save.gif', event: 'alert(\'js表达式\')'}, 10 | {id: '1', label: 'node1'}, 11 | {id: '2', label: 'node2'}, 12 | {id: '3', label: '禁用项', enabled: false} 13 | ]; 14 | }]; 15 | angular.module('ui.wisoft').controller('MenuDemoCtrl3',MenuDemoCtrl3); -------------------------------------------------------------------------------- /src/messagetip/docs/demo.json: -------------------------------------------------------------------------------- 1 | { 2 | "cname":"messagetip", 3 | "discribe":"messagetip(右下角提示框)", 4 | "demos":[ 5 | {"demoDiscribe":"基础功能","html":"messagetip/docs/demo1.html","js":"messagetip/docs/demo1.js"}, 6 | {"demoDiscribe":"方法调用","html":"messagetip/docs/demo2.html","js":"messagetip/docs/demo2.js"} 7 | ] 8 | } -------------------------------------------------------------------------------- /src/messagetip/docs/demo1.html: -------------------------------------------------------------------------------- 1 |
2 | 3 | 4 | 5 | 6 |
-------------------------------------------------------------------------------- /src/messagetip/docs/demo1.js: -------------------------------------------------------------------------------- 1 | var messagetipMainCtrl1 = ['$scope', 'wiMessageTip', function($scope, wiMessageTip) { 2 | var t = '我的新消息
我的新消息
'; 3 | 4 | $scope.openbottom = function() { 5 | t = '我的新消息
'+t; 6 | wiMessageTip.open({ 7 | width: 250, 8 | title: '从下往上弹出', 9 | position: 'bottom', 10 | content: t 11 | }); 12 | }; 13 | 14 | $scope.openright = function() { 15 | t = '我的新消息
'+t; 16 | wiMessageTip.open({ 17 | width: 250, 18 | title: '从右往左弹出', 19 | position: 'right', 20 | content: t 21 | }); 22 | }; 23 | 24 | $scope.openclose = function() { 25 | t = '我的新消息
'+t; 26 | wiMessageTip.open({ 27 | width: 250, 28 | title: '5秒后自动关闭', 29 | position: 'bottom', 30 | delay: 5, 31 | content: t 32 | }); 33 | }; 34 | 35 | $scope.openshake = function() { 36 | t = '我的新消息
'+t; 37 | wiMessageTip.open({ 38 | width: 250, 39 | title: '弹出后抖动', 40 | position: 'right', 41 | isshake: true, 42 | content: t 43 | }); 44 | }; 45 | }]; 46 | angular.module('ui.wisoft').controller('messagetipMainCtrl1',messagetipMainCtrl1); -------------------------------------------------------------------------------- /src/messagetip/docs/demo2.html: -------------------------------------------------------------------------------- 1 |
2 | 3 | 4 |
-------------------------------------------------------------------------------- /src/messagetip/docs/demo2.js: -------------------------------------------------------------------------------- 1 | var messagetipMainCtrl2 = ['$scope', 'wiMessageTip',function($scope, wiMessageTip) { 2 | var t = '我的新消息

'; 3 | var tipid; 4 | $scope.open = function() { 5 | tipid = wiMessageTip.open({ 6 | width: 250, 7 | title: '新消息', 8 | position: 'bottom', 9 | content: t, 10 | click: $scope.clickHandler 11 | }); 12 | }; 13 | 14 | $scope.close = function() { 15 | wiMessageTip.closeOne(tipid); 16 | }; 17 | 18 | $scope.clickHandler = function(e) { 19 | var elm = angular.element(e.target); 20 | if (elm.attr('name') == 'democlick') { 21 | alert('弹框中按钮点击'); 22 | } 23 | } 24 | }]; 25 | angular.module('ui.wisoft').controller('messagetipMainCtrl2',messagetipMainCtrl2); -------------------------------------------------------------------------------- /src/my97datepicker/docs/datepicker_basic.html: -------------------------------------------------------------------------------- 1 |
2 |
3 | 选择的日期是:{{date}}
4 |
5 | -------------------------------------------------------------------------------- /src/my97datepicker/docs/datepicker_basic.js: -------------------------------------------------------------------------------- 1 | var DatepickerDemoBasicCtrl = ['$scope',function($scope) { 2 | 3 | var vm = $scope; 4 | 5 | function pad(num, n) { 6 | return (new Array(n >(''+num).length ? (n - (''+num).length+1) : 0).join('0') + num); 7 | } 8 | 9 | vm.date = '20'+pad(parseInt(Math.random()*14+1),2)+'-'+pad(parseInt(Math.random()*10+1),2)+'-'+pad(parseInt(Math.random()*28+1),2); 10 | 11 | vm.onPickedHandler = function (data) { 12 | alert(data) 13 | }; 14 | 15 | vm.onClearedHandler = function (data) { 16 | alert("日期被清空") 17 | } 18 | 19 | }]; 20 | angular.module('ui.wisoft').controller('DatepickerDemoBasicCtrl',DatepickerDemoBasicCtrl); -------------------------------------------------------------------------------- /src/my97datepicker/docs/datepicker_disable.html: -------------------------------------------------------------------------------- 1 |
2 | 禁用周日至周六所对应的日期,(0至6 分别代表 周日至周六)
3 |
4 | 选择的日期是:{{date1}}
5 |
6 | -------------------------------------------------------------------------------- /src/my97datepicker/docs/datepicker_editable.html: -------------------------------------------------------------------------------- 1 |
2 |
3 | 选择的日期是:{{date}}
4 |
5 | -------------------------------------------------------------------------------- /src/my97datepicker/docs/datepicker_event.html: -------------------------------------------------------------------------------- 1 |
2 |
3 | 选择的日期是:{{date}}
4 |
5 | -------------------------------------------------------------------------------- /src/my97datepicker/docs/datepicker_firstDay.html: -------------------------------------------------------------------------------- 1 |
2 |
3 | 选择的日期是:{{date}}
4 |
5 | -------------------------------------------------------------------------------- /src/my97datepicker/docs/datepicker_format.html: -------------------------------------------------------------------------------- 1 |
2 |
3 | 选择的日期是:{{date1}}
4 |
5 | -------------------------------------------------------------------------------- /src/my97datepicker/docs/datepicker_hideButtons.html: -------------------------------------------------------------------------------- 1 |
2 |
3 | 选择的日期是:{{date}}
4 |
5 | -------------------------------------------------------------------------------- /src/my97datepicker/docs/datepicker_highlight.html: -------------------------------------------------------------------------------- 1 |
2 |
3 | 选择的日期是:{{date}}
4 |
5 | -------------------------------------------------------------------------------- /src/my97datepicker/docs/datepicker_qsEnable.html: -------------------------------------------------------------------------------- 1 |
2 |
3 | 选择的日期是:{{date}}
4 |
5 | -------------------------------------------------------------------------------- /src/my97datepicker/docs/datepicker_quickSel.html: -------------------------------------------------------------------------------- 1 |
2 |
3 | 选择的日期是:{{date}}
4 |
5 | -------------------------------------------------------------------------------- /src/my97datepicker/docs/datepicker_range.html: -------------------------------------------------------------------------------- 1 |
2 | 限制日期的范围是 2006-09-10到2008-12-20
3 |
4 | 5 | 限制时间的范围是 8:00:00 到 11:30:00
6 |
7 | 8 | 动态限制,你可以通过系统给出的动态变量,如%y(当前年),%M(当前月)等来限度日期范围,你还可以通过{}进行表达式运算,如:{%d+1}:表示明天
9 | 1)只能选择今天以前的日期(包括今天)
10 |
11 | 12 | 2)只能选择今天以后的日期(不包括今天)
13 |
14 | 15 | 3)只能选择本月
16 |
17 | 18 | 4)前面的日期不能大于后面的日期 且 两个日期都不能大于今天
19 | 20 | ~
21 |
22 | -------------------------------------------------------------------------------- /src/my97datepicker/docs/datepicker_realDate.html: -------------------------------------------------------------------------------- 1 |
2 | 3 | 真实的日期是:
4 | 选择的日期是:{{date1}}
5 |
6 | -------------------------------------------------------------------------------- /src/my97datepicker/docs/datepicker_showWeek.html: -------------------------------------------------------------------------------- 1 |
2 |
3 | 选择的日期是:{{date}}
4 |
5 | -------------------------------------------------------------------------------- /src/my97datepicker/docs/datepicker_startDate.html: -------------------------------------------------------------------------------- 1 |
2 | 当日期框为空值时,将使用 2000-10-12 做为起始日期
3 |
4 | 无论日期框是否为空,都将使用 2000-10-12 做为起始日期
5 |
6 | 动态参数(如:%y,%M分别表示当前年和月)。起始日期为当前当月1日
7 |
8 |
9 | -------------------------------------------------------------------------------- /src/panel/docs/demo.html: -------------------------------------------------------------------------------- 1 |
2 | 4 |

panel 的高度根据文字自适应

5 |

panel 的高度根据文字自适应

6 |
7 |
-------------------------------------------------------------------------------- /src/panel/docs/demo.js: -------------------------------------------------------------------------------- 1 | var PanelDemoCtrl = ['$scope', function($scope) { 2 | $scope.isopen = true; 3 | $scope.isopen1 = true; 4 | $scope.toggle = function(){ 5 | $scope.isopen = !$scope.isopen; 6 | }; 7 | }]; 8 | angular.module('ui.wisoft').controller('PanelDemoCtrl',PanelDemoCtrl); -------------------------------------------------------------------------------- /src/panel/docs/demo.json: -------------------------------------------------------------------------------- 1 | { 2 | "cname":"panel", 3 | "discribe":"panel", 4 | "demos":[ 5 | {"demoDiscribe":"常用","html":"panel/docs/demo.html","js":"panel/docs/demo.js"}, 6 | {"demoDiscribe":"指定尺寸","html":"panel/docs/demo_size.html","js":"panel/docs/demo.js"}, 7 | {"demoDiscribe":"标题栏","html":"panel/docs/demo_heading.html","js":"panel/docs/demo.js"}, 8 | {"demoDiscribe":"工具栏","html":"panel/docs/demo_tools.html","js":"panel/docs/demo_tools.js"}, 9 | {"demoDiscribe":"折叠展开","html":"panel/docs/demo_coll.html","js":"panel/docs/demo.js"}, 10 | {"demoDiscribe":"打开/关闭","html":"panel/docs/demo_open.html","js":"panel/docs/demo.js"}, 11 | {"demoDiscribe":"事件监听","html":"panel/docs/demo_listener.html","js":"panel/docs/demo_listener.js"}, 12 | {"demoDiscribe":"wiid调用方法","html":"panel/docs/demo_method.html","js":"panel/docs/demo_method.js"} 13 | ] 14 | } -------------------------------------------------------------------------------- /src/panel/docs/demo_coll.html: -------------------------------------------------------------------------------- 1 |
2 | 6 |

collapsible 设置可以通过点击头部展开

7 |

collapsed 设置初始折叠

8 |
9 |
-------------------------------------------------------------------------------- /src/panel/docs/demo_heading.html: -------------------------------------------------------------------------------- 1 |
2 | 6 |

heading 头部文字

7 |

head-tools 可选项:collapse, close

8 |

head-icon 头部图片路径

9 |

center 头部居中

10 |
11 |
12 |
13 | 14 | 15 | PANEL TEST TWO 16 | 17 |

wi-panel-heading 通过此标签自定义头部,heading 及 head-icon 将失效

18 |
19 |
-------------------------------------------------------------------------------- /src/panel/docs/demo_listener.html: -------------------------------------------------------------------------------- 1 |
2 |

3 | ,请在控制台中查看输出 4 |

5 | 13 |

onopened 打开后触发

14 |

onclosed 关闭后触发

15 |

oncollapse 折叠时触发

16 |

onexpand 展开时触发

17 |
18 |
-------------------------------------------------------------------------------- /src/panel/docs/demo_listener.js: -------------------------------------------------------------------------------- 1 | var PanelDemoListenerCtrl = ['$scope', function($scope) { 2 | $scope.isopen = true; 3 | $scope.toggle = function(){ 4 | $scope.isopen = !$scope.isopen; 5 | }; 6 | $scope.opened = function(){ 7 | console.log('opened'); 8 | }; 9 | $scope.closed = function(){ 10 | console.log('closed'); 11 | }; 12 | $scope.col = function(){ 13 | console.log('col'); 14 | }; 15 | $scope.exp = function(){ 16 | console.log('exp'); 17 | }; 18 | }]; 19 | angular.module('ui.wisoft').controller('PanelDemoListenerCtrl',PanelDemoListenerCtrl); -------------------------------------------------------------------------------- /src/panel/docs/demo_method.html: -------------------------------------------------------------------------------- 1 |
2 |

3 | ,请在控制台中查看输出 4 |

5 | 6 |

7 |

$scope.mypanel.options():返回panel相关信息

8 |

$scope.mypanel.element():返回panel对应jqlite元素

9 |

$scope.mypanel.toggle():切换panel的折叠状态

10 |
11 |
-------------------------------------------------------------------------------- /src/panel/docs/demo_method.js: -------------------------------------------------------------------------------- 1 | var PanelDemoApiCtrl = ['$scope', function($scope) { 2 | $scope.mypanel={}; 3 | $scope.myFun=function(){ 4 | console.log($scope.mypanel.options()); 5 | console.log($scope.mypanel.element()); 6 | console.log('当前状态:',$scope.mypanel.toggle()?'折叠':'展开'); 7 | } 8 | }]; 9 | angular.module('ui.wisoft').controller('PanelDemoApiCtrl',PanelDemoApiCtrl); -------------------------------------------------------------------------------- /src/panel/docs/demo_open.html: -------------------------------------------------------------------------------- 1 |
2 |

3 | 4 |

5 | 8 |

通过外部按钮可以控制显示

9 |
10 |
-------------------------------------------------------------------------------- /src/panel/docs/demo_size.html: -------------------------------------------------------------------------------- 1 |
2 | 6 |

width 宽度

7 |

height 内容面板高度

8 |
9 |
-------------------------------------------------------------------------------- /src/panel/docs/demo_tools.html: -------------------------------------------------------------------------------- 1 |
2 | 4 |

系统工具:折叠,关闭

5 |
6 |
7 | 9 |

系统工具:折叠

10 |

自定义工具:保存

11 |
12 |
-------------------------------------------------------------------------------- /src/panel/docs/demo_tools.js: -------------------------------------------------------------------------------- 1 | var PanelDemoToolsCtrl = ['$scope', function($scope) { 2 | var saveFun=function(e){ 3 | alert('save event...'); 4 | e.stopPropagation(); 5 | }; 6 | $scope.headtools = ['collapse', 7 | {name:'save',cls:'icon-save',opt:saveFun} 8 | ]; 9 | }]; 10 | angular.module('ui.wisoft').controller('PanelDemoToolsCtrl',PanelDemoToolsCtrl); -------------------------------------------------------------------------------- /src/panel/template/panel/wi-panel.html: -------------------------------------------------------------------------------- 1 |
3 |
4 |
5 | 6 | {{heading}} 7 |
8 |
9 | 16 |
17 |
18 |
19 |
-------------------------------------------------------------------------------- /src/popupbutton/docs/demo.json: -------------------------------------------------------------------------------- 1 | { 2 | "cname":"popupButton", 3 | "discribe":"popupButton(弹出按钮)", 4 | "demos":[ 5 | {"demoDiscribe":"树","html":"popupbutton/docs/popupButton_tree.html","js":"popupbutton/docs/popupButton_tree.js"} 6 | ] 7 | } -------------------------------------------------------------------------------- /src/popupbutton/docs/popupButton_tree.html: -------------------------------------------------------------------------------- 1 |
2 | 3 |
4 | 15 | 16 |
17 | 18 |
19 |
20 | 21 |
22 | {{select.name}} 23 |
24 |
25 | -------------------------------------------------------------------------------- /src/popupbutton/docs/popupButton_tree.js: -------------------------------------------------------------------------------- 1 | var PopupButtonDemoTreeCtrl = ['$scope', function($scope) { 2 | 3 | var vm = this; 4 | 5 | vm.mytree = {}; 6 | 7 | vm.simpleData = [ 8 | {id:'1',name:'无锡市',parentid:'root'}, 9 | {id:'11',name:'新区',parentid:'1'}, 10 | {id:'111',name:'赵钱孙',parentid:'11',type:'person'}, 11 | {id:'112',name:'孙李周',parentid:'11',type:'person'}, 12 | {id:'113',name:'周吴郑',parentid:'11',type:'person'} 13 | ]; 14 | 15 | vm.clickHandler = function () { 16 | vm.selectedItem = vm.mytree.selectedItem(); 17 | vm.isopen=false; 18 | } 19 | 20 | }]; 21 | angular.module('ui.wisoft').controller('PopupButtonDemoTreeCtrl',PopupButtonDemoTreeCtrl); -------------------------------------------------------------------------------- /src/popupbutton/template/popupbutton/popupbuttonTemplate.html: -------------------------------------------------------------------------------- 1 |
3 |
4 | 5 | 6 |
-------------------------------------------------------------------------------- /src/progress/docs/demo.html: -------------------------------------------------------------------------------- 1 |
2 |

3 | 4 |


5 |
6 |
7 |
8 | 9 | 10 |
-------------------------------------------------------------------------------- /src/progress/docs/demo.js: -------------------------------------------------------------------------------- 1 | var progressMainCtrl = ['$scope','$interval',function($scope,$interval) { 2 | var i, timer; 3 | $scope.value = 0; 4 | $scope.label = 'tips0'; 5 | $scope.start = function(){ 6 | timer && $interval.cancel(timer); 7 | i = 0; 8 | timer = $interval(function(){ 9 | $scope.value = i; 10 | $scope.label = 'tips' + i; 11 | if(i==50) $interval.cancel(timer); 12 | i++; 13 | },100); 14 | }; 15 | }]; 16 | angular.module('ui.wisoft').controller('progressMainCtrl',progressMainCtrl); -------------------------------------------------------------------------------- /src/progress/docs/demo.json: -------------------------------------------------------------------------------- 1 | { 2 | "cname":"progress", 3 | "discribe":"progress(进度条)", 4 | "demos":[ 5 | {"demoDiscribe":"基本功能","html":"progress/docs/demo.html","js":"progress/docs/demo.js"} 6 | ,{"demoDiscribe":"嵌入提示内容","html":"progress/docs/demoElem.html","js":"progress/docs/demoElem.js"} 7 | ,{"demoDiscribe":"进度条样式","html":"progress/docs/demoType.html","js":"progress/docs/demoType.js"} 8 | ] 9 | } -------------------------------------------------------------------------------- /src/progress/docs/demoElem.html: -------------------------------------------------------------------------------- 1 |
2 |

3 |   4 | 5 |

6 |
-------------------------------------------------------------------------------- /src/progress/docs/demoElem.js: -------------------------------------------------------------------------------- 1 | var progressElemMainCtrl = ['$scope','$interval','$compile',function($scope,$interval,$compile) { 2 | var i, timer; 3 | $scope.value = 0; 4 | $scope.label = 100; 5 | $scope.start = function(){ 6 | timer && $interval.cancel(timer); 7 | i = 0; 8 | timer = $interval(function(){ 9 | $scope.value = i; 10 | $scope.label = 100 - i; 11 | if(i==100) $interval.cancel(timer); 12 | i += 2; 13 | },100); 14 | }; 15 | $scope.labelelem = $compile('
')($scope); 16 | }]; 17 | angular.module('ui.wisoft').controller('progressElemMainCtrl',progressElemMainCtrl); -------------------------------------------------------------------------------- /src/progress/docs/demoType.html: -------------------------------------------------------------------------------- 1 |
2 |

3 |   4 |

5 | 6 | 7 | 8 |
-------------------------------------------------------------------------------- /src/progress/docs/demoType.js: -------------------------------------------------------------------------------- 1 | var progressTypeMainCtrl = ['$scope','$interval','$compile',function($scope,$interval) { 2 | var i, timer; 3 | $scope.value = 0; 4 | $scope.start = function(){ 5 | timer && $interval.cancel(timer); 6 | i = 0; 7 | timer = $interval(function(){ 8 | $scope.value = i; 9 | if(i==100) $interval.cancel(timer); 10 | i++; 11 | },100); 12 | }; 13 | }]; 14 | angular.module('ui.wisoft').controller('progressTypeMainCtrl',progressTypeMainCtrl); -------------------------------------------------------------------------------- /src/progress/template/progress/wi-progress.html: -------------------------------------------------------------------------------- 1 |
2 | 3 |
4 |
5 |
6 |
-------------------------------------------------------------------------------- /src/searchinput/docs/demo.html: -------------------------------------------------------------------------------- 1 |
2 |

3 | 4 |  点击按钮显示搜索的内容:{{mc.value}} 5 |

6 |
-------------------------------------------------------------------------------- /src/searchinput/docs/demo.js: -------------------------------------------------------------------------------- 1 | var SearchinputDemoCtrl = ['$scope',function($scope) { 2 | var ctrl = this; 3 | ctrl.value = ''; 4 | $scope.searchFun = function(selectItem){ 5 | ctrl.value = selectItem; 6 | } 7 | }]; 8 | angular.module('ui.wisoft').controller('SearchinputDemoCtrl',SearchinputDemoCtrl); -------------------------------------------------------------------------------- /src/searchinput/docs/demo.json: -------------------------------------------------------------------------------- 1 | { 2 | "cname":"searchinput", 3 | "discribe":"searchinput(搜索)", 4 | "demos":[ 5 | {"demoDiscribe":"常用","html":"searchinput/docs/demo.html","js":"searchinput/docs/demo.js"} 6 | ] 7 | } -------------------------------------------------------------------------------- /src/searchinput/searchinput.js: -------------------------------------------------------------------------------- 1 | /** 2 | Created by QianQi on 2014/11/10. 3 | */ 4 | angular.module('ui.wisoft.searchinput', []) 5 | /** 6 | * @ngdoc directive 7 | * @name ui.wisoft.searchinput.directive:wiSearchinput 8 | * @restrict E 9 | * 10 | * @description 11 | * wiSearch 是搜索控件,主要进行了样式封装,搜索时返回搜索栏中输入的文本。 12 | * 13 | * @param {string=} wiTips 搜索栏中默认显示的文本。 14 | * @param {function=} onsearch 搜索时执行的自定义方法,参数为选中项。 15 | * 16 | */ 17 | .directive('wiSearchinput', [function(){ 18 | return{ 19 | restrict: 'E', 20 | templateUrl: 'template/searchinput/wi-searchinput.html', 21 | replace: true, 22 | transclude: true, 23 | scope: { 24 | onsearch: '&' 25 | }, 26 | link: function(scope, elem, attrs){ 27 | var onSelect = scope.onsearch()||angular.noop;// 选中项后执行的方法 28 | scope.value = ''; 29 | scope.tips = attrs['wiTips'] || ''; 30 | scope.search = function(){ 31 | onSelect(scope.value); 32 | }; 33 | elem.on('keydown',function(event){ 34 | if(event.keyCode === 13){// 回车 35 | scope.$apply(function(){ 36 | onSelect(scope.value); 37 | }) 38 | } 39 | }); 40 | 41 | } 42 | } 43 | }]); -------------------------------------------------------------------------------- /src/searchinput/template/searchinput/wi-searchinput.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /src/searchinput/test_searchinput.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | searchinput 6 | 7 | 8 | 9 | 10 | 11 | 12 |  点击按钮显示搜索的内容:{{mc.value}} 13 | 14 | 15 | 25 | 26 | -------------------------------------------------------------------------------- /src/tabset/docs/demo.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wi4angular/WebUI4Angular/23282a5e45111af5f81ab6bbaaa87d3feeb738cd/src/tabset/docs/demo.js -------------------------------------------------------------------------------- /src/tabset/docs/demo.json: -------------------------------------------------------------------------------- 1 | { 2 | "cname":"tabset", 3 | "discribe":"tabset(标签页)", 4 | "demos":[ 5 | {"demoDiscribe":"横向-基本功能","html":"tabset/docs/demo1.html","js":"tabset/docs/demo1.js"}, 6 | {"demoDiscribe":"横向-指定宽高","html":"tabset/docs/demo2.html","js":"tabset/docs/demo.js"}, 7 | {"demoDiscribe":"横向-禁止关闭","html":"tabset/docs/demo3.html","js":"tabset/docs/demo3.js"}, 8 | {"demoDiscribe":"纵向","html":"tabset/docs/demo4.html","js":"tabset/docs/demo.js"}, 9 | {"demoDiscribe":"纵向-指定宽高","html":"tabset/docs/demo5.html","js":"tabset/docs/demo.js"}, 10 | {"demoDiscribe":"自定义标签","html":"tabset/docs/demo_heading.html","js":"tabset/docs/demo.js"}, 11 | {"demoDiscribe":"wid接口方法","html":"tabset/docs/demo_method.html","js":"tabset/docs/demo_method.js"} 12 | ] 13 | } -------------------------------------------------------------------------------- /src/tabset/docs/demo2.html: -------------------------------------------------------------------------------- 1 |
2 |

3 | width: 宽度,默认为 100%。
4 | - 值为 number 接长度单位(相对单位和绝对单位)。若不带单位,默认为 px。
5 | - 相对单位:em, ex, ch, rem, vw, vh, vm, %
6 | - 绝对单位:cm, mm, in, pt, pc, px
7 | height: 高度,默认由内容撑开。
8 | - 值说明同 width。 9 |

10 | 11 | 12 | 标签 1 内容 13 | 14 | 15 | 标签 2 内容 16 | 17 | 18 | 标签 3 内容 19 | 20 | 21 | 标签 4 内容 22 | 23 | 24 |
-------------------------------------------------------------------------------- /src/tabset/docs/demo3.html: -------------------------------------------------------------------------------- 1 |
2 |

3 | closeable="false" 整个 tabset 中的标签不可关闭,此时可以设置 disabled 属性。 4 |

5 |

6 | 7 | 点击“切换”禁用/启用第一个标签。 8 |

9 | 10 | 11 | 12 | 标签 1 内容 13 | 14 | 15 | 标签 2 内容 16 | 17 | 18 | 标签 3 内容 19 | 20 | 21 | 标签 4 内容 22 | 23 | 24 |
-------------------------------------------------------------------------------- /src/tabset/docs/demo3.js: -------------------------------------------------------------------------------- 1 | var tabsetMainCtrl3 = ['$scope', function($scope) { 2 | $scope.vm={ 3 | disabled: false 4 | } 5 | }]; 6 | angular.module('ui.wisoft').controller('tabsetMainCtrl3',tabsetMainCtrl3); -------------------------------------------------------------------------------- /src/tabset/docs/demo4.html: -------------------------------------------------------------------------------- 1 |
2 | 3 | 4 | 标签 1 内容 5 | 6 | 7 | 标签 2 内容 8 | 9 | 10 | 标签 3 内容 11 | 12 | 13 |
-------------------------------------------------------------------------------- /src/tabset/docs/demo5.html: -------------------------------------------------------------------------------- 1 |
2 | 3 | 4 | 标签 1 内容 5 | 6 | 7 | 标签 2 内容 8 | 9 | 10 | 标签 3 内容 11 | 12 | 13 |
-------------------------------------------------------------------------------- /src/tabset/docs/demo_heading.html: -------------------------------------------------------------------------------- 1 |
2 |

3 | wi-tab-heading: 自定义标签
4 | tabheadsize: 数字,标签部分宽度(纵向)/高度(横向),单位为 px 5 |

6 | 7 | 8 | 标签 1 内容 9 | 10 | 11 | 自定义标签 12 | 这个标签的头部是自定义的 13 | 14 | 15 |
-------------------------------------------------------------------------------- /src/tabset/docs/demo_method.html: -------------------------------------------------------------------------------- 1 |
2 |

3 | ,控制台输出当前tabset的配置。
4 | ,选中 wiid=3 的 tab。
5 | ,关闭当前选中项。 6 |

7 | 8 | 9 | 标签 1 内容 10 | 11 | 12 | 标签 2 内容 13 | 14 | 15 | 标签 3 内容 16 | 17 | 18 | 标签 4 内容 19 | 20 | 21 |
-------------------------------------------------------------------------------- /src/tabset/docs/demo_method.js: -------------------------------------------------------------------------------- 1 | var tabsetMethodCtrl = ['$scope',function($scope) { 2 | $scope.myTabset = {}; 3 | $scope.options=function(){ 4 | console.log($scope.myTabset.options()); 5 | }; 6 | $scope.select=function(){ 7 | $scope.myTabset.select($scope.myTabset.getTab('wiid','3')); 8 | }; 9 | $scope.close=function(){ 10 | $scope.myTabset.close($scope.myTabset.getActiveTab()); 11 | }; 12 | }]; 13 | angular.module('ui.wisoft').controller('tabsetMethodCtrl',tabsetMethodCtrl); -------------------------------------------------------------------------------- /src/tabset/template/tebset/tabTemplate.html: -------------------------------------------------------------------------------- 1 |
  • 4 | 5 |
    6 | {{heading}} 7 |
    8 |
  • -------------------------------------------------------------------------------- /src/tabset/test/tabset.spec.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Created by LW on 2014/8/19. 3 | */ 4 | -------------------------------------------------------------------------------- /src/tilelist/docs/demo.html: -------------------------------------------------------------------------------- 1 |
    2 |

    默认参数:纵向滚动条;列宽:100px;行高:30px

    3 | 4 | 7 | 8 | 9 |

    指定列数:2 列

    10 | 11 | 14 | 15 | 16 |

    指定列宽:150px

    17 | 18 | 21 | 22 |
    -------------------------------------------------------------------------------- /src/tilelist/docs/demo.js: -------------------------------------------------------------------------------- 1 | var tilelistCtrl = ['$scope', function($scope) { 2 | $scope.tilelistdata = [ 3 | {color:'#1c1c84',name:'1'} 4 | ,{color:'#2c2c84',name:'2'} 5 | ,{color:'#3c3c84',name:'3'} 6 | ,{color:'#4c4c84',name:'4'} 7 | ,{color:'#5c5c84',name:'5'} 8 | ,{color:'#6c6c84',name:'6'} 9 | ,{color:'#7c7c84',name:'7'} 10 | ,{color:'#9c8c84',name:'8'} 11 | ,{color:'#ac9c84',name:'9'} 12 | ,{color:'#bcac84',name:'10'} 13 | ,{color:'#ccbc84',name:'11'} 14 | ,{color:'#dccc84',name:'12'} 15 | ,{color:'#ecdc84',name:'13'} 16 | ,{color:'#fcec84',name:'14'} 17 | ,{color:'#fcfc14',name:'15'} 18 | ,{color:'#cabc24',name:'16'} 19 | ,{color:'#dbcc34',name:'17'} 20 | ,{color:'#ecdc44',name:'18'} 21 | ]; 22 | }]; 23 | angular.module('ui.wisoft').controller('tilelistCtrl',tilelistCtrl); -------------------------------------------------------------------------------- /src/tilelist/docs/demo.json: -------------------------------------------------------------------------------- 1 | { 2 | "cname":"tilelist", 3 | "discribe":"tileList(瓦片列表)", 4 | "demos":[ 5 | {"demoDiscribe":"纵向基本用法","html":"tilelist/docs/demo.html","js":"tilelist/docs/demo.js"}, 6 | {"demoDiscribe":"横向基本用法","html":"tilelist/docs/demoH.html","js":"tilelist/docs/demo.js"}, 7 | {"demoDiscribe":"数据源操作","html":"tilelist/docs/demoData.html","js":"tilelist/docs/demoData.js"} 8 | ] 9 | } -------------------------------------------------------------------------------- /src/tilelist/docs/demoData.html: -------------------------------------------------------------------------------- 1 |
    2 | 3 | 6 | 7 | 8 | 9 |
    -------------------------------------------------------------------------------- /src/tilelist/docs/demoData.js: -------------------------------------------------------------------------------- 1 | var tilelistDataCtrl = ['$scope', function($scope) { 2 | var i = 0; 3 | $scope.setData = function() { 4 | if((i++)%2 == 0){ 5 | $scope.tilelistdata = [ 6 | {color:'#1c8c84',name:'1'} 7 | ,{color:'#2c8c84',name:'2'} 8 | ,{color:'#3c8c84',name:'3'} 9 | ,{color:'#4c8c84',name:'4'} 10 | ,{color:'#5c8c84',name:'5'} 11 | ,{color:'#6c8c84',name:'6'} 12 | ,{color:'#7c8c84',name:'7'} 13 | ,{color:'#9c8c84',name:'8'} 14 | ,{color:'#ac8c84',name:'9'} 15 | ]; 16 | }else{ 17 | $scope.tilelistdata = [ 18 | {color:'#1c1c84',name:'1'} 19 | ,{color:'#2c2c84',name:'2'} 20 | ,{color:'#3c3c84',name:'3'} 21 | ,{color:'#4c4c84',name:'4'} 22 | ,{color:'#5c5c84',name:'5'} 23 | ]; 24 | } 25 | }; 26 | $scope.setData(); 27 | $scope.clearData = function() { 28 | $scope.tilelistdata = []; 29 | }; 30 | }]; 31 | angular.module('ui.wisoft').controller('tilelistDataCtrl',tilelistDataCtrl); -------------------------------------------------------------------------------- /src/tilelist/docs/demoH.html: -------------------------------------------------------------------------------- 1 |
    2 |

    横向滚动条 direction="h" 默认参数:列宽:100px;行高:30px

    3 | 4 | 7 | 8 | 9 |

    指定行数:2 行

    10 | 11 | 14 | 15 | 16 |

    指定行高:120px

    17 | 18 | 21 | 22 |
    -------------------------------------------------------------------------------- /src/tilelist/template/tilelist/tilelistTemplate.html: -------------------------------------------------------------------------------- 1 |
    2 | 3 | 4 | 7 | 8 |
    5 |
    6 |
    9 |
    10 | -------------------------------------------------------------------------------- /src/tilelist/test/tilelist.spec.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Created by LW on 2014/8/14. 3 | */ 4 | -------------------------------------------------------------------------------- /src/tooltip/docs/demo.html: -------------------------------------------------------------------------------- 1 | 2 |
    3 |

    4 | 1 在此处停留,显示文本框中的内容。 5 | 6 |

    7 |

    8 | 2 【弹出方向】 9 | 上方显示   10 | 下方显示   11 | 左侧显示   12 | 右侧显示 13 |

    14 |

    15 | 3 在此处停留,1s 后显示。 16 |

    17 |

    18 | 4 【触发方式】在此处单击,显示/隐藏。 19 |

    20 |

    21 | 5 在此处停留,直接显示,无淡入淡出效果。 22 |

    23 |

    24 | 6 在此处停留,提示直接加在顶层窗口 body 节点。 25 |

    26 |

    27 | 7 在此处停留,显示自定义内容。 28 |

    29 |
    30 | 31 | 32 | -------------------------------------------------------------------------------- /src/tooltip/docs/demo.js: -------------------------------------------------------------------------------- 1 | var tooltipCtrl = ['$scope', function($scope) { 2 | $scope.dynamicTooltip = '此处输入动态提示'; 3 | $scope.htmlTooltip = '自定义HTML提示!'; 4 | }]; 5 | angular.module('ui.wisoft').controller('tooltipCtrl',tooltipCtrl); -------------------------------------------------------------------------------- /src/tooltip/docs/demo.json: -------------------------------------------------------------------------------- 1 | { 2 | "cname":"tooltip", 3 | "discribe":"tooltip(提示标签)", 4 | "demos":[ 5 | {"demoDiscribe":"常见功能","html":"tooltip/docs/demo.html","js":"tooltip/docs/demo.js"} 6 | ] 7 | } -------------------------------------------------------------------------------- /src/tooltip/template/tooltip/tooltip-html-unsafe-popup.html: -------------------------------------------------------------------------------- 1 |
    2 |
    3 |
    4 | -------------------------------------------------------------------------------- /src/tooltip/template/tooltip/tooltip-popup.html: -------------------------------------------------------------------------------- 1 |
    2 |
    3 |
    4 | -------------------------------------------------------------------------------- /src/transition/docs/demo.html: -------------------------------------------------------------------------------- 1 | 13 |
    14 |

    15 | $transition 接受 3 个参数:
    16 | $element: transition 的 jqLite 元素,变化
    17 | change:
    18 | * - string,要加到 element 上的 class。
    19 | * - object, 要应用到 element 上的 style 哈希表。
    20 | * - function, 将被调用以使变化发生的函数。
    21 | options:若定义了 options.animation,则执行的是动画(animation)操作,若省略则默认为过渡(transition)操作。 22 |

    23 |
    24 | 25 |
    26 |
    27 |
    28 | 29 |
    30 |
    31 |
    32 | 33 |
    34 |
    -------------------------------------------------------------------------------- /src/transition/docs/demo.js: -------------------------------------------------------------------------------- 1 | var TransitionDemoCtrl = ['$scope','$transition', function($scope, $transition) { 2 | function transitionDone(){ 3 | console.log('变换完成'); 4 | } 5 | $scope.toggleStyle = function(e){ 6 | var elem = (angular.element(e.target)).parent(), 7 | change = {'width': '300px'}; 8 | $transition(elem, change).then(transitionDone, transitionDone);//transition (成功,失败)时执行回调函数,返回新的 promise 对象 9 | }; 10 | $scope.toggleClass = function(e){ 11 | var elem = (angular.element(e.target)).parent(), 12 | change = 'opened'; 13 | $transition(elem, change).then(transitionDone, transitionDone); 14 | }; 15 | $scope.toggleFun = function(e){ 16 | var elem = (angular.element(e.target)).parent(); 17 | var change = function(){ 18 | elem.addClass('opened'); 19 | }; 20 | $transition(elem, change).then(transitionDone, transitionDone); 21 | }; 22 | }]; 23 | angular.module('ui.wisoft').controller('TransitionDemoCtrl',TransitionDemoCtrl); -------------------------------------------------------------------------------- /src/transition/docs/demo.json: -------------------------------------------------------------------------------- 1 | { 2 | "cname":"transition", 3 | "discribe":"transition(变换/动画)", 4 | "demos":[ 5 | {"demoDiscribe":"动画变换样式","html":"transition/docs/demo.html","js":"transition/docs/demo.js"} 6 | ] 7 | } -------------------------------------------------------------------------------- /src/tree/docs/demo.json: -------------------------------------------------------------------------------- 1 | { 2 | "cname":"tree", 3 | "discribe":"Tree(树)", 4 | "demos":[ 5 | {"demoDiscribe":"数据源","html":"tree/docs/tree_dataprovider.html","js":"tree/docs/tree_dataprovider.js"} 6 | ,{"demoDiscribe":"自定义","html":"tree/docs/tree_custom.html","js":"tree/docs/tree_custom.js"} 7 | ,{"demoDiscribe":"选中","html":"tree/docs/tree_select.html","js":"tree/docs/tree_select.js"} 8 | ,{"demoDiscribe":"事件","html":"tree/docs/tree_event.html","js":"tree/docs/tree_event.js"} 9 | ,{"demoDiscribe":"wid接口方法","html":"tree/docs/tree_method.html","js":"tree/docs/tree_method.js"} 10 | ,{"demoDiscribe":"renderer","html":"tree/docs/tree_renderer.html","js":"tree/docs/tree_renderer.js"} 11 | ,{"demoDiscribe":"过滤","html":"tree/docs/tree_filter.html","js":"tree/docs/tree_filter.js"} 12 | ] 13 | } -------------------------------------------------------------------------------- /src/tree/docs/tree_custom.html: -------------------------------------------------------------------------------- 1 |
    2 | 7 |

    8 | 【数据源】 9 | idfield: 指定 id 字段
    10 | pidfield: 指定 pid 字段
    11 | labelfield: 指定 text 字段
    12 | cls: 可指定节点图标的 class
    13 | 【wiTree属性】
    14 | pcls: 父节点图标 class(字符串)
    15 | ccls: 叶子节点图标 class(字符串) 16 |

    17 |
    18 | 20 |
    21 |
    -------------------------------------------------------------------------------- /src/tree/docs/tree_custom.js: -------------------------------------------------------------------------------- 1 | var TreeDemoCustomCtrl = [function() { 2 | var vm = this; 3 | var simpleData = [ 4 | {id:'2',name:'node2',pid:'root',cls:'specIcon'}, 5 | {id:'1',name:'node1',pid:'root'}, 6 | {id:'3',name:'node3',pid:'root'}, 7 | {id:'4',name:'node4',pid:'root'}, 8 | {id:'13',name:'node13',pid:'1'}, 9 | {id:'12',name:'node12',pid:'1'}, 10 | {id:'11',name:'node11',pid:'1'}, 11 | {id:'21',name:'node21',pid:'2'}, 12 | {id:'22',name:'node22',pid:'2'}, 13 | {id:'23',name:'node23',pid:'2'}, 14 | {id:'31',name:'node31',pid:'3'}, 15 | {id:'32',name:'node32',pid:'3'}, 16 | {id:'33',name:'node33',pid:'3'}, 17 | {id:'111',name:'node111',pid:'11'}, 18 | {id:'113',name:'node113',pid:'11'}, 19 | {id:'112',name:'node112',pid:'11'} 20 | ]; 21 | vm.simpleData = simpleData; 22 | }]; 23 | angular.module('ui.wisoft').controller('TreeDemoCustomCtrl',TreeDemoCustomCtrl); -------------------------------------------------------------------------------- /src/tree/docs/tree_dataprovider.html: -------------------------------------------------------------------------------- 1 |
    2 |

    3 | id: id字段,可通过 idfield 指定
    4 | pid: parentid 字段,可通过 pidfield 指定
    5 | text: 显示字段,可通过 labelfield 指定
    6 | isbranch: 是否为分支字段,若指定 isbranch=true,则其拥有子节点,需要延迟加载 - 多选且级联选中时不支持
    7 | selected: 初始时是否选中,默认为 false
    8 | closed: 是否折叠,默认为 false
    9 | cls: 节点图标的 class 10 |

    11 |
    12 |
    13 |

    14 | ,切换数据源 15 |

    16 |
    17 | 18 |
    19 |
    20 |
    21 |

    树形结构数据源,isTree="true"(字符串)

    22 |
    23 | 24 |
    25 |
    26 |
    27 |
    -------------------------------------------------------------------------------- /src/tree/docs/tree_filter.html: -------------------------------------------------------------------------------- 1 |
    2 | 请输入关键字: 3 |
    4 | 8 | 9 |
    10 | -------------------------------------------------------------------------------- /src/tree/docs/tree_filter.js: -------------------------------------------------------------------------------- 1 | var TreeDemoFilterCtrl = [function() { 2 | var vm = this; 3 | 4 | vm.simpleData = [ 5 | {id:'2',text:'node2',pid:'root'}, 6 | {id:'1',text:'node1',pid:'root'}, 7 | {id:'3',text:'node3',pid:'root'}, 8 | {id:'4',text:'node4',pid:'root'}, 9 | {id:'13',text:'node13',pid:'1'}, 10 | {id:'12',text:'node12',pid:'1'}, 11 | {id:'11',text:'node11',pid:'1'}, 12 | {id:'21',text:'node21',pid:'2'}, 13 | {id:'22',text:'node22',pid:'2'}, 14 | {id:'23',text:'node23',pid:'2'}, 15 | {id:'31',text:'node31',pid:'3'}, 16 | {id:'32',text:'node32',pid:'3'}, 17 | {id:'33',text:'node33',pid:'3'}, 18 | {id:'111',text:'node111',pid:'11'}, 19 | {id:'113',text:'node113',pid:'11'}, 20 | {id:'112',text:'node112',pid:'11'} 21 | ]; 22 | }]; 23 | angular.module('ui.wisoft').controller('TreeDemoFilterCtrl',TreeDemoFilterCtrl); -------------------------------------------------------------------------------- /src/tree/docs/tree_method.html: -------------------------------------------------------------------------------- 1 |
    2 | 5 |

    6 | ,切换数据源
    7 | ,控制台显示 text="node1" 的节点
    8 | ,控制台显示所有 pic="root" 的节点
    9 | ,控制台显示选中项(单选)或选中项集合(多选)
    10 | ,选中 text="node1" 的节点
    11 | ,折叠 text="node1" 的节点
    12 | ,展开 text="node1" 的节点
    13 | ,添加一个根节点
    14 | ,删除 text="node4" 的节点
    15 | ,将 text="node1" 的节点文本改为"天安门",图标样式改为specIcon 16 |

    17 |
    18 | 20 |
    21 |
    -------------------------------------------------------------------------------- /src/tree/docs/tree_renderer.html: -------------------------------------------------------------------------------- 1 |
    2 | 5 |

    6 | 通过 renderer 扩展节点,data['wi-treehover'] 标识鼠标悬停 7 |

    8 |
    9 | 12 | 20 | 21 |
    22 |
    -------------------------------------------------------------------------------- /src/tree/docs/tree_select.html: -------------------------------------------------------------------------------- 1 |
    2 |

    3 | multiselect 多选,false|true,默认 false,支持绑定 scope 中的对象,并切换多选支持状态。
    4 | cascade 支持多选时,是否级联父子节点的选中状态,默认为 false 5 |

    6 |
    7 |
    8 |

    9 | ,切换多选/单选 10 |

    11 |
    12 | 14 |
    15 |
    16 |
    17 |

    级联选中状态的复选树,cascade="true"(字符串)

    18 |
    19 | 22 |
    23 |
    24 |
    25 |
    -------------------------------------------------------------------------------- /themes/blue/accordion.css: -------------------------------------------------------------------------------- 1 | /* ---------- accordion ---------- */ 2 | .wi-accordion { 3 | border: solid 1px #94c0d2; 4 | border-top: none; 5 | } 6 | .wi-accordion-group { 7 | background-color: #ffffff; 8 | } 9 | .wi-accordion-head { 10 | padding: 0 .5em; 11 | font-size: 15px; 12 | border-top: solid 1px #94c0d2; 13 | background-color: #daecf4; 14 | color: #003f59; 15 | cursor: pointer; 16 | white-space: nowrap; 17 | overflow: hidden; 18 | text-overflow: ellipsis; 19 | } 20 | .wi-accordion-head:hover { 21 | background-color: #ffd256; 22 | color: #333333; 23 | } 24 | .wi-accordion-disabled { 25 | color: #64a1bb; 26 | } 27 | .wi-accordion-panel { 28 | border-top: solid 1px #94c0d2; 29 | } 30 | .wi-accordion-cont { 31 | padding: 10px; 32 | overflow: auto; 33 | } 34 | -------------------------------------------------------------------------------- /themes/blue/alert.css: -------------------------------------------------------------------------------- 1 | /* ---------- alert ---------- */ 2 | .wi-alert-icon { 3 | font-size: 35px; 4 | float: left; 5 | margin-left: 15px; 6 | } 7 | .wi-alert-icon > span { 8 | box-reflect: below 0 -webkit-linear-gradient(transparent, transparent 50%, rgba(255, 255, 255, 0.3)); 9 | -webkit-box-reflect: below 0 -webkit-linear-gradient(transparent, transparent 50%, rgba(255, 255, 255, 0.3)); 10 | } 11 | .wi-alert-icon > span.icon-exclamation-sign { 12 | color: #eeee23; 13 | } 14 | .wi-alert-icon > span.icon-ok-sign { 15 | color: #37a91d; 16 | } 17 | .wi-alert-icon > span.icon-remove-sign { 18 | color: #C40D0D; 19 | } 20 | .wi-alert-icon > span.icon-question-sign { 21 | color: #6167cd; 22 | } 23 | .wi-alert-icon > span.icon-info-sign { 24 | color: #6167cd; 25 | } 26 | .wi-alert-simple-cont { 27 | min-height: 75px; 28 | margin: auto 5px auto 70px; 29 | padding-top: 10px; 30 | font-weight: bold; 31 | } 32 | .wi-alert-toolbar { 33 | float: left; 34 | margin: 0 -10px; 35 | width: calc(100% + 20px); 36 | padding: 5px; 37 | position: relative; 38 | bottom: -10px; 39 | background: #ecf8ff; 40 | } 41 | .wi-alert-toolbar > .wi-btn { 42 | float: right; 43 | margin-right: .5em; 44 | min-width: 60px; 45 | } 46 | -------------------------------------------------------------------------------- /themes/blue/collapse.css: -------------------------------------------------------------------------------- 1 | /* ---------- collapse ---------- */ 2 | .wi-collapse { 3 | display: none; 4 | } 5 | .wi-collapsing { 6 | position: relative; 7 | height: 0; 8 | overflow: hidden; 9 | -webkit-transition: height .35s ease; 10 | transition: height .35s ease; 11 | } 12 | -------------------------------------------------------------------------------- /themes/blue/fileupload.css: -------------------------------------------------------------------------------- 1 | /* ---------- fileupload ---------- */ 2 | .wi-fileupload-btndiv { 3 | position: absolute; 4 | overflow: hidden; 5 | } 6 | .wi-fileupload-btn { 7 | position: absolute; 8 | top: 0; 9 | height: 100%; 10 | left: 0; 11 | width: 100%; 12 | opacity: 0; 13 | font-size: 999px; 14 | } 15 | .wi-fileupload > li > span { 16 | margin-right: .5em; 17 | } 18 | span.wi-fileupload-completed, 19 | span.wi-fileupload-tip, 20 | span.wi-fileupload-queued { 21 | color: #558193; 22 | } 23 | span.wi-fileupload-error { 24 | color: #f00; 25 | } 26 | span.wi-fileupload-error { 27 | color: #f00; 28 | } 29 | span.wi-fileupload-del { 30 | cursor: pointer; 31 | text-decoration: none; 32 | } 33 | span.wi-fileupload-del:hover { 34 | text-decoration: underline; 35 | } 36 | -------------------------------------------------------------------------------- /themes/blue/fonts/glyphicons-halflings-regular.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wi4angular/WebUI4Angular/23282a5e45111af5f81ab6bbaaa87d3feeb738cd/themes/blue/fonts/glyphicons-halflings-regular.eot -------------------------------------------------------------------------------- /themes/blue/fonts/glyphicons-halflings-regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wi4angular/WebUI4Angular/23282a5e45111af5f81ab6bbaaa87d3feeb738cd/themes/blue/fonts/glyphicons-halflings-regular.ttf -------------------------------------------------------------------------------- /themes/blue/fonts/glyphicons-halflings-regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wi4angular/WebUI4Angular/23282a5e45111af5f81ab6bbaaa87d3feeb738cd/themes/blue/fonts/glyphicons-halflings-regular.woff -------------------------------------------------------------------------------- /themes/blue/images/camerascanner/tools.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wi4angular/WebUI4Angular/23282a5e45111af5f81ab6bbaaa87d3feeb738cd/themes/blue/images/camerascanner/tools.png -------------------------------------------------------------------------------- /themes/blue/images/camerascanner/wait.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wi4angular/WebUI4Angular/23282a5e45111af5f81ab6bbaaa87d3feeb738cd/themes/blue/images/camerascanner/wait.gif -------------------------------------------------------------------------------- /themes/blue/images/datagrid/loading.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wi4angular/WebUI4Angular/23282a5e45111af5f81ab6bbaaa87d3feeb738cd/themes/blue/images/datagrid/loading.gif -------------------------------------------------------------------------------- /themes/blue/images/dividedbox/collctrl.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wi4angular/WebUI4Angular/23282a5e45111af5f81ab6bbaaa87d3feeb738cd/themes/blue/images/dividedbox/collctrl.gif -------------------------------------------------------------------------------- /themes/blue/images/imageview/ctrls.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wi4angular/WebUI4Angular/23282a5e45111af5f81ab6bbaaa87d3feeb738cd/themes/blue/images/imageview/ctrls.png -------------------------------------------------------------------------------- /themes/blue/images/imageview/loading.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wi4angular/WebUI4Angular/23282a5e45111af5f81ab6bbaaa87d3feeb738cd/themes/blue/images/imageview/loading.gif -------------------------------------------------------------------------------- /themes/blue/images/imageview/nopic.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wi4angular/WebUI4Angular/23282a5e45111af5f81ab6bbaaa87d3feeb738cd/themes/blue/images/imageview/nopic.gif -------------------------------------------------------------------------------- /themes/blue/images/my97datepicker/datePicker.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wi4angular/WebUI4Angular/23282a5e45111af5f81ab6bbaaa87d3feeb738cd/themes/blue/images/my97datepicker/datePicker.gif -------------------------------------------------------------------------------- /themes/blue/images/my97datepicker/img.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wi4angular/WebUI4Angular/23282a5e45111af5f81ab6bbaaa87d3feeb738cd/themes/blue/images/my97datepicker/img.gif -------------------------------------------------------------------------------- /themes/blue/images/tree/loading.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wi4angular/WebUI4Angular/23282a5e45111af5f81ab6bbaaa87d3feeb738cd/themes/blue/images/tree/loading.gif -------------------------------------------------------------------------------- /themes/blue/panel.css: -------------------------------------------------------------------------------- 1 | /* ---------- panel ---------- */ 2 | .wi-panel-close { 3 | display: none; 4 | } 5 | .wi-panel-head { 6 | padding: 1px 5px 2px 5px; 7 | border: solid 1px #94c0d2; 8 | font-size: 15px; 9 | background-color: #daecf4; 10 | background-image: -webkit-linear-gradient(top, rgba(255, 255, 255, 0.45) 0, rgba(255, 255, 255, 0) 100%); 11 | background-image: linear-gradient(to bottom, rgba(255, 255, 255, 0.45) 0, rgba(255, 255, 255, 0) 100%); 12 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#37ffffff', endColorstr='#00ffffff', GradientType=0); 13 | color: #003f59; 14 | position: relative; 15 | } 16 | img.wi-panel-icon { 17 | vertical-align: middle; 18 | } 19 | .wi-panel-tools { 20 | position: absolute; 21 | top: 2px; 22 | right: 5px; 23 | } 24 | .wi-panel-tools > span { 25 | color: #558193; 26 | cursor: pointer; 27 | } 28 | .wi-panel-tools > span:not(:first-child) { 29 | margin-left: .3em; 30 | } 31 | .wi-panel-tools > span:hover { 32 | color: #003f59; 33 | } 34 | .wi-panel-box { 35 | border: solid 1px #94c0d2; 36 | border-top: none; 37 | background-color: #ffffff; 38 | overflow: auto; 39 | } 40 | .wi-panel-h > .wi-panel-head { 41 | height: 30px; 42 | overflow: hidden; 43 | } 44 | -------------------------------------------------------------------------------- /themes/blue/popup.css: -------------------------------------------------------------------------------- 1 | /* ---------- popup ---------- */ 2 | .wi-popup:focus { 3 | outline: 0; 4 | } 5 | .wi-popup-open { 6 | /* 聚焦样式 */ 7 | outline: 0; 8 | -moz-box-shadow: 0 0 4px 1px #7ec6e3; 9 | -webkit-box-shadow: 0 0 4px 1px #7ec6e3; 10 | box-shadow: 0 0 4px 1px #7ec6e3; 11 | } 12 | .wi-popup-menu { 13 | display: none; 14 | visibility: hidden; 15 | position: absolute; 16 | min-width: 160px; 17 | padding: 5px 0; 18 | background: #ffffff; 19 | border: 1px solid #94c0d2; 20 | -moz-box-shadow: 2px 2px 10px 0 rgba(183, 228, 247, 0.78); 21 | -webkit-box-shadow: 2px 2px 10px 0 rgba(183, 228, 247, 0.78); 22 | box-shadow: 2px 2px 10px 0 rgba(183, 228, 247, 0.78); 23 | background-clip: padding-box; 24 | } 25 | .wi-popup-menu-open { 26 | display: block; 27 | } 28 | -------------------------------------------------------------------------------- /themes/blue/popupbutton.css: -------------------------------------------------------------------------------- 1 | /* ---------- popupbutton ---------- */ 2 | .wi-popupbutton { 3 | background: transparent; 4 | display: inline-block; 5 | padding: 0; 6 | } 7 | .wi-popupbutton-content { 8 | width: 100%; 9 | } 10 | .wi-popupbutton-content:not(:last-child) { 11 | /* 当有 arrow 时修改 content 的宽 */ 12 | float: left; 13 | width: calc(100% - 23px); 14 | } 15 | .wi-popupbutton > input:focus, 16 | .wi-popupbutton > button:focus { 17 | outline: none; 18 | } 19 | .wi-popupbutton-arrow { 20 | float: left; 21 | width: 23px; 22 | border-left: none; 23 | } 24 | .wi-popupbutton-arrow > .icon-chevron-down { 25 | line-height: .8; 26 | vertical-align: middle; 27 | } 28 | .wi-popupbutton-menu { 29 | overflow-y: auto; 30 | } 31 | -------------------------------------------------------------------------------- /themes/blue/searchinput.css: -------------------------------------------------------------------------------- 1 | /* ---------- searchinput ---------- */ 2 | .wi-searchinput { 3 | position: relative; 4 | display: inline-block; 5 | background-color: #ffffff; 6 | } 7 | .wi-searchinput > input[type='text'] { 8 | border: solid 1px #94c0d2; 9 | border-right: none; 10 | box-shadow: none; 11 | width: calc(100% - 22px); 12 | } 13 | .wi-searchinput > .icon-search { 14 | border: solid 1px #94c0d2; 15 | position: absolute; 16 | right: 0; 17 | top: 0; 18 | bottom: 0; 19 | background-color: #daecf4; 20 | background-image: -webkit-linear-gradient(top, rgba(255, 255, 255, 0.45) 0, rgba(255, 255, 255, 0) 100%); 21 | background-image: linear-gradient(to bottom, rgba(255, 255, 255, 0.45) 0, rgba(255, 255, 255, 0) 100%); 22 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#37ffffff', endColorstr='#00ffffff', GradientType=0); 23 | color: #003f59; 24 | width: 23px; 25 | cursor: pointer; 26 | } 27 | .wi-searchinput > .icon-search:hover { 28 | background-color: #7bd2f6; 29 | color: #444444; 30 | } 31 | .wi-searchinput > .icon-search:active { 32 | color: #003f59; 33 | outline: 0; 34 | -moz-box-shadow: 0 0 4px 1px #7ec6e3; 35 | -webkit-box-shadow: 0 0 4px 1px #7ec6e3; 36 | box-shadow: 0 0 4px 1px #7ec6e3; 37 | } 38 | .wi-searchinput > .icon-search:before { 39 | position: absolute; 40 | top: 50%; 41 | left: 50%; 42 | margin-top: -9px; 43 | margin-left: -6px; 44 | } 45 | -------------------------------------------------------------------------------- /themes/blue/tilelist.css: -------------------------------------------------------------------------------- 1 | .wi-titlelist { 2 | width: 100%; 3 | height: 100%; 4 | overflow: auto; 5 | } 6 | .wi-titlelist-cont { 7 | height: 100%; 8 | } 9 | -------------------------------------------------------------------------------- /themes/blue/tree.css: -------------------------------------------------------------------------------- 1 | /* ---------- tree ---------- */ 2 | .wi-tree > li { 3 | cursor: pointer; 4 | } 5 | .wi-tree-item { 6 | height: 22px; 7 | } 8 | .wi-tree-item:hover { 9 | color: #003f59; 10 | background-color: #eaf4f9; 11 | } 12 | .wi-tree-current, 13 | .wi-tree-current:hover { 14 | color: #ffffff; 15 | background-color: #2b7797; 16 | } 17 | .wi-tree-loading { 18 | width: 12px; 19 | height: 12px; 20 | position: relative; 21 | top: 2px; 22 | display: inline-block; 23 | background: #ffffff url('images/tree/loading.gif') no-repeat center center; 24 | } 25 | .wi-tree-transparent-50 { 26 | filter: alpha(opacity=50); 27 | opacity: 0.5; 28 | } 29 | span.wi-tree-icon { 30 | display: inline-block; 31 | width: 12px; 32 | height: 12px; 33 | vertical-align: middle; 34 | } 35 | span.wi-tree-icon[class^="icon-"], 36 | span.wi-tree-icon[class*=" icon-"] { 37 | display: inline; 38 | width: auto; 39 | height: auto; 40 | } 41 | -------------------------------------------------------------------------------- /themes/blue/wi-all.css: -------------------------------------------------------------------------------- 1 | @import 'theme.css'; 2 | @import 'collapse.css'; 3 | 4 | @import 'accordion.css'; 5 | @import 'carousel.css'; 6 | 7 | @import 'popup.css'; 8 | @import 'combobox.css'; 9 | @import 'popupbutton.css'; 10 | @import 'menu.css'; 11 | @import 'tooltip.css'; 12 | 13 | @import 'datagrid.css'; 14 | @import 'dialog.css'; 15 | @import 'alert.css'; 16 | @import 'dividedbox.css'; 17 | @import 'my97datepicker.css'; 18 | @import 'tabset.css'; 19 | @import 'tilelist.css'; 20 | @import 'tree.css'; 21 | @import 'imageview.css'; 22 | @import 'searchinput.css'; 23 | @import 'panel.css'; 24 | @import 'fileupload.css'; 25 | @import 'messagetip.css'; 26 | @import 'camerascanner.css'; 27 | @import 'progress.css'; -------------------------------------------------------------------------------- /themes/default/accordion.css: -------------------------------------------------------------------------------- 1 | /* ---------- accordion ---------- */ 2 | .wi-accordion { 3 | border: solid 1px #cccccc; 4 | border-top: none; 5 | } 6 | .wi-accordion-group { 7 | background-color: #ffffff; 8 | } 9 | .wi-accordion-head { 10 | padding: 0 .5em; 11 | font-size: 15px; 12 | border-top: solid 1px #cccccc; 13 | background-color: #f5f5f5; 14 | color: #575765; 15 | cursor: pointer; 16 | white-space: nowrap; 17 | overflow: hidden; 18 | text-overflow: ellipsis; 19 | } 20 | .wi-accordion-head:hover { 21 | background-color: #ffd256; 22 | color: #333333; 23 | } 24 | .wi-accordion-disabled { 25 | color: #929292; 26 | } 27 | .wi-accordion-panel { 28 | border-top: solid 1px #cccccc; 29 | } 30 | .wi-accordion-cont { 31 | padding: 10px; 32 | overflow: auto; 33 | } 34 | -------------------------------------------------------------------------------- /themes/default/alert.css: -------------------------------------------------------------------------------- 1 | /* ---------- alert ---------- */ 2 | .wi-alert-icon { 3 | font-size: 35px; 4 | float: left; 5 | margin-left: 15px; 6 | } 7 | .wi-alert-icon > span { 8 | box-reflect: below 0 -webkit-linear-gradient(transparent, transparent 50%, rgba(255, 255, 255, 0.3)); 9 | -webkit-box-reflect: below 0 -webkit-linear-gradient(transparent, transparent 50%, rgba(255, 255, 255, 0.3)); 10 | } 11 | .wi-alert-icon > span.icon-exclamation-sign { 12 | color: #eeee23; 13 | } 14 | .wi-alert-icon > span.icon-ok-sign { 15 | color: #37a91d; 16 | } 17 | .wi-alert-icon > span.icon-remove-sign { 18 | color: #C40D0D; 19 | } 20 | .wi-alert-icon > span.icon-question-sign { 21 | color: #6167cd; 22 | } 23 | .wi-alert-icon > span.icon-info-sign { 24 | color: #6167cd; 25 | } 26 | .wi-alert-simple-cont { 27 | min-height: 75px; 28 | margin: auto 5px auto 70px; 29 | padding-top: 10px; 30 | font-weight: bold; 31 | } 32 | .wi-alert-toolbar { 33 | float: left; 34 | margin: 0 -10px; 35 | width: calc(100% + 20px); 36 | padding: 5px; 37 | position: relative; 38 | bottom: -10px; 39 | background: #fafafa; 40 | } 41 | .wi-alert-toolbar > .wi-btn { 42 | float: right; 43 | margin-right: .5em; 44 | min-width: 60px; 45 | } 46 | -------------------------------------------------------------------------------- /themes/default/collapse.css: -------------------------------------------------------------------------------- 1 | /* ---------- collapse ---------- */ 2 | .wi-collapse { 3 | display: none; 4 | } 5 | .wi-collapsing { 6 | position: relative; 7 | height: 0; 8 | overflow: hidden; 9 | -webkit-transition: height .35s ease; 10 | transition: height .35s ease; 11 | } 12 | -------------------------------------------------------------------------------- /themes/default/fileupload.css: -------------------------------------------------------------------------------- 1 | /* ---------- fileupload ---------- */ 2 | .wi-fileupload-btndiv { 3 | position: absolute; 4 | overflow: hidden; 5 | } 6 | .wi-fileupload-btn { 7 | position: absolute; 8 | top: 0; 9 | height: 100%; 10 | left: 0; 11 | width: 100%; 12 | opacity: 0; 13 | font-size: 999px; 14 | } 15 | .wi-fileupload > li > span { 16 | margin-right: .5em; 17 | } 18 | span.wi-fileupload-completed, 19 | span.wi-fileupload-tip, 20 | span.wi-fileupload-queued { 21 | color: #808080; 22 | } 23 | span.wi-fileupload-error { 24 | color: #f00; 25 | } 26 | span.wi-fileupload-error { 27 | color: #f00; 28 | } 29 | span.wi-fileupload-del { 30 | cursor: pointer; 31 | text-decoration: none; 32 | } 33 | span.wi-fileupload-del:hover { 34 | text-decoration: underline; 35 | } 36 | -------------------------------------------------------------------------------- /themes/default/fonts/glyphicons-halflings-regular.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wi4angular/WebUI4Angular/23282a5e45111af5f81ab6bbaaa87d3feeb738cd/themes/default/fonts/glyphicons-halflings-regular.eot -------------------------------------------------------------------------------- /themes/default/fonts/glyphicons-halflings-regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wi4angular/WebUI4Angular/23282a5e45111af5f81ab6bbaaa87d3feeb738cd/themes/default/fonts/glyphicons-halflings-regular.ttf -------------------------------------------------------------------------------- /themes/default/fonts/glyphicons-halflings-regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wi4angular/WebUI4Angular/23282a5e45111af5f81ab6bbaaa87d3feeb738cd/themes/default/fonts/glyphicons-halflings-regular.woff -------------------------------------------------------------------------------- /themes/default/images/camerascanner/tools.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wi4angular/WebUI4Angular/23282a5e45111af5f81ab6bbaaa87d3feeb738cd/themes/default/images/camerascanner/tools.png -------------------------------------------------------------------------------- /themes/default/images/camerascanner/wait.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wi4angular/WebUI4Angular/23282a5e45111af5f81ab6bbaaa87d3feeb738cd/themes/default/images/camerascanner/wait.gif -------------------------------------------------------------------------------- /themes/default/images/datagrid/loading.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wi4angular/WebUI4Angular/23282a5e45111af5f81ab6bbaaa87d3feeb738cd/themes/default/images/datagrid/loading.gif -------------------------------------------------------------------------------- /themes/default/images/dividedbox/collctrl.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wi4angular/WebUI4Angular/23282a5e45111af5f81ab6bbaaa87d3feeb738cd/themes/default/images/dividedbox/collctrl.gif -------------------------------------------------------------------------------- /themes/default/images/imageview/ctrls.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wi4angular/WebUI4Angular/23282a5e45111af5f81ab6bbaaa87d3feeb738cd/themes/default/images/imageview/ctrls.png -------------------------------------------------------------------------------- /themes/default/images/imageview/loading.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wi4angular/WebUI4Angular/23282a5e45111af5f81ab6bbaaa87d3feeb738cd/themes/default/images/imageview/loading.gif -------------------------------------------------------------------------------- /themes/default/images/imageview/nopic.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wi4angular/WebUI4Angular/23282a5e45111af5f81ab6bbaaa87d3feeb738cd/themes/default/images/imageview/nopic.gif -------------------------------------------------------------------------------- /themes/default/images/my97datepicker/datePicker.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wi4angular/WebUI4Angular/23282a5e45111af5f81ab6bbaaa87d3feeb738cd/themes/default/images/my97datepicker/datePicker.gif -------------------------------------------------------------------------------- /themes/default/images/my97datepicker/img.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wi4angular/WebUI4Angular/23282a5e45111af5f81ab6bbaaa87d3feeb738cd/themes/default/images/my97datepicker/img.gif -------------------------------------------------------------------------------- /themes/default/images/tree/loading.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wi4angular/WebUI4Angular/23282a5e45111af5f81ab6bbaaa87d3feeb738cd/themes/default/images/tree/loading.gif -------------------------------------------------------------------------------- /themes/default/panel.css: -------------------------------------------------------------------------------- 1 | /* ---------- panel ---------- */ 2 | .wi-panel-close { 3 | display: none; 4 | } 5 | .wi-panel-head { 6 | padding: 1px 5px 2px 5px; 7 | border: solid 1px #cccccc; 8 | font-size: 15px; 9 | background-color: #f5f5f5; 10 | background-image: -webkit-linear-gradient(top, rgba(0, 0, 0, 0) 0, rgba(0, 0, 0, 0.06) 100%); 11 | background-image: linear-gradient(to bottom, rgba(0, 0, 0, 0) 0, rgba(0, 0, 0, 0.06) 100%); 12 | color: #575765; 13 | position: relative; 14 | } 15 | img.wi-panel-icon { 16 | vertical-align: middle; 17 | } 18 | .wi-panel-tools { 19 | position: absolute; 20 | top: 2px; 21 | right: 5px; 22 | } 23 | .wi-panel-tools > span { 24 | color: #808080; 25 | cursor: pointer; 26 | } 27 | .wi-panel-tools > span:not(:first-child) { 28 | margin-left: .3em; 29 | } 30 | .wi-panel-tools > span:hover { 31 | color: #333333; 32 | } 33 | .wi-panel-box { 34 | border: solid 1px #cccccc; 35 | border-top: none; 36 | background-color: #ffffff; 37 | overflow: auto; 38 | } 39 | .wi-panel-h > .wi-panel-head { 40 | height: 30px; 41 | overflow: hidden; 42 | } 43 | -------------------------------------------------------------------------------- /themes/default/popup.css: -------------------------------------------------------------------------------- 1 | /* ---------- popup ---------- */ 2 | .wi-popup:focus { 3 | outline: 0; 4 | } 5 | .wi-popup-open { 6 | /* 聚焦样式 */ 7 | outline: 0; 8 | -moz-box-shadow: 0 0 4px 1px #c5c5c5; 9 | -webkit-box-shadow: 0 0 4px 1px #c5c5c5; 10 | box-shadow: 0 0 4px 1px #c5c5c5; 11 | } 12 | .wi-popup-menu { 13 | display: none; 14 | visibility: hidden; 15 | position: absolute; 16 | min-width: 160px; 17 | padding: 5px 0; 18 | background: #ffffff; 19 | border: 1px solid #cccccc; 20 | -moz-box-shadow: 2px 2px 10px 0 rgba(128, 128, 128, 0.3); 21 | -webkit-box-shadow: 2px 2px 10px 0 rgba(128, 128, 128, 0.3); 22 | box-shadow: 2px 2px 10px 0 rgba(128, 128, 128, 0.3); 23 | background-clip: padding-box; 24 | } 25 | .wi-popup-menu-open { 26 | display: block; 27 | } 28 | -------------------------------------------------------------------------------- /themes/default/popupbutton.css: -------------------------------------------------------------------------------- 1 | /* ---------- popupbutton ---------- */ 2 | .wi-popupbutton { 3 | background: transparent; 4 | display: inline-block; 5 | padding: 0; 6 | } 7 | .wi-popupbutton-content { 8 | width: 100%; 9 | } 10 | .wi-popupbutton-content:not(:last-child) { 11 | /* 当有 arrow 时修改 content 的宽 */ 12 | float: left; 13 | width: calc(100% - 23px); 14 | } 15 | .wi-popupbutton > input:focus, 16 | .wi-popupbutton > button:focus { 17 | outline: none; 18 | } 19 | .wi-popupbutton-arrow { 20 | float: left; 21 | width: 23px; 22 | border-left: none; 23 | } 24 | .wi-popupbutton-arrow > .icon-chevron-down { 25 | line-height: .8; 26 | vertical-align: middle; 27 | } 28 | .wi-popupbutton-menu { 29 | overflow-y: auto; 30 | } 31 | -------------------------------------------------------------------------------- /themes/default/tilelist.css: -------------------------------------------------------------------------------- 1 | .wi-titlelist { 2 | width: 100%; 3 | height: 100%; 4 | overflow: auto; 5 | } 6 | .wi-titlelist-cont { 7 | height: 100%; 8 | } 9 | -------------------------------------------------------------------------------- /themes/default/tree.css: -------------------------------------------------------------------------------- 1 | /* ---------- tree ---------- */ 2 | .wi-tree > li { 3 | cursor: pointer; 4 | } 5 | .wi-tree-item { 6 | height: 22px; 7 | } 8 | .wi-tree-item:hover { 9 | color: #000000; 10 | background-color: #f3f3f3; 11 | } 12 | .wi-tree-current, 13 | .wi-tree-current:hover { 14 | color: #ffffff; 15 | background-color: #0092dc; 16 | } 17 | .wi-tree-loading { 18 | width: 12px; 19 | height: 12px; 20 | position: relative; 21 | top: 2px; 22 | display: inline-block; 23 | background: #ffffff url('images/tree/loading.gif') no-repeat center center; 24 | } 25 | .wi-tree-transparent-50 { 26 | filter: alpha(opacity=50); 27 | opacity: 0.5; 28 | } 29 | span.wi-tree-icon { 30 | display: inline-block; 31 | width: 12px; 32 | height: 12px; 33 | vertical-align: middle; 34 | } 35 | span.wi-tree-icon[class^="icon-"], 36 | span.wi-tree-icon[class*=" icon-"] { 37 | display: inline; 38 | width: auto; 39 | height: auto; 40 | } 41 | -------------------------------------------------------------------------------- /themes/default/wi-all.css: -------------------------------------------------------------------------------- 1 | @import 'theme.css'; 2 | @import 'collapse.css'; 3 | 4 | @import 'accordion.css'; 5 | @import 'carousel.css'; 6 | 7 | @import 'popup.css'; 8 | @import 'combobox.css'; 9 | @import 'popupbutton.css'; 10 | @import 'menu.css'; 11 | @import 'tooltip.css'; 12 | 13 | @import 'datagrid.css'; 14 | @import 'dialog.css'; 15 | @import 'alert.css'; 16 | @import 'dividedbox.css'; 17 | @import 'my97datepicker.css'; 18 | @import 'tabset.css'; 19 | @import 'tilelist.css'; 20 | @import 'tree.css'; 21 | @import 'imageview.css'; 22 | @import 'searchinput.css'; 23 | @import 'panel.css'; 24 | @import 'fileupload.css'; 25 | @import 'messagetip.css'; 26 | @import 'camerascanner.css'; 27 | @import 'progress.css'; --------------------------------------------------------------------------------