├── .gitignore ├── LICENSE ├── README.md ├── angular-autocomplete ├── README.md ├── bower.json ├── config.rb ├── demo │ └── index.html ├── dist │ ├── css │ │ ├── angular-autocomplete.css │ │ └── angular-autocomplete.min.css │ └── js │ │ ├── angular-autocomplete.js │ │ └── angular-autocomplete.min.js ├── gulpfile.js ├── package.json └── src │ ├── css │ └── angular-autocomplete.css │ ├── js │ └── angular-autocomplete.js │ └── sass │ └── angular-autocomplete.scss ├── angular-checkbox ├── README.md ├── bower.json ├── config.rb ├── demo │ └── index.html ├── dist │ ├── css │ │ ├── angular-checkbox.css │ │ └── angular-checkbox.min.css │ └── js │ │ ├── angular-checkbox.js │ │ └── angular-checkbox.min.js ├── gulpfile.js ├── package.json └── src │ ├── css │ └── angular-checkbox.css │ ├── js │ └── angular-checkbox.js │ └── sass │ └── angular-checkbox.scss ├── angular-circle-slider ├── LICENSE ├── README.md ├── bower.json ├── config.rb ├── demo │ └── index.html ├── dist │ ├── css │ │ ├── angular-circle-slider.css │ │ └── angular-circle-slider.min.css │ └── js │ │ ├── angular-circle-slider.js │ │ └── angular-circle-slider.min.js ├── gulpfile.js ├── package.json ├── screenshot.png └── src │ ├── css │ └── angular-circle-slider.css │ ├── js │ └── angular-circle-slider.js │ └── sass │ └── angular-circle-slider.scss ├── angular-colorpicker ├── LICENSE ├── README.md ├── bower.json ├── config.rb ├── demo │ └── index.html ├── dist │ ├── css │ │ ├── angular-colorpicker.css │ │ └── angular-colorpicker.min.css │ └── js │ │ ├── angular-colorpicker.js │ │ └── angular-colorpicker.min.js ├── gulpfile.js ├── package.json ├── screenshot.png └── src │ ├── css │ └── angular-colorpicker.css │ ├── js │ └── angular-colorpicker.js │ └── sass │ └── angular-colorpicker.scss ├── angular-confirm ├── README.md ├── bower.json ├── config.rb ├── demo │ └── index.html ├── dist │ ├── css │ │ ├── angular-confirm.css │ │ └── angular-confirm.min.css │ └── js │ │ ├── angular-confirm.js │ │ └── angular-confirm.min.js ├── gulpfile.js ├── package.json ├── screenshot.png └── src │ ├── css │ └── angular-confirm.css │ ├── js │ └── angular-confirm.js │ └── sass │ └── angular-confirm.scss ├── angular-datetime ├── README.md ├── bower.json ├── demo │ └── index.html ├── dist │ └── js │ │ ├── angular-datetime.js │ │ └── angular-datetime.min.js ├── gulpfile.js ├── package.json └── src │ └── js │ └── angular-datetime.js ├── angular-datetimepicker ├── README.md ├── bower.json ├── config.rb ├── demo │ └── index.html ├── dist │ ├── css │ │ ├── angular-datetimepicker.css │ │ └── angular-datetimepicker.min.css │ └── js │ │ ├── angular-datetimepicker.js │ │ └── angular-datetimepicker.min.js ├── gulpfile.js ├── libs │ └── bootstrap-datetimepicker │ │ ├── .gitattributes │ │ ├── .gitignore │ │ ├── .npmignore │ │ ├── .travis.yml │ │ ├── LICENSE │ │ ├── README.md │ │ ├── bower.json │ │ ├── build │ │ ├── build.less │ │ └── build_standalone.less │ │ ├── css │ │ ├── bootstrap-datetimepicker.css │ │ └── bootstrap-datetimepicker.min.css │ │ ├── js │ │ ├── bootstrap-datetimepicker.js │ │ └── locales │ │ │ ├── bootstrap-datetimepicker.ar.js │ │ │ ├── bootstrap-datetimepicker.az.js │ │ │ ├── bootstrap-datetimepicker.bg.js │ │ │ ├── bootstrap-datetimepicker.bn.js │ │ │ ├── bootstrap-datetimepicker.ca.js │ │ │ ├── bootstrap-datetimepicker.cs.js │ │ │ ├── bootstrap-datetimepicker.da.js │ │ │ ├── bootstrap-datetimepicker.de.js │ │ │ ├── bootstrap-datetimepicker.ee.js │ │ │ ├── bootstrap-datetimepicker.el.js │ │ │ ├── bootstrap-datetimepicker.es.js │ │ │ ├── bootstrap-datetimepicker.fi.js │ │ │ ├── bootstrap-datetimepicker.fr.js │ │ │ ├── bootstrap-datetimepicker.he.js │ │ │ ├── bootstrap-datetimepicker.hr.js │ │ │ ├── bootstrap-datetimepicker.hu.js │ │ │ ├── bootstrap-datetimepicker.hy.js │ │ │ ├── bootstrap-datetimepicker.id.js │ │ │ ├── bootstrap-datetimepicker.is.js │ │ │ ├── bootstrap-datetimepicker.it.js │ │ │ ├── bootstrap-datetimepicker.ja.js │ │ │ ├── bootstrap-datetimepicker.ka.js │ │ │ ├── bootstrap-datetimepicker.ko.js │ │ │ ├── bootstrap-datetimepicker.lt.js │ │ │ ├── bootstrap-datetimepicker.lv.js │ │ │ ├── bootstrap-datetimepicker.ms.js │ │ │ ├── bootstrap-datetimepicker.nb.js │ │ │ ├── bootstrap-datetimepicker.nl.js │ │ │ ├── bootstrap-datetimepicker.no.js │ │ │ ├── bootstrap-datetimepicker.pl.js │ │ │ ├── bootstrap-datetimepicker.pt-BR.js │ │ │ ├── bootstrap-datetimepicker.pt.js │ │ │ ├── bootstrap-datetimepicker.ro.js │ │ │ ├── bootstrap-datetimepicker.rs-latin.js │ │ │ ├── bootstrap-datetimepicker.rs.js │ │ │ ├── bootstrap-datetimepicker.ru.js │ │ │ ├── bootstrap-datetimepicker.sk.js │ │ │ ├── bootstrap-datetimepicker.sl.js │ │ │ ├── bootstrap-datetimepicker.sv.js │ │ │ ├── bootstrap-datetimepicker.sw.js │ │ │ ├── bootstrap-datetimepicker.th.js │ │ │ ├── bootstrap-datetimepicker.tr.js │ │ │ ├── bootstrap-datetimepicker.ua.js │ │ │ ├── bootstrap-datetimepicker.uk.js │ │ │ ├── bootstrap-datetimepicker.zh-CN.js │ │ │ └── bootstrap-datetimepicker.zh-TW.js │ │ ├── less │ │ └── datetimepicker.less │ │ ├── minify.sh │ │ ├── package.json │ │ ├── sample in bootstrap v2 │ │ ├── bootstrap │ │ │ ├── css │ │ │ │ ├── bootstrap.css │ │ │ │ └── bootstrap.min.css │ │ │ ├── img │ │ │ │ ├── glyphicons-halflings-white.png │ │ │ │ └── glyphicons-halflings.png │ │ │ └── js │ │ │ │ ├── bootstrap.js │ │ │ │ └── bootstrap.min.js │ │ ├── index.html │ │ └── jquery │ │ │ └── jquery-1.8.3.min.js │ │ ├── sample in bootstrap v3 │ │ ├── bootstrap │ │ │ ├── css │ │ │ │ ├── bootstrap-theme.css │ │ │ │ ├── bootstrap-theme.min.css │ │ │ │ ├── bootstrap.css │ │ │ │ └── bootstrap.min.css │ │ │ ├── fonts │ │ │ │ ├── glyphicons-halflings-regular.eot │ │ │ │ ├── glyphicons-halflings-regular.svg │ │ │ │ ├── glyphicons-halflings-regular.ttf │ │ │ │ └── glyphicons-halflings-regular.woff │ │ │ └── js │ │ │ │ ├── bootstrap.js │ │ │ │ └── bootstrap.min.js │ │ ├── index.html │ │ └── jquery │ │ │ └── jquery-1.8.3.min.js │ │ ├── screenshot │ │ ├── standard_day.png │ │ ├── standard_day_meridian.png │ │ ├── standard_decade.png │ │ ├── standard_full.png │ │ ├── standard_hour.png │ │ ├── standard_hour_meridian.png │ │ ├── standard_month.png │ │ └── standard_year.png │ │ └── tests │ │ ├── README.md │ │ ├── _coverage.html │ │ ├── assets │ │ ├── coverage.js │ │ ├── jquery-1.7.1.min.js │ │ ├── mock.js │ │ ├── qunit-logging.js │ │ ├── qunit.css │ │ ├── qunit.js │ │ └── utils.js │ │ ├── run-qunit.js │ │ ├── suites │ │ ├── component.js │ │ ├── events.js │ │ ├── formats.js │ │ ├── inline.js │ │ ├── keyboard_navigation │ │ │ ├── 2011.js │ │ │ ├── 2012.js │ │ │ └── all.js │ │ ├── mouse_navigation │ │ │ ├── 2011.js │ │ │ ├── 2012.js │ │ │ └── all.js │ │ └── options.js │ │ ├── tests.html │ │ └── tests.min.html ├── package.json ├── screenshot.png ├── screenshot2.png └── src │ ├── css │ └── angular-datetimepicker.css │ ├── js │ └── angular-datetimepicker.js │ └── sass │ └── angular-datetimepicker.scss ├── angular-grid ├── README.md ├── bower.json ├── config.rb ├── demo │ └── index.html ├── dist │ ├── css │ │ ├── angular-grid.css │ │ └── angular-grid.min.css │ └── js │ │ ├── angular-grid.js │ │ └── angular-grid.min.js ├── gulpfile.js ├── package.json ├── screenshot.png └── src │ ├── css │ └── angular-grid.css │ ├── js │ ├── angular-grid.js │ ├── directives │ │ ├── tableBody.js │ │ ├── tableCellCompile.js │ │ ├── tableContent.js │ │ ├── tableHeader.js │ │ ├── tableRow.js │ │ └── tableWrapper.js │ ├── factorys │ │ ├── tableFactory.js │ │ └── tableHelper.js │ └── filters │ │ └── tableCellTrans.js │ └── sass │ └── angular-grid.scss ├── angular-itempicker ├── README.md ├── bower.json ├── config.rb ├── demo │ └── index.html ├── dist │ ├── css │ │ ├── angular-itempicker.css │ │ └── angular-itempicker.min.css │ └── js │ │ ├── angular-itempicker.js │ │ └── angular-itempicker.min.js ├── gulpfile.js ├── libs │ └── angular-checkbox │ │ └── dist │ │ ├── css │ │ ├── angular-checkbox.css │ │ └── angular-checkbox.min.css │ │ └── js │ │ ├── angular-checkbox.js │ │ └── angular-checkbox.min.js ├── package.json ├── screenshot.png └── src │ ├── css │ └── angular-itempicker.css │ ├── js │ ├── angular-itempicker.js │ └── directives │ │ ├── sourceList.js │ │ ├── targetList.js │ │ └── toolbar.js │ └── sass │ └── angular-itempicker.scss ├── angular-message ├── README.md ├── bower.json ├── config.rb ├── demo │ └── index.html ├── dist │ ├── css │ │ ├── angular-message.css │ │ └── angular-message.min.css │ └── js │ │ ├── angular-message.js │ │ └── angular-message.min.js ├── gulpfile.js ├── package.json └── src │ ├── css │ └── angular-message.css │ ├── js │ └── angular-message.js │ └── sass │ └── angular-message.scss └── angular-permission ├── README.md ├── bower.json ├── demo └── index.html ├── dist └── js │ ├── angular-permission.js │ └── angular-permission.min.js ├── gulpfile.js ├── package.json └── src └── js └── angular-permission.js /.gitignore: -------------------------------------------------------------------------------- 1 | **/node_modules 2 | **/bower_components 3 | .idea/ -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2016 linjinying 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # angular-components 2 | 3 | ### 简介 4 | 基于`angularJS 1.3+`开发的UI组件或工具类,目前可使用的组件: 5 | 6 | - [angular-autocomplete](https://github.com/linjinying/angular-components/tree/master/angular-autocomplete)(表单输入提示) 7 | - [angular-checkbox](https://github.com/linjinying/angular-components/tree/master/angular-checkbox)(checkbox表单) 8 | - [angular-colorpicker](https://github.com/linjinying/angular-components/tree/master/angular-colorpicker)(颜色选择器) 9 | - [angular-circle-slider](https://github.com/linjinying/angular-components/tree/master/angular-circle-slider)(圆环slider) 10 | - [angular-confirm](https://github.com/linjinying/angular-components/tree/master/angular-confirm)(确认提示框) 11 | - [angular-datetimepicker](https://github.com/linjinying/angular-components/tree/master/angular-datetimepicker)(时间日期选择器) 12 | - [angular-grid](https://github.com/linjinying/angular-components/tree/master/angular-grid)(表格) 13 | - [angular-itempicker](https://github.com/linjinying/angular-components/tree/master/angular-itempicker)(左右栏穿梭) 14 | - [angular-message](https://github.com/linjinying/angular-components/tree/master/angular-message)(消息提示) 15 | - [angular-datetime](https://github.com/linjinying/angular-components/tree/master/angular-datetime)(时间工具类) 16 | - [angular-permission](https://github.com/linjinying/angular-components/tree/master/angular-permission)(权限控制工具类) 17 | 18 | ### 给我提bug 19 | 以上组件已经应用到实际项目中,如果发现bug,欢迎 [在这里](https://github.com/linjinying/angular-components/issues) 给我提bug。 -------------------------------------------------------------------------------- /angular-autocomplete/README.md: -------------------------------------------------------------------------------- 1 | ## angular-autocomplete 2 | 3 | ### demo 4 | [click here](https://techjs.cn/demo/angular-components/angular-autocomplete/) 5 | 6 | ### 说明 7 | 8 | 一个基于jQuery-Autocomplete的angular wrapper组件。理论上,支持jQuery-Autocomplete的所有功能。 9 | 10 | 11 | ### 依赖 12 | - jquery 13 | - jQuery-Autocomplete 14 | - angular 15 | 16 | 17 | ### 使用 18 | 19 | 20 | **html代码** 21 | ```html 22 |
23 | 24 |
25 | ``` 26 | **angular代码** 27 | ```javascript 28 | var app = angular.module("app", ["ui.autocomplete"]); 29 | app.controller("ctrl", ["$scope", function($scope) { 30 | var countries = [{ 31 | value: 'autocomplete', 32 | data: '1' 33 | }, { 34 | value: 'jquery', 35 | data: '2' 36 | }, { 37 | value: 'angular', 38 | data: '3' 39 | }]; 40 | $scope.options = { 41 | lookup: countries, 42 | dataType: "json", 43 | noCache: true, 44 | deferRequestBy: 300, 45 | onSelect:function(suggestion){ 46 | console.log(suggestion); 47 | } 48 | }; 49 | }]); 50 | ``` 51 | -------------------------------------------------------------------------------- /angular-autocomplete/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "angular-components", 3 | "version": "1.0.0", 4 | "homepage": "https://github.com/linjinying/angular-components", 5 | "authors": [ 6 | "linjinying " 7 | ], 8 | "description": "", 9 | "main": "", 10 | "moduleType": [], 11 | "license": "MIT", 12 | "ignore": [ 13 | "**/.*", 14 | "node_modules", 15 | "bower_components", 16 | "test", 17 | "tests" 18 | ], 19 | "dependencies": { 20 | "angular": "1.3.0", 21 | "jquery": "1.8.3", 22 | "devbridge-autocomplete": "~1.2.26" 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /angular-autocomplete/config.rb: -------------------------------------------------------------------------------- 1 | require 'compass/import-once/activate' 2 | # Require any additional compass plugins here. 3 | 4 | # Set this to the root of your project when deployed: 5 | http_path = "/" 6 | css_dir = "css" 7 | sass_dir = "sass" 8 | images_dir = "images" 9 | javascripts_dir = "js" 10 | 11 | # You can select your preferred output style here (can be overridden via the command line): 12 | # output_style = :expanded or :nested or :compact or :compressed 13 | output_style = :compact 14 | 15 | # To enable relative paths to assets via compass helper functions. Uncomment: 16 | relative_assets = true 17 | 18 | # To disable debugging comments that display the original location of your selectors. Uncomment: 19 | # line_comments = false 20 | 21 | 22 | # If you prefer the indented syntax, you might want to regenerate this 23 | # project again passing --syntax sass, or you can uncomment this: 24 | # preferred_syntax = :sass 25 | # and then run: 26 | # sass-convert -R --from scss --to sass sass scss && rm -rf sass && mv scss sass 27 | -------------------------------------------------------------------------------- /angular-autocomplete/demo/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | angular-complete 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 |

关键字:jquery/angular/autocomplete

16 | 17 |

18 | 19 | 43 | 44 | 45 | -------------------------------------------------------------------------------- /angular-autocomplete/dist/css/angular-autocomplete.css: -------------------------------------------------------------------------------- 1 | @charset "UTF-8"; 2 | /**定义组件的主题颜色*/ 3 | .autocomplete-suggestions { -webkit-box-sizing: border-box; -moz-box-sizing: border-box; box-sizing: border-box; border: 1px solid #ccc; background: #fff; cursor: default; overflow: auto; -webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.25); -moz-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.25); box-shadow: 0 1px 1px rgba(0, 0, 0, 0.25); -webkit-animation: ani-autocomplete-suggestions 0.2s; -moz-animation: ani-autocomplete-suggestions 0.2s; animation: ani-autocomplete-suggestions 0.2s; } 4 | .autocomplete-suggestions .autocomplete-suggestion { padding: 4px 5px; white-space: nowrap; overflow: hidden; } 5 | .autocomplete-suggestions .autocomplete-suggestion strong { font-weight: bold; color: #1ab394; } 6 | .autocomplete-suggestions .autocomplete-no-suggestion { padding: 2px 5px; } 7 | .autocomplete-suggestions .autocomplete-selected { background: #F0F0F0; } 8 | .autocomplete-suggestions .autocomplete-group { padding: 2px 5px; } 9 | .autocomplete-suggestions .autocomplete-group strong { font-weight: bold; font-size: 16px; color: #000; display: block; border-bottom: 1px solid #000; } 10 | 11 | @-webkit-keyframes ani-autocomplete-suggestions { 0% { -webkit-transform: translate3d(0, -10px, 0); transform: translate3d(0, -10px, 0); } 12 | 100% { -webkit-transform: translate3d(0, 0, 0); transform: translate3d(0, 0, 0); } } 13 | 14 | @-moz-keyframes ani-autocomplete-suggestions { 0% { -moz-transform: translate3d(0, -10px, 0); transform: translate3d(0, -10px, 0); } 15 | 100% { -moz-transform: translate3d(0, 0, 0); transform: translate3d(0, 0, 0); } } 16 | 17 | @keyframes ani-autocomplete-suggestions { 0% { -webkit-transform: translate3d(0, -10px, 0); -moz-transform: translate3d(0, -10px, 0); transform: translate3d(0, -10px, 0); } 18 | 100% { -webkit-transform: translate3d(0, 0, 0); -moz-transform: translate3d(0, 0, 0); transform: translate3d(0, 0, 0); } } 19 | -------------------------------------------------------------------------------- /angular-autocomplete/dist/css/angular-autocomplete.min.css: -------------------------------------------------------------------------------- 1 | @charset "UTF-8";.autocomplete-suggestions{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;border:1px solid #ccc;background:#fff;cursor:default;overflow:auto;-webkit-box-shadow:0 1px 1px rgba(0,0,0,.25);-moz-box-shadow:0 1px 1px rgba(0,0,0,.25);box-shadow:0 1px 1px rgba(0,0,0,.25);-webkit-animation:ani-autocomplete-suggestions .2s;-moz-animation:ani-autocomplete-suggestions .2s;animation:ani-autocomplete-suggestions .2s}.autocomplete-suggestions .autocomplete-suggestion{padding:4px 5px;white-space:nowrap;overflow:hidden}.autocomplete-suggestions .autocomplete-group,.autocomplete-suggestions .autocomplete-no-suggestion{padding:2px 5px}.autocomplete-suggestions .autocomplete-suggestion strong{font-weight:700;color:#1ab394}.autocomplete-suggestions .autocomplete-selected{background:#F0F0F0}.autocomplete-suggestions .autocomplete-group strong{font-weight:700;font-size:16px;color:#000;display:block;border-bottom:1px solid #000}@-webkit-keyframes ani-autocomplete-suggestions{0%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}100%{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}@-moz-keyframes ani-autocomplete-suggestions{0%{-moz-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}100%{-moz-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}@keyframes ani-autocomplete-suggestions{0%{-webkit-transform:translate3d(0,-10px,0);-moz-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}100%{-webkit-transform:translate3d(0,0,0);-moz-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}} -------------------------------------------------------------------------------- /angular-autocomplete/dist/js/angular-autocomplete.js: -------------------------------------------------------------------------------- 1 | angular.module("ui.autocomplete",[]).directive('angularAutocomplete', [function() { 2 | return { 3 | restrict: 'EA', 4 | scope: { 5 | autocompleteOptions: "=angularAutocomplete" 6 | }, 7 | require: '?ngModel', 8 | link: function(scope, element, attr, ngModel) { 9 | var scopeAutocompleteOptions = scope.autocompleteOptions; 10 | var autocompleteOptions = angular.extend({},scopeAutocompleteOptions); 11 | //set model value 12 | var options = angular.extend(autocompleteOptions, { 13 | onSelect: function(suggestion) { 14 | var value = suggestion.value; 15 | if (ngModel.$modelValue !== value) { 16 | scope.$apply(function() { 17 | ngModel.$setViewValue(value); 18 | }); 19 | } 20 | if (angular.isFunction(scopeAutocompleteOptions.onSelect)) { 21 | scopeAutocompleteOptions.onSelect(suggestion); 22 | } 23 | } 24 | }); 25 | $(element).autocomplete(options); 26 | } 27 | } 28 | }]); 29 | -------------------------------------------------------------------------------- /angular-autocomplete/dist/js/angular-autocomplete.min.js: -------------------------------------------------------------------------------- 1 | angular.module("ui.autocomplete",[]).directive("angularAutocomplete",[function(){return{restrict:"EA",scope:{autocompleteOptions:"=angularAutocomplete"},require:"?ngModel",link:function(e,t,n,o){var u=e.autocompleteOptions,l=angular.extend({},u),a=angular.extend(l,{onSelect:function(t){var n=t.value;o.$modelValue!==n&&e.$apply(function(){o.$setViewValue(n)}),angular.isFunction(u.onSelect)&&u.onSelect(t)}});$(t).autocomplete(a)}}}]); -------------------------------------------------------------------------------- /angular-autocomplete/gulpfile.js: -------------------------------------------------------------------------------- 1 | var gulp = require('gulp'); 2 | var compass = require('gulp-compass'); 3 | var uglifyjs = require('gulp-uglify'); 4 | var minifycss = require('gulp-minify-css'); 5 | var autoprefixer = require('gulp-autoprefixer'); 6 | var rename = require('gulp-rename'); 7 | var connect = require('gulp-connect'); 8 | var sassFolder = ['./src/sass/**/*.scss']; 9 | var jsFolder = ['./src/js/*.js']; 10 | gulp.task('compass', function() { 11 | return gulp.src(sassFolder) 12 | .pipe(compass({ 13 | config_file: './config.rb', 14 | css: './src/css', 15 | sass: './src/sass' 16 | })) 17 | .pipe(autoprefixer({ 18 | browsers: ['Firefox >= 1', 'Chrome >= 1', 'ie >= 7'], 19 | cascade: true 20 | })) 21 | .pipe(gulp.dest('./src/css/')) 22 | .pipe(gulp.dest('./dist/css/')) 23 | .pipe(rename({suffix: '.min'})) 24 | .pipe(minifycss()) 25 | .pipe(gulp.dest('./dist/css/')); 26 | }); 27 | gulp.task('uglifyjs', function() { 28 | return gulp.src(jsFolder) 29 | .pipe(gulp.dest('./dist/js/')) 30 | .pipe(rename({suffix: '.min'})) 31 | .pipe(uglifyjs()) 32 | .pipe(gulp.dest('./dist/js/')); 33 | }); 34 | 35 | gulp.task('connect', function() { 36 | connect.server({ 37 | root: '../', 38 | port: 9999, 39 | host: 'localhost' 40 | }); 41 | }); 42 | 43 | gulp.task('start', function() { 44 | gulp.watch(sassFolder, ['compass']); 45 | gulp.watch(jsFolder, ['uglifyjs']); 46 | gulp.start('uglifyjs'); 47 | gulp.start('connect'); 48 | }); 49 | gulp.task('default', ['start']); 50 | -------------------------------------------------------------------------------- /angular-autocomplete/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "angular-autocomplete", 3 | "version": "1.0.0", 4 | "description": "angular-autocomplete", 5 | "main": "index.js", 6 | "dependencies": { 7 | "gulp": "^3.9.0", 8 | "gulp-autoprefixer": "^3.1.1", 9 | "gulp-replace": "^0.5.4" 10 | }, 11 | "devDependencies": { 12 | "gulp-compass": "^2.1.0", 13 | "gulp-connect": "^2.3.1", 14 | "gulp-concat": "^2.6.0", 15 | "gulp-minify-css": "^1.2.1", 16 | "gulp-uglify": "^1.4.2", 17 | "gulp-rename": "*" 18 | }, 19 | "author": "jinying.lin", 20 | "license": "MIT" 21 | } 22 | -------------------------------------------------------------------------------- /angular-autocomplete/src/css/angular-autocomplete.css: -------------------------------------------------------------------------------- 1 | @charset "UTF-8"; 2 | /**定义组件的主题颜色*/ 3 | .autocomplete-suggestions { -webkit-box-sizing: border-box; -moz-box-sizing: border-box; box-sizing: border-box; border: 1px solid #ccc; background: #fff; cursor: default; overflow: auto; -webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.25); -moz-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.25); box-shadow: 0 1px 1px rgba(0, 0, 0, 0.25); -webkit-animation: ani-autocomplete-suggestions 0.2s; -moz-animation: ani-autocomplete-suggestions 0.2s; animation: ani-autocomplete-suggestions 0.2s; } 4 | .autocomplete-suggestions .autocomplete-suggestion { padding: 4px 5px; white-space: nowrap; overflow: hidden; } 5 | .autocomplete-suggestions .autocomplete-suggestion strong { font-weight: bold; color: #1ab394; } 6 | .autocomplete-suggestions .autocomplete-no-suggestion { padding: 2px 5px; } 7 | .autocomplete-suggestions .autocomplete-selected { background: #F0F0F0; } 8 | .autocomplete-suggestions .autocomplete-group { padding: 2px 5px; } 9 | .autocomplete-suggestions .autocomplete-group strong { font-weight: bold; font-size: 16px; color: #000; display: block; border-bottom: 1px solid #000; } 10 | 11 | @-webkit-keyframes ani-autocomplete-suggestions { 0% { -webkit-transform: translate3d(0, -10px, 0); transform: translate3d(0, -10px, 0); } 12 | 100% { -webkit-transform: translate3d(0, 0, 0); transform: translate3d(0, 0, 0); } } 13 | 14 | @-moz-keyframes ani-autocomplete-suggestions { 0% { -moz-transform: translate3d(0, -10px, 0); transform: translate3d(0, -10px, 0); } 15 | 100% { -moz-transform: translate3d(0, 0, 0); transform: translate3d(0, 0, 0); } } 16 | 17 | @keyframes ani-autocomplete-suggestions { 0% { -webkit-transform: translate3d(0, -10px, 0); -moz-transform: translate3d(0, -10px, 0); transform: translate3d(0, -10px, 0); } 18 | 100% { -webkit-transform: translate3d(0, 0, 0); -moz-transform: translate3d(0, 0, 0); transform: translate3d(0, 0, 0); } } 19 | -------------------------------------------------------------------------------- /angular-autocomplete/src/js/angular-autocomplete.js: -------------------------------------------------------------------------------- 1 | angular.module("ui.autocomplete",[]).directive('angularAutocomplete', [function() { 2 | return { 3 | restrict: 'EA', 4 | scope: { 5 | autocompleteOptions: "=angularAutocomplete" 6 | }, 7 | require: '?ngModel', 8 | link: function(scope, element, attr, ngModel) { 9 | var scopeAutocompleteOptions = scope.autocompleteOptions; 10 | var autocompleteOptions = angular.extend({},scopeAutocompleteOptions); 11 | //set model value 12 | var options = angular.extend(autocompleteOptions, { 13 | onSelect: function(suggestion) { 14 | var value = suggestion.value; 15 | if (ngModel.$modelValue !== value) { 16 | scope.$apply(function() { 17 | ngModel.$setViewValue(value); 18 | }); 19 | } 20 | if (angular.isFunction(scopeAutocompleteOptions.onSelect)) { 21 | scopeAutocompleteOptions.onSelect(suggestion); 22 | } 23 | } 24 | }); 25 | $(element).autocomplete(options); 26 | } 27 | } 28 | }]); 29 | -------------------------------------------------------------------------------- /angular-autocomplete/src/sass/angular-autocomplete.scss: -------------------------------------------------------------------------------- 1 | @charset "utf-8"; 2 | /**定义组件的主题颜色*/ 3 | $theme-color:#1ab394; 4 | .autocomplete-suggestions { 5 | box-sizing: border-box; 6 | border: 1px solid #ccc; 7 | background: #fff; 8 | cursor: default; 9 | overflow: auto; 10 | box-shadow: 0 1px 1px rgba(0, 0, 0, 0.25); 11 | animation: ani-autocomplete-suggestions 0.2s; 12 | .autocomplete-suggestion { 13 | padding: 4px 5px; 14 | white-space: nowrap; 15 | overflow: hidden; 16 | strong { 17 | font-weight: bold; 18 | color: $theme-color; 19 | } 20 | } 21 | .autocomplete-no-suggestion { 22 | padding: 2px 5px; 23 | } 24 | .autocomplete-selected { 25 | background: #F0F0F0; 26 | } 27 | .autocomplete-group { 28 | padding: 2px 5px; 29 | strong { 30 | font-weight: bold; 31 | font-size: 16px; 32 | color: #000; 33 | display: block; 34 | border-bottom: 1px solid #000; 35 | } 36 | } 37 | } 38 | 39 | @keyframes ani-autocomplete-suggestions { 40 | 0% { 41 | transform: translate3d(0, -10px, 0); 42 | } 43 | 100% { 44 | transform: translate3d(0, 0, 0); 45 | } 46 | } 47 | -------------------------------------------------------------------------------- /angular-checkbox/README.md: -------------------------------------------------------------------------------- 1 | ## angular-checkbox 2 | 3 | ### demo 4 | [click here](https://techjs.cn/demo/angular-components/angular-checkbox/) 5 | 6 | ### 说明 7 | 一个基于angular的checkbox组件,目前支持的功能: 8 | 9 | - **value** 文本显示 10 | - **onCheck** 勾选回调函数 11 | 12 | ### 依赖 13 | - angular 14 | 15 | ### 使用 16 | **html代码** 17 | ```html 18 | 19 | 20 |

{{checked}}

21 | 22 | ``` 23 | **angular代码** 24 | ```javascript 25 | var app = angular.module("app", ["ui.checkbox"]); 26 | app.controller("ctrl", ['$scope', function($scope) { 27 | $scope.checked = "YES"; 28 | $scope.options = { 29 | onCheck:function(){ 30 | } 31 | } 32 | }]); 33 | ``` -------------------------------------------------------------------------------- /angular-checkbox/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "angular-components", 3 | "version": "1.0.0", 4 | "homepage": "https://github.com/linjinying/angular-components", 5 | "authors": [ 6 | "linjinying " 7 | ], 8 | "description": "", 9 | "main": "", 10 | "moduleType": [], 11 | "license": "MIT", 12 | "ignore": [ 13 | "**/.*", 14 | "node_modules", 15 | "bower_components", 16 | "test", 17 | "tests" 18 | ], 19 | "dependencies": { 20 | "angular": "1.3.0" 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /angular-checkbox/config.rb: -------------------------------------------------------------------------------- 1 | require 'compass/import-once/activate' 2 | # Require any additional compass plugins here. 3 | 4 | # Set this to the root of your project when deployed: 5 | http_path = "/" 6 | css_dir = "css" 7 | sass_dir = "sass" 8 | images_dir = "images" 9 | javascripts_dir = "js" 10 | 11 | # You can select your preferred output style here (can be overridden via the command line): 12 | # output_style = :expanded or :nested or :compact or :compressed 13 | output_style = :compact 14 | 15 | # To enable relative paths to assets via compass helper functions. Uncomment: 16 | relative_assets = true 17 | 18 | # To disable debugging comments that display the original location of your selectors. Uncomment: 19 | # line_comments = false 20 | 21 | 22 | # If you prefer the indented syntax, you might want to regenerate this 23 | # project again passing --syntax sass, or you can uncomment this: 24 | # preferred_syntax = :sass 25 | # and then run: 26 | # sass-convert -R --from scss --to sass sass scss && rm -rf sass && mv scss sass 27 | -------------------------------------------------------------------------------- /angular-checkbox/demo/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | demo 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 |

{{checked}}

15 | 16 | 27 | 28 | 29 | -------------------------------------------------------------------------------- /angular-checkbox/dist/css/angular-checkbox.css: -------------------------------------------------------------------------------- 1 | .angular-checkbox { position: absolute; display: none; } 2 | 3 | .angular-checkbox[disabled] { cursor: not-allowed; } 4 | 5 | .angular-checkbox + label { position: relative; display: inline-block; cursor: pointer; margin-bottom: 0; font-weight: normal; } 6 | .angular-checkbox + label:before { display: inline-block; vertical-align: middle; width: 16px; height: 16px; content: ''; border: 1px solid #1ab394; -webkit-box-sizing: border-box; -moz-box-sizing: border-box; box-sizing: border-box; } 7 | .angular-checkbox + label:after { position: absolute; top: 0; left: 0; display: none; content: ''; } 8 | .angular-checkbox + label .text { display: inline-block; vertical-align: middle; margin-left: 6px; } 9 | 10 | .angular-checkbox[disabled] + label { cursor: not-allowed; color: #e4e4e4; } 11 | .angular-checkbox[disabled] + label:hover, .angular-checkbox[disabled] + label:before, .angular-checkbox[disabled] + label:after { cursor: not-allowed; } 12 | .angular-checkbox[disabled] + label:hover:before { border: 1px solid #e4e4e4; -webkit-animation-name: none; -moz-animation-name: none; animation-name: none; } 13 | .angular-checkbox[disabled] + label:before { border-color: #e4e4e4; } 14 | 15 | .angular-checkbox:checked + label:before { -webkit-animation-name: none; -moz-animation-name: none; animation-name: none; } 16 | .angular-checkbox:checked + label:after { display: block; } 17 | 18 | .angular-checkbox + label:before { -webkit-border-radius: 3px; -moz-border-radius: 3px; border-radius: 3px; } 19 | .angular-checkbox + label:after { top: 4px; left: 5px; -webkit-box-sizing: border-box; -moz-box-sizing: border-box; box-sizing: border-box; width: 6px; height: 10px; -webkit-transform: rotate(45deg); -moz-transform: rotate(45deg); -ms-transform: rotate(45deg); transform: rotate(45deg); border: 2px solid #fff; border-top: 0; border-left: 0; } 20 | 21 | .angular-checkbox:checked + label:before { border: #1ab394; background: #1ab394; } 22 | 23 | .angular-checkbox:checked[disabled] + label:before { border: #e4e4e4; background: #e4e4e4; } 24 | -------------------------------------------------------------------------------- /angular-checkbox/dist/css/angular-checkbox.min.css: -------------------------------------------------------------------------------- 1 | .angular-checkbox{position:absolute;display:none}.angular-checkbox[disabled]{cursor:not-allowed}.angular-checkbox+label{position:relative;display:inline-block;cursor:pointer;margin-bottom:0;font-weight:400}.angular-checkbox+label:before{display:inline-block;vertical-align:middle;width:16px;height:16px;content:'';border:1px solid #1ab394;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.angular-checkbox+label:after{position:absolute;display:none;content:''}.angular-checkbox+label .text{display:inline-block;vertical-align:middle;margin-left:6px}.angular-checkbox[disabled]+label{cursor:not-allowed;color:#e4e4e4}.angular-checkbox[disabled]+label:after,.angular-checkbox[disabled]+label:before,.angular-checkbox[disabled]+label:hover{cursor:not-allowed}.angular-checkbox[disabled]+label:hover:before{border:1px solid #e4e4e4;-webkit-animation-name:none;-moz-animation-name:none;animation-name:none}.angular-checkbox[disabled]+label:before{border-color:#e4e4e4}.angular-checkbox:checked+label:after{display:block}.angular-checkbox+label:before{-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.angular-checkbox+label:after{top:4px;left:5px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;width:6px;height:10px;-webkit-transform:rotate(45deg);-moz-transform:rotate(45deg);-ms-transform:rotate(45deg);transform:rotate(45deg);border:2px solid #fff;border-top:0;border-left:0}.angular-checkbox:checked+label:before{-webkit-animation-name:none;-moz-animation-name:none;animation-name:none;border:#1ab394;background:#1ab394}.angular-checkbox:checked[disabled]+label:before{border:#e4e4e4;background:#e4e4e4} -------------------------------------------------------------------------------- /angular-checkbox/dist/js/angular-checkbox.js: -------------------------------------------------------------------------------- 1 | angular.module('ui.checkbox', []) 2 | .directive('angularCheckbox', [function() { 3 | return { 4 | restrict: 'A', 5 | require: '?ngModel', 6 | replace: true, 7 | scope: { 8 | options: "=angularCheckbox", 9 | text: "=value" 10 | }, 11 | link: function(scope, element, attr, ngModel) { 12 | /* 13 | *生成checkbox ID 14 | */ 15 | var options = scope.options; 16 | var checkboxId = "angular-checkbox-" + (((1 + Math.random()) * new Date().getTime()) | 0).toString(16).substring(1); 17 | var checkboxElement = 18 | ''; 22 | element.addClass('angular-checkbox').attr('id', checkboxId).after(checkboxElement); 23 | element.bind('click', function() { 24 | options.onCheck(scope); 25 | scope.$applyAsync(); 26 | }); 27 | var valueWatcher = scope.$watch('text', function(currentValue, lastValue) { 28 | if (currentValue !== lastValue) { 29 | element.next().find('span').html(currentValue); 30 | } 31 | }); 32 | scope.$on('$destroy', function() { 33 | valueWatcher(); 34 | }); 35 | } 36 | }; 37 | }]); 38 | -------------------------------------------------------------------------------- /angular-checkbox/dist/js/angular-checkbox.min.js: -------------------------------------------------------------------------------- 1 | angular.module("ui.checkbox",[]).directive("angularCheckbox",[function(){return{restrict:"A",require:"?ngModel",replace:!0,scope:{options:"=angularCheckbox",text:"=value"},link:function(n,e,t,a){var c=n.options,o="angular-checkbox-"+((1+Math.random())*(new Date).getTime()|0).toString(16).substring(1),r='";e.addClass("angular-checkbox").attr("id",o).after(r),e.bind("click",function(){c.onCheck(n),n.$applyAsync()});var i=n.$watch("text",function(n,t){n!==t&&e.next().find("span").html(n)});n.$on("$destroy",function(){i()})}}}]); -------------------------------------------------------------------------------- /angular-checkbox/gulpfile.js: -------------------------------------------------------------------------------- 1 | var gulp = require('gulp'); 2 | var compass = require('gulp-compass'); 3 | var uglifyjs = require('gulp-uglify'); 4 | var minifycss = require('gulp-minify-css'); 5 | var autoprefixer = require('gulp-autoprefixer'); 6 | var rename = require('gulp-rename'); 7 | var connect = require('gulp-connect'); 8 | var sassFolder = ['./src/sass/**/*.scss']; 9 | var jsFolder = ['./src/js/*.js']; 10 | gulp.task('compass', function() { 11 | return gulp.src(sassFolder) 12 | .pipe(compass({ 13 | config_file: './config.rb', 14 | css: './src/css', 15 | sass: './src/sass' 16 | })) 17 | .pipe(autoprefixer({ 18 | browsers: ['Firefox >= 1', 'Chrome >= 1', 'ie >= 7'], 19 | cascade: true 20 | })) 21 | .pipe(gulp.dest('./src/css/')) 22 | .pipe(gulp.dest('./dist/css/')) 23 | .pipe(rename({suffix: '.min'})) 24 | .pipe(minifycss()) 25 | .pipe(gulp.dest('./dist/css/')); 26 | }); 27 | gulp.task('uglifyjs', function() { 28 | return gulp.src(jsFolder) 29 | .pipe(gulp.dest('./dist/js/')) 30 | .pipe(rename({suffix: '.min'})) 31 | .pipe(uglifyjs()) 32 | .pipe(gulp.dest('./dist/js/')); 33 | }); 34 | 35 | gulp.task('connect', function() { 36 | connect.server({ 37 | root: '../', 38 | port: 9998, 39 | host: 'localhost' 40 | }); 41 | }); 42 | 43 | gulp.task('start', function() { 44 | gulp.watch(sassFolder, ['compass']); 45 | gulp.watch(jsFolder, ['uglifyjs']); 46 | gulp.start('uglifyjs'); 47 | gulp.start('connect'); 48 | }); 49 | gulp.task('default', ['start']); 50 | -------------------------------------------------------------------------------- /angular-checkbox/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "angular-checkbox", 3 | "version": "1.0.0", 4 | "description": "angular-checkbox", 5 | "main": "index.js", 6 | "dependencies": { 7 | "gulp": "^3.9.0", 8 | "gulp-autoprefixer": "^3.1.0", 9 | "gulp-replace": "^0.5.4" 10 | }, 11 | "devDependencies": { 12 | "gulp-compass": "^2.1.0", 13 | "gulp-connect": "^2.3.1", 14 | "gulp-concat": "^2.6.0", 15 | "gulp-minify-css": "^1.2.1", 16 | "gulp-uglify": "^1.4.2", 17 | "gulp-rename": "*" 18 | }, 19 | "author": "jinying.lin", 20 | "license": "MIT" 21 | } 22 | -------------------------------------------------------------------------------- /angular-checkbox/src/css/angular-checkbox.css: -------------------------------------------------------------------------------- 1 | .angular-checkbox { position: absolute; display: none; } 2 | 3 | .angular-checkbox[disabled] { cursor: not-allowed; } 4 | 5 | .angular-checkbox + label { position: relative; display: inline-block; cursor: pointer; margin-bottom: 0; font-weight: normal; } 6 | .angular-checkbox + label:before { display: inline-block; vertical-align: middle; width: 16px; height: 16px; content: ''; border: 1px solid #1ab394; -webkit-box-sizing: border-box; -moz-box-sizing: border-box; box-sizing: border-box; } 7 | .angular-checkbox + label:after { position: absolute; top: 0; left: 0; display: none; content: ''; } 8 | .angular-checkbox + label .text { display: inline-block; vertical-align: middle; margin-left: 6px; } 9 | 10 | .angular-checkbox[disabled] + label { cursor: not-allowed; color: #e4e4e4; } 11 | .angular-checkbox[disabled] + label:hover, .angular-checkbox[disabled] + label:before, .angular-checkbox[disabled] + label:after { cursor: not-allowed; } 12 | .angular-checkbox[disabled] + label:hover:before { border: 1px solid #e4e4e4; -webkit-animation-name: none; -moz-animation-name: none; animation-name: none; } 13 | .angular-checkbox[disabled] + label:before { border-color: #e4e4e4; } 14 | 15 | .angular-checkbox:checked + label:before { -webkit-animation-name: none; -moz-animation-name: none; animation-name: none; } 16 | .angular-checkbox:checked + label:after { display: block; } 17 | 18 | .angular-checkbox + label:before { -webkit-border-radius: 3px; -moz-border-radius: 3px; border-radius: 3px; } 19 | .angular-checkbox + label:after { top: 4px; left: 5px; -webkit-box-sizing: border-box; -moz-box-sizing: border-box; box-sizing: border-box; width: 6px; height: 10px; -webkit-transform: rotate(45deg); -moz-transform: rotate(45deg); -ms-transform: rotate(45deg); transform: rotate(45deg); border: 2px solid #fff; border-top: 0; border-left: 0; } 20 | 21 | .angular-checkbox:checked + label:before { border: #1ab394; background: #1ab394; } 22 | 23 | .angular-checkbox:checked[disabled] + label:before { border: #e4e4e4; background: #e4e4e4; } 24 | -------------------------------------------------------------------------------- /angular-checkbox/src/js/angular-checkbox.js: -------------------------------------------------------------------------------- 1 | angular.module('ui.checkbox', []) 2 | .directive('angularCheckbox', [function() { 3 | return { 4 | restrict: 'A', 5 | require: '?ngModel', 6 | replace: true, 7 | scope: { 8 | options: "=angularCheckbox", 9 | text: "=value" 10 | }, 11 | link: function(scope, element, attr, ngModel) { 12 | /* 13 | *生成checkbox ID 14 | */ 15 | var options = scope.options; 16 | var checkboxId = "angular-checkbox-" + (((1 + Math.random()) * new Date().getTime()) | 0).toString(16).substring(1); 17 | var checkboxElement = 18 | ''; 22 | element.addClass('angular-checkbox').attr('id', checkboxId).after(checkboxElement); 23 | element.bind('click', function() { 24 | options.onCheck(scope); 25 | scope.$applyAsync(); 26 | }); 27 | var valueWatcher = scope.$watch('text', function(currentValue, lastValue) { 28 | if (currentValue !== lastValue) { 29 | element.next().find('span').html(currentValue); 30 | } 31 | }); 32 | scope.$on('$destroy', function() { 33 | valueWatcher(); 34 | }); 35 | } 36 | }; 37 | }]); 38 | -------------------------------------------------------------------------------- /angular-checkbox/src/sass/angular-checkbox.scss: -------------------------------------------------------------------------------- 1 | @charset "utf-8"; 2 | $angular-checkbox-size: 16px !default; 3 | $magic-dot-size: 8px !default; 4 | $magic-border-color: #1ab394 !default; 5 | $magic-main-color: #1ab394 !default; 6 | $magic-disabled-color: #e4e4e4 !default; 7 | .angular-checkbox { 8 | position: absolute; 9 | display: none; 10 | } 11 | 12 | .angular-checkbox[disabled] { 13 | cursor: not-allowed; 14 | } 15 | 16 | .angular-checkbox + label { 17 | position: relative; 18 | display: inline-block; 19 | cursor: pointer; 20 | margin-bottom: 0; 21 | font-weight: normal; 22 | &:before { 23 | display: inline-block; 24 | vertical-align: middle; 25 | width: $angular-checkbox-size; 26 | height: $angular-checkbox-size; 27 | content: ''; 28 | border: 1px solid $magic-border-color; 29 | box-sizing: border-box; 30 | } 31 | &:after { 32 | position: absolute; 33 | top: 0; 34 | left: 0; 35 | display: none; 36 | content: ''; 37 | } 38 | .text { 39 | display: inline-block; 40 | vertical-align: middle; 41 | margin-left: 6px; 42 | } 43 | } 44 | 45 | .angular-checkbox[disabled] + label { 46 | cursor: not-allowed; 47 | color: $magic-disabled-color; 48 | &:hover, 49 | &:before, 50 | &:after { 51 | cursor: not-allowed; 52 | } 53 | &:hover { 54 | &:before { 55 | border: 1px solid $magic-disabled-color; 56 | animation-name: none; 57 | } 58 | } 59 | &:before { 60 | border-color: $magic-disabled-color; 61 | } 62 | } 63 | 64 | .angular-checkbox:checked + label { 65 | &:before { 66 | animation-name: none; 67 | } 68 | &:after { 69 | display: block; 70 | } 71 | } 72 | 73 | .angular-checkbox + label { 74 | &:before { 75 | border-radius: 3px; 76 | } 77 | &:after { 78 | top: 4px; 79 | left: 5px; 80 | box-sizing: border-box; 81 | width: 6px; 82 | height: 10px; 83 | transform: rotate(45deg); 84 | border: 2px solid #fff; 85 | border-top: 0; 86 | border-left: 0; 87 | } 88 | } 89 | 90 | .angular-checkbox:checked + label { 91 | &:before { 92 | border: $magic-main-color; 93 | background: $magic-main-color; 94 | } 95 | } 96 | 97 | .angular-checkbox:checked[disabled] + label { 98 | &:before { 99 | border: $magic-disabled-color; 100 | background: $magic-disabled-color; 101 | } 102 | } 103 | -------------------------------------------------------------------------------- /angular-circle-slider/LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2015 linjinying (junejinying@gmail.com) 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. -------------------------------------------------------------------------------- /angular-circle-slider/README.md: -------------------------------------------------------------------------------- 1 | ## angular-circle-slider 2 | ![angular-circle-slider](https://github.com/linjinying/angular-components/blob/master/angular-circle-slider/screenshot.png) 3 | 4 | ### demo 5 | [click here](https://techjs.cn/demo/angular-components/angular-circle-slider/) 6 | 7 | ### 说明 8 | 一个基于angularJS的圆形slider(a circular slider based on angularJS),目前支持的API有: 9 | - **value** 初始化的数据 10 | - **readonly** 只读 11 | - **onStart** `function(value){}`开始滚动事件 12 | - **onFinish** `function(value){}`结束滚动事件 13 | - **onChange** `function(value){}`滑动Change事件 14 | 15 | #### Requirements 16 | - **jquery** 17 | - **angular** 18 | 19 | #### Basic Usage 20 | 21 | **html代码** 22 | ```html 23 |
24 | ``` 25 | **angular代码** 26 | ```javascript 27 | var app = angular.module('app', ['ui.circleSlider']); 28 | app.controller('ctrl', ['$scope', function($scope) { 29 | $scope.options = { 30 | value:60, 31 | onStart:function(value){ 32 | console.info('startValue:' + value); 33 | }, 34 | onChange:function(value){ 35 | console.info('currentValue:' + value); 36 | }, 37 | onFinish:function(value){ 38 | console.info('endValue:' + value); 39 | } 40 | } 41 | }]); 42 | ``` 43 | #### Support 44 | `ie9+` `chrome` `firefox` `safari` 45 | 46 | ####License 47 | -------- 48 | This plugin is licensed under the MIT license. 49 | 50 | Copyright (c) 2016 linjinying -------------------------------------------------------------------------------- /angular-circle-slider/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "angular-components", 3 | "version": "1.0.0", 4 | "homepage": "https://github.com/linjinying/angular-components", 5 | "authors": [ 6 | "linjinying " 7 | ], 8 | "description": "", 9 | "main": "", 10 | "moduleType": [], 11 | "license": "MIT", 12 | "ignore": [ 13 | "**/.*", 14 | "node_modules", 15 | "bower_components", 16 | "test", 17 | "tests" 18 | ], 19 | "dependencies": { 20 | "angular": "1.3.0", 21 | "jquery": "1.9.1" 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /angular-circle-slider/config.rb: -------------------------------------------------------------------------------- 1 | require 'compass/import-once/activate' 2 | # Require any additional compass plugins here. 3 | 4 | # Set this to the root of your project when deployed: 5 | http_path = "/" 6 | css_dir = "css" 7 | sass_dir = "sass" 8 | images_dir = "images" 9 | javascripts_dir = "js" 10 | 11 | # You can select your preferred output style here (can be overridden via the command line): 12 | # output_style = :expanded or :nested or :compact or :compressed 13 | output_style = :compact 14 | 15 | # To enable relative paths to assets via compass helper functions. Uncomment: 16 | relative_assets = true 17 | 18 | # To disable debugging comments that display the original location of your selectors. Uncomment: 19 | # line_comments = false 20 | 21 | 22 | # If you prefer the indented syntax, you might want to regenerate this 23 | # project again passing --syntax sass, or you can uncomment this: 24 | # preferred_syntax = :sass 25 | # and then run: 26 | # sass-convert -R --from scss --to sass sass scss && rm -rf sass && mv scss sass 27 | -------------------------------------------------------------------------------- /angular-circle-slider/demo/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | circleSlider 7 | 8 | 9 | 10 | 11 | 32 | 33 | 34 | 35 |
36 |
37 |
38 | 39 | 40 | 69 | 70 | 71 | -------------------------------------------------------------------------------- /angular-circle-slider/dist/css/angular-circle-slider.css: -------------------------------------------------------------------------------- 1 | .circle { position: relative; width: 100px; height: 100px; border: 5px solid #ccc; -webkit-border-radius: 50%; -moz-border-radius: 50%; border-radius: 50%; text-align: center; -webkit-box-sizing: border-box; -moz-box-sizing: border-box; box-sizing: border-box; outline: 0; } 2 | .circle .handler { position: absolute; height: 10px; width: 10px; background-color: #dedede; -webkit-border-radius: 50%; -moz-border-radius: 50%; border-radius: 50%; -webkit-box-sizing: border-box; -moz-box-sizing: border-box; box-sizing: border-box; cursor: default; } 3 | .circle .text-wrap { position: absolute; top: 0; left: 0; display: table; width: 90px; height: 90px; -webkit-box-sizing: border-box; -moz-box-sizing: border-box; box-sizing: border-box; color: #000; } 4 | .circle .text-wrap .text { display: table-cell; -webkit-box-sizing: border-box; -moz-box-sizing: border-box; box-sizing: border-box; text-align: center; vertical-align: middle; word-break: break-all; font-size: 16px; font-family: 'arial'; cursor: default; -webkit-user-select: none; -moz-user-select: none; -ms-user-select: none; user-select: none; } 5 | -------------------------------------------------------------------------------- /angular-circle-slider/dist/css/angular-circle-slider.min.css: -------------------------------------------------------------------------------- 1 | .circle{position:relative;width:100px;height:100px;border:5px solid #ccc;-webkit-border-radius:50%;-moz-border-radius:50%;border-radius:50%;text-align:center;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;outline:0}.circle .handler,.circle .text-wrap{position:absolute;-webkit-box-sizing:border-box;-moz-box-sizing:border-box}.circle .handler{height:10px;width:10px;background-color:#dedede;-webkit-border-radius:50%;-moz-border-radius:50%;border-radius:50%;box-sizing:border-box;cursor:default}.circle .text-wrap{top:0;left:0;display:table;width:90px;height:90px;box-sizing:border-box;color:#000}.circle .text-wrap .text{display:table-cell;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;text-align:center;vertical-align:middle;word-break:break-all;font-size:16px;font-family:arial;cursor:default;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none} -------------------------------------------------------------------------------- /angular-circle-slider/dist/js/angular-circle-slider.min.js: -------------------------------------------------------------------------------- 1 | angular.module("ui.circleSlider",[]).directive("circleSlider",["$document","$timeout",function(n,e){return{restrict:"EA",replace:!0,scope:{options:"=circleSlider"},template:'
',link:function(a,t,i){function o(n){var e=Math.round(x*Math.sin(n*g)),a=Math.round(x*-Math.cos(n*g)),t=n*m/360|0;b.css({left:e+x-$,top:a+x-$}),w.html(t+"°")}function u(n){var a=y.offset(),t={x:n.pageX-a.left,y:n.pageY-a.top},i=Math.atan2(t.x-x,t.y-x),u=parseInt(-i/g+180);return o(u),h=e(function(){d.value=u||d.value,e.cancel(h)},30),u||d.value}function c(){f&&d.onFinish(d.value),n.unbind("mousemove",u),n.unbind("mouseup",c)}function l(n){switch(v&&d.onStart(d.value),n.keyCode){case 40:case 39:a.$applyAsync(function(){d.value=d.value++= 1', 'Chrome >= 1', 'ie >= 7'], 19 | cascade: true 20 | })) 21 | .pipe(gulp.dest('./src/css/')) 22 | .pipe(gulp.dest('./dist/css/')) 23 | .pipe(rename({suffix: '.min'})) 24 | .pipe(minifycss()) 25 | .pipe(gulp.dest('./dist/css/')); 26 | }); 27 | gulp.task('uglifyjs', function() { 28 | return gulp.src(jsFolder) 29 | .pipe(gulp.dest('./dist/js/')) 30 | .pipe(rename({suffix: '.min'})) 31 | .pipe(uglifyjs()) 32 | .pipe(gulp.dest('./dist/js/')); 33 | }); 34 | 35 | gulp.task('connect', function() { 36 | connect.server({ 37 | root: '../', 38 | port: 9999, 39 | host: 'localhost' 40 | }); 41 | }); 42 | 43 | gulp.task('start', function() { 44 | gulp.watch(sassFolder, ['compass']); 45 | gulp.watch(jsFolder, ['uglifyjs']); 46 | gulp.start('uglifyjs'); 47 | gulp.start('connect'); 48 | }); 49 | gulp.task('default', ['start']); 50 | -------------------------------------------------------------------------------- /angular-circle-slider/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "angular-datetimepicker", 3 | "version": "1.0.0", 4 | "description": "angular-datetimepicker", 5 | "main": "index.js", 6 | "dependencies": { 7 | "gulp": "^3.9.0", 8 | "gulp-autoprefixer": "^3.1.0", 9 | "gulp-replace": "^0.5.4" 10 | }, 11 | "devDependencies": { 12 | "gulp-compass": "^2.1.0", 13 | "gulp-connect": "^2.3.1", 14 | "gulp-concat": "^2.6.0", 15 | "gulp-minify-css": "^1.2.1", 16 | "gulp-uglify": "^1.4.2", 17 | "gulp-rename": "*" 18 | }, 19 | "author": "jinying.lin", 20 | "license": "MIT" 21 | } 22 | -------------------------------------------------------------------------------- /angular-circle-slider/screenshot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/narol1024/angular-components/99de04f9343903e8037d7cee08a24625c1d3f22c/angular-circle-slider/screenshot.png -------------------------------------------------------------------------------- /angular-circle-slider/src/css/angular-circle-slider.css: -------------------------------------------------------------------------------- 1 | .circle { position: relative; width: 100px; height: 100px; border: 5px solid #ccc; -webkit-border-radius: 50%; -moz-border-radius: 50%; border-radius: 50%; text-align: center; -webkit-box-sizing: border-box; -moz-box-sizing: border-box; box-sizing: border-box; outline: 0; } 2 | .circle .handler { position: absolute; height: 10px; width: 10px; background-color: #dedede; -webkit-border-radius: 50%; -moz-border-radius: 50%; border-radius: 50%; -webkit-box-sizing: border-box; -moz-box-sizing: border-box; box-sizing: border-box; cursor: default; } 3 | .circle .text-wrap { position: absolute; top: 0; left: 0; display: table; width: 90px; height: 90px; -webkit-box-sizing: border-box; -moz-box-sizing: border-box; box-sizing: border-box; color: #000; } 4 | .circle .text-wrap .text { display: table-cell; -webkit-box-sizing: border-box; -moz-box-sizing: border-box; box-sizing: border-box; text-align: center; vertical-align: middle; word-break: break-all; font-size: 16px; font-family: 'arial'; cursor: default; -webkit-user-select: none; -moz-user-select: none; -ms-user-select: none; user-select: none; } 5 | -------------------------------------------------------------------------------- /angular-circle-slider/src/sass/angular-circle-slider.scss: -------------------------------------------------------------------------------- 1 | $circleSize:100px; 2 | $circleBorder:5px solid #ccc; 3 | $handlerSize:10px; 4 | $handlerColor:#dedede; 5 | $textColor:#000; 6 | $textSize:16px; 7 | .circle { 8 | position: relative; 9 | width: $circleSize; 10 | height: $circleSize; 11 | border: $circleBorder; 12 | border-radius: 50%; 13 | text-align: center; 14 | box-sizing: border-box; 15 | outline: 0; 16 | .handler { 17 | position: absolute; 18 | height: $handlerSize; 19 | width: $handlerSize; 20 | background-color: $handlerColor; 21 | border-radius: 50%; 22 | box-sizing: border-box; 23 | cursor: default; 24 | } 25 | .text-wrap { 26 | position: absolute; 27 | top: 0; 28 | left: 0; 29 | display: table; 30 | width: $circleSize - $handlerSize; 31 | height: $circleSize - $handlerSize; 32 | box-sizing: border-box; 33 | color: $textColor; 34 | .text { 35 | display: table-cell; 36 | box-sizing: border-box; 37 | text-align: center; 38 | vertical-align: middle; 39 | word-break: break-all; 40 | font-size: $textSize; 41 | font-family: 'arial'; 42 | cursor: default; 43 | user-select: none; 44 | } 45 | } 46 | } 47 | -------------------------------------------------------------------------------- /angular-colorpicker/LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2016 linjinying (junejinying@gmail.com) 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. -------------------------------------------------------------------------------- /angular-colorpicker/README.md: -------------------------------------------------------------------------------- 1 | ## angular-colorpicker 2 | ![angular-colorpicker](https://github.com/linjinying/angular-components/blob/master/angular-colorpicker/screenshot.png) 3 | #### Demo 4 | [click here](https://techjs.cn/demo/angular-components/angular-colorpicker/) 5 | 6 | 一个基于angularJS的颜色选择器,目前具备以下特性: 7 | - **3种选色模式** 经典模式、自定义选择模式、历史记录 8 | - **支持的颜色格式** 目前仅支持rgb,rgba,hex,默认是hex格式 9 | - **支持语言设置** 默认是中文 10 | 11 | a beautiful color picker based on angularJS.It supports the following features: 12 | - **3 modes of picker** pallete, custom, history 13 | - **Color types** rgb, rgba ,hex. 14 | - **Languages** zh-cn, zh-tw, en, pt. 15 | 16 | #### Requirements 17 | - **jquery** 18 | - **angular 1.3.x +**(one-time binding) 19 | 20 | #### Install 21 | > bower install angular-colorpicker 22 | 23 | > npm install angular-colorpicker 24 | 25 | #### Basic Usage 26 | 27 | **html代码** 28 | ```html 29 | 30 | ``` 31 | 32 | **angular代码** 33 | ```javascript 34 | var app = angular.module('app',['ui.colorpicker']); 35 | ``` 36 | 37 | #### Options 38 | - **color** 颜色值 39 | - **color-type** 颜色格式(rgb,rgba,hex) Default `hex` 40 | - **color-language** 语言设置(zh-cn,zh-tw,en...) Default `zh-cn` 41 | 42 | 43 | #### Browser Support 44 | `ie9+` `chrome` `firefox` `safari` 45 | 46 | #### License 47 | -------- 48 | This colopicker plugin is licensed under the MIT license. 49 | 50 | Copyright (c) 2016 linjinying 51 | -------------------------------------------------------------------------------- /angular-colorpicker/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "angular-components", 3 | "description": "angular-components", 4 | "main": [ 5 | "dist/js/angular-colorpicker.min.js", 6 | "dist/css/angular-colorpicker.min.css" 7 | ], 8 | "dependencies" : { 9 | "angular": "1.3.0", 10 | "jquery": "1.8.3" 11 | }, 12 | "authors": [ 13 | "linjinying" 14 | ], 15 | "license": "MIT", 16 | "keywords": [ 17 | "colorpicker", 18 | "color", 19 | "angular" 20 | ], 21 | "homepage": "https://github.com/linjinying/angular-components", 22 | "moduleType": [], 23 | "ignore": [ 24 | "**/.*", 25 | "node_modules", 26 | "bower_components", 27 | "test", 28 | "tests" 29 | ] 30 | } 31 | -------------------------------------------------------------------------------- /angular-colorpicker/config.rb: -------------------------------------------------------------------------------- 1 | require 'compass/import-once/activate' 2 | # Require any additional compass plugins here. 3 | 4 | # Set this to the root of your project when deployed: 5 | http_path = "/" 6 | css_dir = "css" 7 | sass_dir = "sass" 8 | images_dir = "images" 9 | javascripts_dir = "js" 10 | 11 | # You can select your preferred output style here (can be overridden via the command line): 12 | # output_style = :expanded or :nested or :compact or :compressed 13 | output_style = :compact 14 | 15 | # To enable relative paths to assets via compass helper functions. Uncomment: 16 | relative_assets = true 17 | 18 | # To disable debugging comments that display the original location of your selectors. Uncomment: 19 | # line_comments = false 20 | 21 | 22 | # If you prefer the indented syntax, you might want to regenerate this 23 | # project again passing --syntax sass, or you can uncomment this: 24 | # preferred_syntax = :sass 25 | # and then run: 26 | # sass-convert -R --from scss --to sass sass scss && rm -rf sass && mv scss sass 27 | -------------------------------------------------------------------------------- /angular-colorpicker/demo/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | angular-colorpicker 7 | 8 | 9 | 10 | 11 | 16 | 17 | 18 | 19 | 20 | 21 | 27 | 28 | -------------------------------------------------------------------------------- /angular-colorpicker/gulpfile.js: -------------------------------------------------------------------------------- 1 | var gulp = require('gulp'); 2 | var compass = require('gulp-compass'); 3 | var uglifyjs = require('gulp-uglify'); 4 | var minifycss = require('gulp-minify-css'); 5 | var autoprefixer = require('gulp-autoprefixer'); 6 | var rename = require('gulp-rename'); 7 | var connect = require('gulp-connect'); 8 | var sassFolder = ['./src/sass/**/*.scss']; 9 | var jsFolder = ['./src/js/*.js']; 10 | gulp.task('compass', function() { 11 | return gulp.src(sassFolder) 12 | .pipe(compass({ 13 | config_file: './config.rb', 14 | css: './src/css', 15 | sass: './src/sass' 16 | })) 17 | .pipe(autoprefixer({ 18 | browsers: ['Firefox >= 1', 'Chrome >= 1', 'ie >= 7'], 19 | cascade: true 20 | })) 21 | .pipe(gulp.dest('./src/css/')) 22 | .pipe(gulp.dest('./dist/css/')) 23 | .pipe(rename({suffix: '.min'})) 24 | .pipe(minifycss()) 25 | .pipe(gulp.dest('./dist/css/')); 26 | }); 27 | gulp.task('uglifyjs', function() { 28 | return gulp.src(jsFolder) 29 | .pipe(gulp.dest('./dist/js/')) 30 | .pipe(rename({suffix: '.min'})) 31 | .pipe(uglifyjs()) 32 | .pipe(gulp.dest('./dist/js/')); 33 | }); 34 | 35 | gulp.task('connect', function() { 36 | connect.server({ 37 | root: '../', 38 | port: 9999, 39 | host: 'localhost' 40 | }); 41 | }); 42 | 43 | gulp.task('start', function() { 44 | gulp.watch(sassFolder, ['compass']); 45 | gulp.watch(jsFolder, ['uglifyjs']); 46 | gulp.start('uglifyjs'); 47 | gulp.start('connect'); 48 | }); 49 | gulp.task('default', ['start']); -------------------------------------------------------------------------------- /angular-colorpicker/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "angular-colorpicker", 3 | "version": "1.1.0", 4 | "description": "angular-colorpicker", 5 | "main": "./dist/js/angular-colorpicker.min.js", 6 | "style": "./dist/css/angular-colorpicker.min.css", 7 | "directories": { 8 | "example": "example" 9 | }, 10 | "scripts": { 11 | "test": "echo \"Error: no test specified\" && exit 1" 12 | }, 13 | "repository": { 14 | "type": "git", 15 | "url": "git+https://github.com/linjinying/angular-colorpicker.git" 16 | }, 17 | "keywords": [ 18 | "colorpicker", 19 | "color", 20 | "angular" 21 | ], 22 | "author": "linjinying", 23 | "license": "MIT", 24 | "bugs": { 25 | "url": "https://github.com/linjinying/angular-colorpicker/issues" 26 | }, 27 | "homepage": "https://github.com/linjinying/angular-colorpicker#readme", 28 | "devDependencies": { 29 | "gulp": "^3.9.0", 30 | "gulp-minify-css": "^1.2.3", 31 | "gulp-rename": "^1.2.2", 32 | "gulp-sass": "^2.1.1", 33 | "gulp-uglify": "^1.5.1", 34 | "gulp-autoprefixer": "^3.1.1", 35 | "gulp-compass": "^2.1.0", 36 | "gulp-connect": "^5.0.0" 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /angular-colorpicker/screenshot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/narol1024/angular-components/99de04f9343903e8037d7cee08a24625c1d3f22c/angular-colorpicker/screenshot.png -------------------------------------------------------------------------------- /angular-confirm/README.md: -------------------------------------------------------------------------------- 1 | ## angular-confirm 2 | ![angular-confirm](https://github.com/linjinying/angular-components/blob/master/angular-confirm/screenshot.png) 3 | 4 | ### demo 5 | [click here](https://techjs.cn/demo/angular-components/angular-confirm/) 6 | ### 说明 7 | 一个基于angular、angular-bootstrap的确认框组件,目前支持的API有: 8 | 9 | - **text** 提示的消息文本 10 | - **confirmTitle** 提示的消息标题 11 | - **confirmOk** 确定按钮的文本 12 | - **confirmCancel** 确定按钮的文本 13 | - **confirmOkColor** 确定按钮的颜色,可以配置基于bootstrap的按钮颜色,例如`default`,`primary`,`danger`等 14 | - **confirmCancelColor** 取消按钮的颜色,可以配置基于bootstrap的按钮颜色,例如`default`,`primary`,`danger`等 15 | - **confirmSettings** 主要用于配置angular-bootstrap的modal参数,例如`backdrop: 'static'` 16 | 17 | ### 依赖 18 | - angular 19 | - bootstrap.css 20 | - angular-bootstrap 21 | 22 | ### 使用方式 23 | #### 1.直接在HTML上使用 24 | 25 | **html代码** 26 | ```html 27 |
28 | 29 |
30 | ``` 31 | **angular代码** 32 | ```javascript 33 | var app = angular.module("app", ["ui.bootstrap", "ui.confirm"]); 34 | app.controller("ctrl", ['$scope', '$confirm',function($scope,$confirm) { 35 | $scope.refuse = function(){ 36 | alert("已拒绝"); 37 | }; 38 | }]) 39 | ``` 40 | #### 2.动态调用 41 | 42 | **html代码** 43 | ```html 44 |
45 | 46 |
47 | ``` 48 | **angular代码** 49 | ```javascript 50 | var app = angular.module("app", ["ui.bootstrap", "ui.confirm"]); 51 | app.controller("ctrl", ['$scope', '$confirm',function($scope,$confirm) { 52 | $scope.confirm = function() { 53 | $confirm({ 54 | text: "您确认了吗?", 55 | confirmOk: "确定", 56 | confirmTitle: "提示", 57 | confirmCancel: "取消", 58 | confirmOkColor: "danger" 59 | }).then(function () { 60 | alert("确认了"); 61 | }, function () { 62 | alert("取消了"); 63 | }); 64 | }; 65 | }]); 66 | ``` 67 | -------------------------------------------------------------------------------- /angular-confirm/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "angular-components", 3 | "version": "1.0.0", 4 | "homepage": "https://github.com/linjinying/angular-components", 5 | "authors": [ 6 | "linjinying " 7 | ], 8 | "description": "", 9 | "main": "", 10 | "moduleType": [], 11 | "license": "MIT", 12 | "ignore": [ 13 | "**/.*", 14 | "node_modules", 15 | "bower_components", 16 | "test", 17 | "tests" 18 | ], 19 | "dependencies": { 20 | "angular": "1.3.0", 21 | "angular-bootstrap": "0.14.3", 22 | "bootstrap": "^3.3.7" 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /angular-confirm/config.rb: -------------------------------------------------------------------------------- 1 | require 'compass/import-once/activate' 2 | # Require any additional compass plugins here. 3 | 4 | # Set this to the root of your project when deployed: 5 | http_path = "/" 6 | css_dir = "css" 7 | sass_dir = "sass" 8 | images_dir = "images" 9 | javascripts_dir = "js" 10 | 11 | # You can select your preferred output style here (can be overridden via the command line): 12 | # output_style = :expanded or :nested or :compact or :compressed 13 | output_style = :compact 14 | 15 | # To enable relative paths to assets via compass helper functions. Uncomment: 16 | relative_assets = true 17 | 18 | # To disable debugging comments that display the original location of your selectors. Uncomment: 19 | # line_comments = false 20 | 21 | 22 | # If you prefer the indented syntax, you might want to regenerate this 23 | # project again passing --syntax sass, or you can uncomment this: 24 | # preferred_syntax = :sass 25 | # and then run: 26 | # sass-convert -R --from scss --to sass sass scss && rm -rf sass && mv scss sass 27 | -------------------------------------------------------------------------------- /angular-confirm/demo/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | demo 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 |

基本设置:

16 | 17 |

直接在按钮设置指令:

18 | 19 | 20 | 41 | 42 | 43 | -------------------------------------------------------------------------------- /angular-confirm/dist/css/angular-confirm.css: -------------------------------------------------------------------------------- 1 | .modal.modal-confirm .modal-body { font-size: 16px; } 2 | .modal.modal-confirm .modal-body .icon { padding: 0 10px; font-size: 20px; color: #f0ad4e; float: left; } 3 | .modal.modal-confirm .modal-body .text { color: #333; display: block; overflow: hidden; } 4 | .modal.modal-confirm .modal-footer .btn { padding: 5px 10px; -webkit-border-radius: 2px; -moz-border-radius: 2px; border-radius: 2px; font-size: 12px; } 5 | .modal.modal-confirm .modal-header { padding: 10px 15px; } 6 | .modal.modal-confirm .modal-header .modal-title { font-weight: 700; text-align: left; } 7 | -------------------------------------------------------------------------------- /angular-confirm/dist/css/angular-confirm.min.css: -------------------------------------------------------------------------------- 1 | .modal.modal-confirm .modal-body{font-size:16px}.modal.modal-confirm .modal-body .icon{padding:0 10px;font-size:20px;color:#f0ad4e;float:left}.modal.modal-confirm .modal-body .text{color:#333;display:block;overflow:hidden}.modal.modal-confirm .modal-footer .btn{padding:5px 10px;-webkit-border-radius:2px;-moz-border-radius:2px;border-radius:2px;font-size:12px}.modal.modal-confirm .modal-header{padding:10px 15px}.modal.modal-confirm .modal-header .modal-title{font-weight:700;text-align:left} -------------------------------------------------------------------------------- /angular-confirm/dist/js/angular-confirm.min.js: -------------------------------------------------------------------------------- 1 | angular.module("ui.confirm",["ui.bootstrap.modal"]).controller("ConfirmModalController",["$scope","$uibModalInstance","data",function(n,o,a){n.data=angular.copy(a),n.ok=function(n){o.close(n)},n.cancel=function(n){angular.isUndefined(n)&&(n="cancel"),o.dismiss(n)}}]).value("$confirmModalDefaults",{size:"md",windowClass:"modal-confirm",template:'',controller:"ConfirmModalController",defaultLabels:{confirmOkColor:"primary",confirmTitle:"确认",confirmOk:"确定",confirmCancelColor:"default"}}).factory("$confirm",["$uibModal","$confirmModalDefaults",function(n,o){return function(a,c){var r=angular.copy(o);return c=angular.extend(r,c||{}),a=angular.extend({},c.defaultLabels,a||{}),c.resolve={data:function(){return a}},n.open(c).result}}]).directive("confirm",["$confirm",function(n){return{priority:1,restrict:"A",scope:{ngClick:"&",confirm:"@",confirmSettings:"=",confirmTitle:"@",confirmOk:"@",confirmOkColor:"@",confirmCancel:"@",confirmCancelColor:"@"},link:function(o,a,c){a.unbind("click").bind("click",function(a){a.preventDefault();var c={text:o.confirm,confirmTitle:o.confirmTitle,confirmOk:o.confirmOk,confirmCancel:o.confirmCancel||!1,confirmOkColor:o.confirmOkColor||"primary",confirmCancelColor:o.confirmCancelColor||"default"};n(c,angular.extend({},o.confirmSettings)).then(o.ngClick)})}}}]); -------------------------------------------------------------------------------- /angular-confirm/gulpfile.js: -------------------------------------------------------------------------------- 1 | var gulp = require('gulp'); 2 | var compass = require('gulp-compass'); 3 | var uglifyjs = require('gulp-uglify'); 4 | var minifycss = require('gulp-minify-css'); 5 | var autoprefixer = require('gulp-autoprefixer'); 6 | var rename = require('gulp-rename'); 7 | var connect = require('gulp-connect'); 8 | var sassFolder = ['./src/sass/**/*.scss']; 9 | var jsFolder = ['./src/js/*.js']; 10 | gulp.task('compass', function() { 11 | return gulp.src(sassFolder) 12 | .pipe(compass({ 13 | config_file: './config.rb', 14 | css: './src/css', 15 | sass: './src/sass' 16 | })) 17 | .pipe(autoprefixer({ 18 | browsers: ['Firefox >= 1', 'Chrome >= 1', 'ie >= 7'], 19 | cascade: true 20 | })) 21 | .pipe(gulp.dest('./src/css/')) 22 | .pipe(gulp.dest('./dist/css/')) 23 | .pipe(rename({suffix: '.min'})) 24 | .pipe(minifycss()) 25 | .pipe(gulp.dest('./dist/css/')); 26 | }); 27 | gulp.task('uglifyjs', function() { 28 | return gulp.src(jsFolder) 29 | .pipe(gulp.dest('./dist/js/')) 30 | .pipe(rename({suffix: '.min'})) 31 | .pipe(uglifyjs()) 32 | .pipe(gulp.dest('./dist/js/')); 33 | }); 34 | 35 | gulp.task('connect', function() { 36 | connect.server({ 37 | root: '../', 38 | port: 9999, 39 | host: 'localhost' 40 | }); 41 | }); 42 | 43 | gulp.task('start', function() { 44 | gulp.watch(sassFolder, ['compass']); 45 | gulp.watch(jsFolder, ['uglifyjs']); 46 | gulp.start('uglifyjs'); 47 | gulp.start('connect'); 48 | }); 49 | gulp.task('default', ['start']); -------------------------------------------------------------------------------- /angular-confirm/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "angular-confirm", 3 | "version": "1.0.0", 4 | "description": "angular-confirm", 5 | "main": "index.js", 6 | "dependencies": { 7 | "gulp": "^3.9.0", 8 | "gulp-autoprefixer": "^3.1.0", 9 | "gulp-replace": "^0.5.4" 10 | }, 11 | "devDependencies": { 12 | "gulp-compass": "^2.1.0", 13 | "gulp-connect": "^2.3.1", 14 | "gulp-concat": "^2.6.0", 15 | "gulp-minify-css": "^1.2.1", 16 | "gulp-uglify": "^1.4.2", 17 | "gulp-rename": "*" 18 | }, 19 | "author": "jinying.lin", 20 | "license": "MIT" 21 | } 22 | -------------------------------------------------------------------------------- /angular-confirm/screenshot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/narol1024/angular-components/99de04f9343903e8037d7cee08a24625c1d3f22c/angular-confirm/screenshot.png -------------------------------------------------------------------------------- /angular-confirm/src/css/angular-confirm.css: -------------------------------------------------------------------------------- 1 | .modal.modal-confirm .modal-body { font-size: 16px; } 2 | .modal.modal-confirm .modal-body .icon { padding: 0 10px; font-size: 20px; color: #f0ad4e; float: left; } 3 | .modal.modal-confirm .modal-body .text { color: #333; display: block; overflow: hidden; } 4 | .modal.modal-confirm .modal-footer .btn { padding: 5px 10px; -webkit-border-radius: 2px; -moz-border-radius: 2px; border-radius: 2px; font-size: 12px; } 5 | .modal.modal-confirm .modal-header { padding: 10px 15px; } 6 | .modal.modal-confirm .modal-header .modal-title { font-weight: 700; text-align: left; } 7 | -------------------------------------------------------------------------------- /angular-confirm/src/sass/angular-confirm.scss: -------------------------------------------------------------------------------- 1 | .modal.modal-confirm { 2 | .modal-body { 3 | font-size: 16px; 4 | .icon { 5 | padding: 0 10px; 6 | font-size: 20px; 7 | color: #f0ad4e; 8 | float: left; 9 | } 10 | .text { 11 | color: #333; 12 | display: block; 13 | overflow: hidden; 14 | } 15 | } 16 | .modal-footer { 17 | .btn { 18 | padding: 5px 10px; 19 | border-radius: 2px; 20 | font-size: 12px; 21 | } 22 | } 23 | .modal-header { 24 | padding: 10px 15px; 25 | .modal-title { 26 | font-weight: 700; 27 | text-align: left; 28 | } 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /angular-datetime/README.md: -------------------------------------------------------------------------------- 1 | ## angular-datetime 2 | 3 | ### demo 4 | [click here](https://techjs.cn/demo/angular-components/angular-datetime/) 5 | 6 | ### 说明 7 | 一个基于angular的时间工具类,目前支持的API有: 8 | 9 | - **isDate** `function(date){}`检测`date`是否为时间对象 10 | - **newDate** `function(dateStr){}`转换成时间对象,支持时间戳、标准时间参数或`yyyy-mm-dd hh:ii:ss`非标准格式,返回时间对象。 11 | - **format** `function(date,format){}`时间对象格式化成`yyyy-mm-dd hh:ii:ss`形式 12 | - **getSomeDate** `function(date,count,format){}`获取`date`日期的前后`count`天,有`format`返回时间格式化字符串,否则返回时间对象 13 | - **getSomeMonth** `function(date,count,format){}`获取`date`日期的前后`count`月,传有`format`返回时间格式化字符串,否则返回时间对象 14 | 15 | ### 依赖 16 | - angular 17 | 18 | ### 使用方式 19 | **html代码** 20 | ```html 21 | 22 |

23 | 当前时间: 24 |

25 |

26 | 上个月: 27 |

28 |

29 | 下个月: 30 |

31 |

32 | 昨天: 33 |

34 |

35 | 明天: 36 |

37 | 38 | ``` 39 | 40 | **angular代码** 41 | ```javascript 42 | var app = angular.module("app", ['ngDatetime']); 43 | app.controller("ctrl", ['dateTimeFactory', "$scope",function(dateTimeFactory,$scope) { 44 | $scope.currentTime = dateTimeFactory.format(new Date(),'yyyy-mm-dd'); 45 | $scope.prevMonthTime = dateTimeFactory.getSomeMonth(new Date(),-1,'yyyy-mm-dd'); 46 | $scope.nextMonthTime = dateTimeFactory.getSomeMonth(new Date(),1,'yyyy-mm-dd'); 47 | $scope.prevDateTime = dateTimeFactory.getSomeDate(new Date(),-1,'yyyy-mm-dd'); 48 | $scope.nextDateTime = dateTimeFactory.getSomeDate(new Date(),1,'yyyy-mm-dd'); 49 | }]); 50 | ``` -------------------------------------------------------------------------------- /angular-datetime/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "angular-components", 3 | "version": "1.0.0", 4 | "homepage": "https://github.com/linjinying/angular-components", 5 | "authors": [ 6 | "linjinying " 7 | ], 8 | "description": "", 9 | "main": "", 10 | "moduleType": [], 11 | "license": "MIT", 12 | "ignore": [ 13 | "**/.*", 14 | "node_modules", 15 | "bower_components", 16 | "test", 17 | "tests" 18 | ], 19 | "dependencies": { 20 | "angular": "1.3.0" 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /angular-datetime/demo/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | demo 6 | 7 | 8 | 9 | 10 |

11 | 当前时间: 12 |

13 |

14 | 上个月: 15 |

16 |

17 | 下个月: 18 |

19 |

20 | 昨天: 21 |

22 |

23 | 明天: 24 |

25 | 26 | 36 | 37 | -------------------------------------------------------------------------------- /angular-datetime/dist/js/angular-datetime.min.js: -------------------------------------------------------------------------------- 1 | angular.module("ngDatetime",[]).factory("dateTimeFactory",[function(){var t={};return t.isDate=function(t){return"[object Date]"===Object.prototype.toString.call(t)&&!isNaN(t.getTime())},t.newDate=function(t){try{if(t&&!isNaN(Number(t)))return new Date(Number(t))}catch(e){throw new Error(e)}try{var r=t.split(" "),n=r[0].split("-");if(r[1]){var a=r[1].split(":");return new Date(n[0],n[1]-1,n[2],a[0],a[1],a[2])}return new Date(n[0],n[1]-1,n[2])}catch(e){throw new Error("translate error")}},t.format=function(t,e){if(!this.isDate(t))return"-";var t=t,r={"m+":t.getMonth()+1,"d+":t.getDate(),"h+":t.getHours(),"i+":t.getMinutes(),"s+":t.getSeconds(),"q+":Math.floor((t.getMonth()+3)/3),S:t.getMilliseconds()};/(y+)/.test(e)&&(e=e.replace(RegExp.$1,(t.getFullYear()+"").substr(4-RegExp.$1.length)));for(var n in r)new RegExp("("+n+")").test(e)&&(e=e.replace(RegExp.$1,1==RegExp.$1.length?r[n]:("00"+r[n]).substr((""+r[n]).length)));return e},t.getSomeDate=function(t,e,r){var n=this.newDate(t);if(this.isDate(n)){var a=angular.copy(n);return a.setDate(a.getDate()+e),r?this.format(a,r):a}return"-"},t.getSomeMonth=function(t,e,r){var n=this.newDate(t);if(this.isDate(n)){var a=angular.copy(n);return a.setMonth(a.getMonth()+e),r?this.format(a,r):a}return"-"},t}]); -------------------------------------------------------------------------------- /angular-datetime/gulpfile.js: -------------------------------------------------------------------------------- 1 | var gulp = require('gulp'); 2 | var compass = require('gulp-compass'); 3 | var uglifyjs = require('gulp-uglify'); 4 | var minifycss = require('gulp-minify-css'); 5 | var autoprefixer = require('gulp-autoprefixer'); 6 | var rename = require('gulp-rename'); 7 | var connect = require('gulp-connect'); 8 | var sassFolder = ['./src/sass/**/*.scss']; 9 | var jsFolder = ['./src/js/*.js']; 10 | gulp.task('compass', function() { 11 | return gulp.src(sassFolder) 12 | .pipe(compass({ 13 | config_file: './config.rb', 14 | css: './src/css', 15 | sass: './src/sass' 16 | })) 17 | .pipe(autoprefixer({ 18 | browsers: ['Firefox >= 1', 'Chrome >= 1', 'ie >= 7'], 19 | cascade: true 20 | })) 21 | .pipe(gulp.dest('./src/css/')) 22 | .pipe(gulp.dest('./dist/css/')) 23 | .pipe(rename({suffix: '.min'})) 24 | .pipe(minifycss()) 25 | .pipe(gulp.dest('./dist/css/')); 26 | }); 27 | gulp.task('uglifyjs', function() { 28 | return gulp.src(jsFolder) 29 | .pipe(gulp.dest('./dist/js/')) 30 | .pipe(rename({suffix: '.min'})) 31 | .pipe(uglifyjs()) 32 | .pipe(gulp.dest('./dist/js/')); 33 | }); 34 | 35 | gulp.task('connect', function() { 36 | connect.server({ 37 | root: '../', 38 | port: 9999, 39 | host: 'localhost' 40 | }); 41 | }); 42 | 43 | gulp.task('start', function() { 44 | gulp.watch(sassFolder, ['compass']); 45 | gulp.watch(jsFolder, ['uglifyjs']); 46 | gulp.start('uglifyjs'); 47 | gulp.start('connect'); 48 | }); 49 | gulp.task('default', ['start']); -------------------------------------------------------------------------------- /angular-datetime/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "angular-datetime", 3 | "version": "1.0.0", 4 | "description": "angular-datetime", 5 | "main": "index.js", 6 | "dependencies": { 7 | "gulp": "^3.9.0", 8 | "gulp-autoprefixer": "^3.1.0", 9 | "gulp-replace": "^0.5.4" 10 | }, 11 | "devDependencies": { 12 | "gulp-compass": "^2.1.0", 13 | "gulp-connect": "^2.3.1", 14 | "gulp-concat": "^2.6.0", 15 | "gulp-minify-css": "^1.2.1", 16 | "gulp-uglify": "^1.4.2", 17 | "gulp-rename": "*" 18 | }, 19 | "author": "jinying.lin", 20 | "license": "MIT" 21 | } 22 | -------------------------------------------------------------------------------- /angular-datetimepicker/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "angular-components", 3 | "version": "1.0.0", 4 | "homepage": "https://github.com/linjinying/angular-components", 5 | "authors": [ 6 | "linjinying " 7 | ], 8 | "description": "", 9 | "main": "", 10 | "moduleType": [], 11 | "license": "MIT", 12 | "ignore": [ 13 | "**/.*", 14 | "node_modules", 15 | "bower_components", 16 | "test", 17 | "tests" 18 | ], 19 | "dependencies": { 20 | "angular": "1.3.0", 21 | "jquery": "1.9.1", 22 | "bootstrap": "3.3.7" 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /angular-datetimepicker/config.rb: -------------------------------------------------------------------------------- 1 | require 'compass/import-once/activate' 2 | # Require any additional compass plugins here. 3 | 4 | # Set this to the root of your project when deployed: 5 | http_path = "/" 6 | css_dir = "css" 7 | sass_dir = "sass" 8 | images_dir = "images" 9 | javascripts_dir = "js" 10 | 11 | # You can select your preferred output style here (can be overridden via the command line): 12 | # output_style = :expanded or :nested or :compact or :compressed 13 | output_style = :compact 14 | 15 | # To enable relative paths to assets via compass helper functions. Uncomment: 16 | relative_assets = true 17 | 18 | # To disable debugging comments that display the original location of your selectors. Uncomment: 19 | # line_comments = false 20 | 21 | 22 | # If you prefer the indented syntax, you might want to regenerate this 23 | # project again passing --syntax sass, or you can uncomment this: 24 | # preferred_syntax = :sass 25 | # and then run: 26 | # sass-convert -R --from scss --to sass sass scss && rm -rf sass && mv scss sass 27 | -------------------------------------------------------------------------------- /angular-datetimepicker/dist/js/angular-datetimepicker.min.js: -------------------------------------------------------------------------------- 1 | angular.module("ui.datetimepicker",[]).directive("datetimepicker",[function(){return{restrict:"EA",require:"ngModel",scope:{options:"=datetimepicker"},link:function(e,i,t,a){var n=e.options||{},r=n.format||"yyyy-mm-dd",m={},o=n.LIMIT_START_TIME=angular.copy(n.limitStartTime),l=n.LIMIT_END_TIME=angular.copy(n.limitEndTime),T={};T.year=r.indexOf("yyyy")>=0,T.month=r.indexOf("mm")>=0,T.day=r.indexOf("dd")>=0,T.hour=r.indexOf("hh")>=0,T.mintue=r.indexOf("ii")>=0,T.second=r.indexOf("ss")>=0,m=angular.extend({weekStart:1,todayBtn:!0,todayHighlight:!0,customIcon:!0,format:r,autoclose:1,forceParse:0,bootcssVer:2,language:"zh-CN",clearBtn:n.clearBtn!==!1},m);T.year&&(m.startView=4,m.minView=4,m.maxView=4,T.month&&(m.startView=3,m.minView=3,m.maxView=4,T.day&&(m.startView=2,m.minView=2,m.maxView=4,T.hour&&(m.startView=2,m.minView=1,m.maxView=4,T.mintue&&(m.startView=2,m.minView=0,m.maxView=4)))));var c=i.datetimepicker(m),u=e.$watch("options.limitStartTime",function(e,t){e===t&&"undefined"==typeof t||i.datetimepicker("setStartDate",e)}),d=e.$watch("options.limitEndTime",function(e,t){e===t&&"undefined"==typeof t||i.datetimepicker("setEndDate",e)});n.removeDatetimepicker=function(){i.datetimepicker("remove"),u(),d()};var f=["show","hide","changeDate","changeYear","changeMonth","outOfRange","next"];angular.forEach(f,function(e){var i="on"+e[0].toUpperCase()+e.slice(1);angular.isFunction(n[i])&&c.on(e,n[i])});var s=function(){var i=n.relativeGroup(),t=i.groupId,r=i.relativeDatetime,m=i.relativeOptions,T=a.$modelValue;switch(t){case"startTime":if(T&&m.LIMIT_START_TIME){var c=new Date(T.replace(" ","T")).valueOf(),u=new Date(m.LIMIT_START_TIME.replace(" ","T")).valueOf();m.limitStartTime=c>u?T:m.LIMIT_START_TIME}else m.limitStartTime=m.LIMIT_START_TIME||T;if(r&&l){var d=new Date(r.replace(" ","T")).valueOf(),f=new Date(l.replace(" ","T")).valueOf();n.limitEndTime=fu?r:o}else n.limitStartTime=o||r}e.$apply()},p=function(){$(i).blur()};c.on("hide",function(){p(),angular.isFunction(n.relativeGroup)&&s()})}}}]); -------------------------------------------------------------------------------- /angular-datetimepicker/gulpfile.js: -------------------------------------------------------------------------------- 1 | var gulp = require('gulp'); 2 | var compass = require('gulp-compass'); 3 | var uglifyjs = require('gulp-uglify'); 4 | var minifycss = require('gulp-minify-css'); 5 | var autoprefixer = require('gulp-autoprefixer'); 6 | var rename = require('gulp-rename'); 7 | var connect = require('gulp-connect'); 8 | var sassFolder = ['./src/sass/**/*.scss']; 9 | var jsFolder = ['./src/js/*.js']; 10 | gulp.task('compass', function() { 11 | return gulp.src(sassFolder) 12 | .pipe(compass({ 13 | config_file: './config.rb', 14 | css: './src/css', 15 | sass: './src/sass' 16 | })) 17 | .pipe(autoprefixer({ 18 | browsers: ['Firefox >= 1', 'Chrome >= 1', 'ie >= 7'], 19 | cascade: true 20 | })) 21 | .pipe(gulp.dest('./src/css/')) 22 | .pipe(gulp.dest('./dist/css/')) 23 | .pipe(rename({suffix: '.min'})) 24 | .pipe(minifycss()) 25 | .pipe(gulp.dest('./dist/css/')); 26 | }); 27 | gulp.task('uglifyjs', function() { 28 | return gulp.src(jsFolder) 29 | .pipe(gulp.dest('./dist/js/')) 30 | .pipe(rename({suffix: '.min'})) 31 | .pipe(uglifyjs()) 32 | .pipe(gulp.dest('./dist/js/')); 33 | }); 34 | 35 | gulp.task('connect', function() { 36 | connect.server({ 37 | root: '../', 38 | port: 9999, 39 | host: 'localhost' 40 | }); 41 | }); 42 | 43 | gulp.task('start', function() { 44 | gulp.watch(sassFolder, ['compass']); 45 | gulp.watch(jsFolder, ['uglifyjs']); 46 | gulp.start('uglifyjs'); 47 | gulp.start('connect'); 48 | }); 49 | gulp.task('default', ['start']); 50 | -------------------------------------------------------------------------------- /angular-datetimepicker/libs/bootstrap-datetimepicker/.gitattributes: -------------------------------------------------------------------------------- 1 | # Auto detect text files and perform LF normalization 2 | * text=auto 3 | 4 | # Custom for Visual Studio 5 | *.cs diff=csharp 6 | *.sln merge=union 7 | *.csproj merge=union 8 | *.vbproj merge=union 9 | *.fsproj merge=union 10 | *.dbproj merge=union 11 | 12 | # Standard to msysgit 13 | *.doc diff=astextplain 14 | *.DOC diff=astextplain 15 | *.docx diff=astextplain 16 | *.DOCX diff=astextplain 17 | *.dot diff=astextplain 18 | *.DOT diff=astextplain 19 | *.pdf diff=astextplain 20 | *.PDF diff=astextplain 21 | *.rtf diff=astextplain 22 | *.RTF diff=astextplain 23 | -------------------------------------------------------------------------------- /angular-datetimepicker/libs/bootstrap-datetimepicker/.gitignore: -------------------------------------------------------------------------------- 1 | # PHP Storm 2 | .idea 3 | *.iml 4 | atlassian-ide-plugin.xml 5 | yuicompressor-* 6 | -------------------------------------------------------------------------------- /angular-datetimepicker/libs/bootstrap-datetimepicker/.npmignore: -------------------------------------------------------------------------------- 1 | # PHP Storm 2 | .idea 3 | *.iml 4 | atlassian-ide-plugin.xml 5 | yuicompressor-* 6 | build 7 | less 8 | sample* 9 | screenshot 10 | -------------------------------------------------------------------------------- /angular-datetimepicker/libs/bootstrap-datetimepicker/.travis.yml: -------------------------------------------------------------------------------- 1 | sudo: false 2 | before_script: 3 | - cd ./tests 4 | - echo "new Date().toString();" | phantomjs 5 | script: phantomjs run-qunit.js tests.html 6 | -------------------------------------------------------------------------------- /angular-datetimepicker/libs/bootstrap-datetimepicker/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "smalot-bootstrap-datetimepicker", 3 | "main": ["js/bootstrap-datetimepicker.min.js", "css/bootstrap-datetimepicker.min.css"], 4 | "ignore": [ 5 | "build", 6 | "sample in bootstrap v2", 7 | "sample in bootstrap v3", 8 | "screenshot", 9 | "tests", 10 | ".gitattributes", 11 | ".gitignore", 12 | ".travis.yml", 13 | "minify.sh" 14 | ] 15 | } 16 | -------------------------------------------------------------------------------- /angular-datetimepicker/libs/bootstrap-datetimepicker/build/build.less: -------------------------------------------------------------------------------- 1 | // Datepicker .less buildfile. Includes select mixins/variables from bootstrap 2 | // and imports the included datepicker.less to output a minimal datepicker.css 3 | // 4 | // Usage: 5 | // lessc build.less datepicker.css 6 | // 7 | // Variables and mixins copied from bootstrap 2.0.2 8 | 9 | // Variables 10 | @grayLight: #999; 11 | @grayLighter: #eee; 12 | @white: #fff; 13 | @linkColor: #08c; 14 | @btnPrimaryBackground: @linkColor; 15 | @orange: #f89406; 16 | 17 | // Mixins 18 | 19 | // Border Radius 20 | .border-radius(@radius: 5px) { 21 | -webkit-border-radius: @radius; 22 | -moz-border-radius: @radius; 23 | border-radius: @radius; 24 | } 25 | 26 | // Button backgrounds 27 | .buttonBackground(@startColor, @endColor) { 28 | .gradientBar(@startColor, @endColor); 29 | .reset-filter(); 30 | &:hover, &:active, &.active, &.disabled, &[disabled] { 31 | background-color: @endColor; 32 | } 33 | &:active, 34 | &.active { 35 | background-color: darken(@endColor, 10%) e("\9"); 36 | } 37 | } 38 | 39 | // Reset filters for IE 40 | .reset-filter() { 41 | filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); 42 | } 43 | 44 | // Gradient Bar Colors for buttons and alerts 45 | .gradientBar(@primaryColor, @secondaryColor) { 46 | #gradient > .vertical(@primaryColor, @secondaryColor); 47 | border-color: @secondaryColor @secondaryColor darken(@secondaryColor, 15%); 48 | border-color: rgba(0,0,0,.1) rgba(0,0,0,.1) fadein(rgba(0,0,0,.1), 15%); 49 | } 50 | 51 | // Gradients 52 | #gradient { 53 | .vertical(@startColor: #555, @endColor: #333) { 54 | background-color: mix(@startColor, @endColor, 60%); 55 | background-image: -moz-linear-gradient(top, @startColor, @endColor); // FF 3.6+ 56 | background-image: -ms-linear-gradient(top, @startColor, @endColor); // IE10 57 | background-image: -webkit-gradient(linear, 0 0, 0 100%, from(@startColor), to(@endColor)); // Safari 4+, Chrome 2+ 58 | background-image: -webkit-linear-gradient(top, @startColor, @endColor); // Safari 5.1+, Chrome 10+ 59 | background-image: -o-linear-gradient(top, @startColor, @endColor); // Opera 11.10 60 | background-image: linear-gradient(top, @startColor, @endColor); // The standard 61 | background-repeat: repeat-x; 62 | filter: e(%("progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=0)",@startColor,@endColor)); // IE9 and down 63 | } 64 | } 65 | 66 | @import "../less/datetimepicker.less"; 67 | -------------------------------------------------------------------------------- /angular-datetimepicker/libs/bootstrap-datetimepicker/build/build_standalone.less: -------------------------------------------------------------------------------- 1 | // Datepicker standalone .less buildfile. Includes all necessary mixins/variables/rules from bootstrap 2 | // and imports the included datepicker.less to output a minimal standalone datepicker.css 3 | // 4 | // Usage: 5 | // lessc build_standalone.less datepicker.css 6 | // 7 | // Variables, mixins, and rules copied from bootstrap 2.0.2 8 | 9 | @import "build.less"; 10 | 11 | // Dropdown css 12 | 13 | @zindexDropdown: 1000; 14 | @grayDark: #333; 15 | @baseLineHeight: 18px; 16 | @tableBackground: transparent; // overall background-color 17 | @dropdownBackground: @white; 18 | @dropdownBorder: rgba(0,0,0,.2); 19 | @dropdownLinkColor: @grayDark; 20 | @dropdownLinkColorHover: @white; 21 | @dropdownLinkBackgroundHover: @linkColor; 22 | 23 | // Drop shadows 24 | .box-shadow(@shadow) { 25 | -webkit-box-shadow: @shadow; 26 | -moz-box-shadow: @shadow; 27 | box-shadow: @shadow; 28 | } 29 | 30 | // The dropdown menu (ul) 31 | // ---------------------- 32 | .datetimepicker.dropdown-menu { 33 | position: absolute; 34 | top: 100%; 35 | left: 0; 36 | z-index: @zindexDropdown; 37 | float: left; 38 | display: none; // none by default, but block on "open" of the menu 39 | min-width: 160px; 40 | list-style: none; 41 | background-color: @dropdownBackground; 42 | border: 1px solid #ccc; 43 | border: 1px solid rgba(0,0,0,.2); 44 | .border-radius(5px); 45 | .box-shadow(0 5px 10px rgba(0,0,0,.2)); 46 | -webkit-background-clip: padding-box; 47 | -moz-background-clip: padding; 48 | background-clip: padding-box; 49 | *border-right-width: 2px; 50 | *border-bottom-width: 2px; 51 | 52 | // Normally inherited from bootstrap's `body` 53 | color: #333333; 54 | font-family: "Helvetica Neue",Helvetica,Arial,sans-serif; 55 | font-size:13px; 56 | line-height: @baseLineHeight; 57 | 58 | th, td { 59 | padding: 4px 5px; 60 | } 61 | } 62 | 63 | // Alternative arrows 64 | // May require `charset="UTF-8"` in your `` tag 65 | .datetimepicker { 66 | .prev, .next {font-style:normal;} 67 | .prev:after {content:"«";} 68 | .next:after {content:"»";} 69 | } 70 | -------------------------------------------------------------------------------- /angular-datetimepicker/libs/bootstrap-datetimepicker/js/locales/bootstrap-datetimepicker.ar.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Arabic translation for bootstrap-datetimepicker 3 | * Ala' Mohammad 4 | */ 5 | ;(function($){ 6 | $.fn.datetimepicker.dates['ar'] = { 7 | days: ["الأحد", "الاثنين", "الثلاثاء", "الأربعاء", "الخميس", "الجمعة", "السبت", "الأحد"], 8 | daysShort: ["أحد", "اثنين", "ثلاثاء", "أربعاء", "خميس", "جمعة", "سبت", "أحد"], 9 | daysMin: ["أح", "إث", "ث", "أر", "خ", "ج", "س", "أح"], 10 | months: ["يناير", "فبراير", "مارس", "أبريل", "مايو", "يونيو", "يوليو", "أغسطس", "سبتمبر", "أكتوبر", "نوفمبر", "ديسمبر"], 11 | monthsShort: ["يناير", "فبراير", "مارس", "أبريل", "مايو", "يونيو", "يوليو", "أغسطس", "سبتمبر", "أكتوبر", "نوفمبر", "ديسمبر"], 12 | today: "هذا اليوم", 13 | suffix: [], 14 | meridiem: [], 15 | rtl: true 16 | }; 17 | }(jQuery)); 18 | -------------------------------------------------------------------------------- /angular-datetimepicker/libs/bootstrap-datetimepicker/js/locales/bootstrap-datetimepicker.az.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Azerbaijani translation for bootstrap-datetimepicker 3 | * Konstantin Kaluzhnikov 4 | */ 5 | ;(function($){ 6 | $.fn.datetimepicker.dates['az'] = { 7 | days: ["Bazar", "Bazar ertəsi", "Çərşənbə axşamı", "Çərşənbə", "Cümə axşamı", "Cümə", "Şənbə", "Bazar"], 8 | daysShort: ["B", "Be", "Ça", "Ç", "Ca", "C", "Ş", "B"], 9 | daysMin: ["B", "Be", "Ça", "Ç", "Ca", "C", "Ş", "B"], 10 | months: ["Yanvar", "Fevral", "Mart", "Aprel", "May", "İyun", "İyul", "Avqust", "Sentyabr", "Oktyabr", "Noyabr", "Dekabr"], 11 | monthsShort: ["Yan", "Fev", "Mar", "Apr", "May", "İyun", "İyul", "Avq", "Sen", "Okt", "Noy", "Dek"], 12 | today: "Bugün", 13 | suffix: [], 14 | meridiem: [] 15 | }; 16 | }(jQuery)); 17 | -------------------------------------------------------------------------------- /angular-datetimepicker/libs/bootstrap-datetimepicker/js/locales/bootstrap-datetimepicker.bg.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Bulgarian translation for bootstrap-datetimepicker 3 | * Apostol Apostolov 4 | */ 5 | ;(function($){ 6 | $.fn.datetimepicker.dates['bg'] = { 7 | days: ["Неделя", "Понеделник", "Вторник", "Сряда", "Четвъртък", "Петък", "Събота", "Неделя"], 8 | daysShort: ["Нед", "Пон", "Вто", "Сря", "Чет", "Пет", "Съб", "Нед"], 9 | daysMin: ["Н", "П", "В", "С", "Ч", "П", "С", "Н"], 10 | months: ["Януари", "Февруари", "Март", "Април", "Май", "Юни", "Юли", "Август", "Септември", "Октомври", "Ноември", "Декември"], 11 | monthsShort: ["Ян", "Фев", "Мар", "Апр", "Май", "Юни", "Юли", "Авг", "Сеп", "Окт", "Ное", "Дек"], 12 | today: "днес", 13 | suffix: [], 14 | meridiem: [] 15 | }; 16 | }(jQuery)); 17 | -------------------------------------------------------------------------------- /angular-datetimepicker/libs/bootstrap-datetimepicker/js/locales/bootstrap-datetimepicker.bn.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Bangla(Bangladesh) translation for bootstrap-datetimepicker 3 | * Mahbub Rabbani 4 | */ 5 | ;(function($){ 6 | $.fn.datetimepicker.dates['bn'] = { 7 | days: ["রবিবার", "সোমবার", "মঙ্গলবার", "বুধবার", "বৃহষ্পতিবার", "শুক্রবার", "শনিবার", "রবিবার"], 8 | daysShort: ["রবি", "সোম", "মঙ্গল", "বুধ", " বৃহঃ", "শুক্র", "শনি", "রবি"], 9 | daysMin: ["রবি", "সোম", "মঙ্গ", "বুধ", "বৃহ", "শুক্র", "শনি", "রবি"], 10 | months: ['জানুয়ারী', 'ফেব্রুয়ারী', 'মার্চ', 'এপ্রিল', 'মে', 'জুন', 'জুলাই', 'অগাস্ট', 'সেপ্টেম্বর', 'অক্টোবর', 'নভেম্বর', 'ডিসেম্বর' ], 11 | monthsShort: ['জানু', 'ফেব্রু', 'মার্চ', 'এপ্রি', 'মে', 'জুন', 'জুলা', 'অগা', 'সেপ্টে', 'অক্টো', 'নভে', 'ডিসে' ], 12 | today: "আজ", 13 | suffix: [], 14 | meridiem: ['পূর্বাহ্ণ', 'অপরাহ্ন'] 15 | }; 16 | }(jQuery)); -------------------------------------------------------------------------------- /angular-datetimepicker/libs/bootstrap-datetimepicker/js/locales/bootstrap-datetimepicker.ca.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Catalan translation for bootstrap-datetimepicker 3 | * J. Garcia 4 | */ 5 | ;(function($){ 6 | $.fn.datetimepicker.dates['ca'] = { 7 | days: ["Diumenge", "Dilluns", "Dimarts", "Dimecres", "Dijous", "Divendres", "Dissabte", "Diumenge"], 8 | daysShort: ["Diu", "Dil", "Dmt", "Dmc", "Dij", "Div", "Dis", "Diu"], 9 | daysMin: ["dg", "dl", "dt", "dc", "dj", "dv", "ds", "dg"], 10 | months: ["Gener", "Febrer", "Març", "Abril", "Maig", "Juny", "Juliol", "Agost", "Setembre", "Octubre", "Novembre", "Desembre"], 11 | monthsShort: ["Gen", "Feb", "Mar", "Abr", "Mai", "Jun", "Jul", "Ago", "Set", "Oct", "Nov", "Des"], 12 | today: "Avui", 13 | suffix: [], 14 | meridiem: [] 15 | }; 16 | }(jQuery)); 17 | -------------------------------------------------------------------------------- /angular-datetimepicker/libs/bootstrap-datetimepicker/js/locales/bootstrap-datetimepicker.cs.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Czech translation for bootstrap-datetimepicker 3 | * Matěj Koubík 4 | * Fixes by Michal Remiš 5 | */ 6 | ;(function($){ 7 | $.fn.datetimepicker.dates['cs'] = { 8 | days: ["Neděle", "Pondělí", "Úterý", "Středa", "Čtvrtek", "Pátek", "Sobota", "Neděle"], 9 | daysShort: ["Ned", "Pon", "Úte", "Stř", "Čtv", "Pát", "Sob", "Ned"], 10 | daysMin: ["Ne", "Po", "Út", "St", "Čt", "Pá", "So", "Ne"], 11 | months: ["Leden", "Únor", "Březen", "Duben", "Květen", "Červen", "Červenec", "Srpen", "Září", "Říjen", "Listopad", "Prosinec"], 12 | monthsShort: ["Led", "Úno", "Bře", "Dub", "Kvě", "Čer", "Čnc", "Srp", "Zář", "Říj", "Lis", "Pro"], 13 | today: "Dnes", 14 | suffix: [], 15 | meridiem: [], 16 | weekStart: 1, 17 | format: "dd.mm.yyyy" 18 | }; 19 | }(jQuery)); 20 | -------------------------------------------------------------------------------- /angular-datetimepicker/libs/bootstrap-datetimepicker/js/locales/bootstrap-datetimepicker.da.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Danish translation for bootstrap-datetimepicker 3 | * Christian Pedersen 4 | */ 5 | ;(function($){ 6 | $.fn.datetimepicker.dates['da'] = { 7 | days: ["Søndag", "Mandag", "Tirsdag", "Onsdag", "Torsdag", "Fredag", "Lørdag", "Søndag"], 8 | daysShort: ["Søn", "Man", "Tir", "Ons", "Tor", "Fre", "Lør", "Søn"], 9 | daysMin: ["Sø", "Ma", "Ti", "On", "To", "Fr", "Lø", "Sø"], 10 | months: ["Januar", "Februar", "Marts", "April", "Maj", "Juni", "Juli", "August", "September", "Oktober", "November", "December"], 11 | monthsShort: ["Jan", "Feb", "Mar", "Apr", "Maj", "Jun", "Jul", "Aug", "Sep", "Okt", "Nov", "Dec"], 12 | today: "I Dag", 13 | suffix: [], 14 | meridiem: [] 15 | }; 16 | }(jQuery)); -------------------------------------------------------------------------------- /angular-datetimepicker/libs/bootstrap-datetimepicker/js/locales/bootstrap-datetimepicker.de.js: -------------------------------------------------------------------------------- 1 | /** 2 | * German translation for bootstrap-datetimepicker 3 | * Sam Zurcher 4 | */ 5 | ;(function($){ 6 | $.fn.datetimepicker.dates['de'] = { 7 | days: ["Sonntag", "Montag", "Dienstag", "Mittwoch", "Donnerstag", "Freitag", "Samstag", "Sonntag"], 8 | daysShort: ["Son", "Mon", "Die", "Mit", "Don", "Fre", "Sam", "Son"], 9 | daysMin: ["So", "Mo", "Di", "Mi", "Do", "Fr", "Sa", "So"], 10 | months: ["Januar", "Februar", "März", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November", "Dezember"], 11 | monthsShort: ["Jan", "Feb", "Mär", "Apr", "Mai", "Jun", "Jul", "Aug", "Sep", "Okt", "Nov", "Dez"], 12 | today: "Heute", 13 | suffix: [], 14 | meridiem: [], 15 | weekStart: 1, 16 | format: "dd.mm.yyyy" 17 | }; 18 | }(jQuery)); 19 | -------------------------------------------------------------------------------- /angular-datetimepicker/libs/bootstrap-datetimepicker/js/locales/bootstrap-datetimepicker.ee.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Estonian translation for bootstrap-datetimepicker 3 | * Rene Korss 4 | */ 5 | ;(function($){ 6 | $.fn.datetimepicker.dates['ee'] = { 7 | days: ["Pühapäev", "Esmaspäev", "Teisipäev", "Kolmapäev", "Neljapäev", "Reede", "Laupäev", "Pühapäev"], 8 | daysShort: ["P", "E", "T", "K", "N", "R", "L", "P"], 9 | daysMin: ["P", "E", "T", "K", "N", "R", "L", "P"], 10 | months: ["Jaanuar", "Veebruar", "Märts", "Aprill", "Mai", "Juuni", "Juuli", "August", "September", "Oktoober", "November", "Detsember"], 11 | monthsShort: ["Jaan", "Veebr", "Märts", "Apr", "Mai", "Juuni", "Juuli", "Aug", "Sept", "Okt", "Nov", "Dets"], 12 | today: "Täna", 13 | suffix: [], 14 | meridiem: [], 15 | weekStart: 1, 16 | format: "dd.mm.yyyy hh:ii" 17 | }; 18 | }(jQuery)); -------------------------------------------------------------------------------- /angular-datetimepicker/libs/bootstrap-datetimepicker/js/locales/bootstrap-datetimepicker.el.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Greek translation for bootstrap-datetimepicker 3 | */ 4 | ;(function($){ 5 | $.fn.datetimepicker.dates['el'] = { 6 | days: ["Κυριακή", "Δευτέρα", "Τρίτη", "Τετάρτη", "Πέμπτη", "Παρασκευή", "Σάββατο", "Κυριακή"], 7 | daysShort: ["Κυρ", "Δευ", "Τρι", "Τετ", "Πεμ", "Παρ", "Σαβ", "Κυρ"], 8 | daysMin: ["Κυ", "Δε", "Τρ", "Τε", "Πε", "Πα", "Σα", "Κυ"], 9 | months: ["Ιανουάριος", "Φεβρουάριος", "Μάρτιος", "Απρίλιος", "Μάιος", "Ιούνιος", "Ιούλιος", "Αύγουστος", "Σεπτέμβριος", "Οκτώβριος", "Νοέμβριος", "Δεκέμβριος"], 10 | monthsShort: ["Ιαν", "Φεβ", "Μαρ", "Απρ", "Μάι", "Ιουν", "Ιουλ", "Αυγ", "Σεπ", "Οκτ", "Νοε", "Δεκ"], 11 | today: "Σήμερα", 12 | suffix: [], 13 | meridiem: [] 14 | }; 15 | }(jQuery)); -------------------------------------------------------------------------------- /angular-datetimepicker/libs/bootstrap-datetimepicker/js/locales/bootstrap-datetimepicker.es.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Spanish translation for bootstrap-datetimepicker 3 | * Bruno Bonamin 4 | */ 5 | ;(function($){ 6 | $.fn.datetimepicker.dates['es'] = { 7 | days: ["Domingo", "Lunes", "Martes", "Miércoles", "Jueves", "Viernes", "Sábado", "Domingo"], 8 | daysShort: ["Dom", "Lun", "Mar", "Mié", "Jue", "Vie", "Sáb", "Dom"], 9 | daysMin: ["Do", "Lu", "Ma", "Mi", "Ju", "Vi", "Sa", "Do"], 10 | months: ["Enero", "Febrero", "Marzo", "Abril", "Mayo", "Junio", "Julio", "Agosto", "Septiembre", "Octubre", "Noviembre", "Diciembre"], 11 | monthsShort: ["Ene", "Feb", "Mar", "Abr", "May", "Jun", "Jul", "Ago", "Sep", "Oct", "Nov", "Dic"], 12 | today: "Hoy", 13 | suffix: [], 14 | meridiem: [] 15 | }; 16 | }(jQuery)); 17 | -------------------------------------------------------------------------------- /angular-datetimepicker/libs/bootstrap-datetimepicker/js/locales/bootstrap-datetimepicker.fi.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Finnish translation for bootstrap-datetimepicker 3 | * Jaakko Salonen 4 | */ 5 | ;(function($){ 6 | $.fn.datetimepicker.dates['fi'] = { 7 | days: ["sunnuntai", "maanantai", "tiistai", "keskiviikko", "torstai", "perjantai", "lauantai", "sunnuntai"], 8 | daysShort: ["sun", "maa", "tii", "kes", "tor", "per", "lau", "sun"], 9 | daysMin: ["su", "ma", "ti", "ke", "to", "pe", "la", "su"], 10 | months: ["tammikuu", "helmikuu", "maaliskuu", "huhtikuu", "toukokuu", "kesäkuu", "heinäkuu", "elokuu", "syyskuu", "lokakuu", "marraskuu", "joulukuu"], 11 | monthsShort: ["tam", "hel", "maa", "huh", "tou", "kes", "hei", "elo", "syy", "lok", "mar", "jou"], 12 | today: "tänään", 13 | suffix: [], 14 | meridiem: [] 15 | }; 16 | }(jQuery)); 17 | -------------------------------------------------------------------------------- /angular-datetimepicker/libs/bootstrap-datetimepicker/js/locales/bootstrap-datetimepicker.fr.js: -------------------------------------------------------------------------------- 1 | /** 2 | * French translation for bootstrap-datetimepicker 3 | * Nico Mollet 4 | */ 5 | ;(function($){ 6 | $.fn.datetimepicker.dates['fr'] = { 7 | days: ["Dimanche", "Lundi", "Mardi", "Mercredi", "Jeudi", "Vendredi", "Samedi", "Dimanche"], 8 | daysShort: ["Dim", "Lun", "Mar", "Mer", "Jeu", "Ven", "Sam", "Dim"], 9 | daysMin: ["D", "L", "Ma", "Me", "J", "V", "S", "D"], 10 | months: ["Janvier", "Février", "Mars", "Avril", "Mai", "Juin", "Juillet", "Août", "Septembre", "Octobre", "Novembre", "Décembre"], 11 | monthsShort: ["Jan", "Fev", "Mar", "Avr", "Mai", "Jui", "Jul", "Aou", "Sep", "Oct", "Nov", "Dec"], 12 | today: "Aujourd'hui", 13 | suffix: [], 14 | meridiem: ["am", "pm"], 15 | weekStart: 1, 16 | format: "dd/mm/yyyy hh:ii" 17 | }; 18 | }(jQuery)); 19 | -------------------------------------------------------------------------------- /angular-datetimepicker/libs/bootstrap-datetimepicker/js/locales/bootstrap-datetimepicker.he.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Hebrew translation for bootstrap-datetimepicker 3 | * Sagie Maoz 4 | */ 5 | ;(function($){ 6 | $.fn.datetimepicker.dates['he'] = { 7 | days: ["ראשון", "שני", "שלישי", "רביעי", "חמישי", "שישי", "שבת", "ראשון"], 8 | daysShort: ["א", "ב", "ג", "ד", "ה", "ו", "ש", "א"], 9 | daysMin: ["א", "ב", "ג", "ד", "ה", "ו", "ש", "א"], 10 | months: ["ינואר", "פברואר", "מרץ", "אפריל", "מאי", "יוני", "יולי", "אוגוסט", "ספטמבר", "אוקטובר", "נובמבר", "דצמבר"], 11 | monthsShort: ["ינו", "פבר", "מרץ", "אפר", "מאי", "יונ", "יול", "אוג", "ספט", "אוק", "נוב", "דצמ"], 12 | today: "היום", 13 | suffix: [], 14 | meridiem: [], 15 | rtl: true 16 | }; 17 | }(jQuery)); 18 | -------------------------------------------------------------------------------- /angular-datetimepicker/libs/bootstrap-datetimepicker/js/locales/bootstrap-datetimepicker.hr.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Croatian localisation 3 | */ 4 | ;(function($){ 5 | $.fn.datetimepicker.dates['hr'] = { 6 | days: ["Nedjelja", "Ponedjelja", "Utorak", "Srijeda", "Četrtak", "Petak", "Subota", "Nedjelja"], 7 | daysShort: ["Ned", "Pon", "Uto", "Srr", "Čet", "Pet", "Sub", "Ned"], 8 | daysMin: ["Ne", "Po", "Ut", "Sr", "Če", "Pe", "Su", "Ne"], 9 | months: ["Siječanj", "Veljača", "Ožujak", "Travanj", "Svibanj", "Lipanj", "Srpanj", "Kolovoz", "Rujan", "Listopad", "Studeni", "Prosinac"], 10 | monthsShort: ["Sije", "Velj", "Ožu", "Tra", "Svi", "Lip", "Jul", "Kol", "Ruj", "Lis", "Stu", "Pro"], 11 | today: "Danas", 12 | suffix: [], 13 | meridiem: [] 14 | }; 15 | }(jQuery)); 16 | -------------------------------------------------------------------------------- /angular-datetimepicker/libs/bootstrap-datetimepicker/js/locales/bootstrap-datetimepicker.hu.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Hungarian translation for bootstrap-datetimepicker 3 | * darevish 4 | */ 5 | ;(function($){ 6 | $.fn.datetimepicker.dates['hu'] = { 7 | days: ["Vasárnap", "Hétfő", "Kedd", "Szerda", "Csütörtök", "Péntek", "Szombat", "Vasárnap"], 8 | daysShort: ["Vas", "Hét", "Ked", "Sze", "Csü", "Pén", "Szo", "Vas"], 9 | daysMin: ["V", "H", "K", "Sze", "Cs", "P", "Szo", "V"], 10 | months: ["Január", "Február", "Március", "Április", "Május", "Június", "Július", "Augusztus", "Szeptember", "Október", "November", "December"], 11 | monthsShort: ["Jan", "Feb", "Már", "Ápr", "Máj", "Jún", "Júl", "Aug", "Sze", "Okt", "Nov", "Dec"], 12 | today: "Ma", 13 | suffix: [], 14 | meridiem: [], 15 | weekStart: 1 16 | }; 17 | }(jQuery)); 18 | -------------------------------------------------------------------------------- /angular-datetimepicker/libs/bootstrap-datetimepicker/js/locales/bootstrap-datetimepicker.hy.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Armenian translation for bootstrap-datepicker 3 | * Hayk Chamyan 4 | */ 5 | ;(function($){ 6 | $.fn.datetimepicker.dates['hy'] = { 7 | days: ["Կիրակի", "Երկուշաբթի", "Երեքշաբթի", "Չորեքշաբթի", "Հինգշաբթի", "Ուրբաթ", "Շաբաթ", "Կիրակի"], 8 | daysShort: ["Կիր", "Երկ", "Երք", "Չոր", "Հնգ", "Ուր", "Շաբ", "Կիր"], 9 | daysMin: ["Կի", "Եկ", "Եք", "Չո", "Հի", "Ու", "Շա", "Կի"], 10 | months: ["Հունվար", "Փետրվար", "Մարտ", "Ապրիլ", "Մայիս", "Հունիս", "Հուլիս", "Օգոստոս", "Սեպտեմբեր", "Հոկտեմբեր", "Նոյեմբեր", "Դեկտեմբեր"], 11 | monthsShort: ["Հնվ", "Փետ", "Մար", "Ապր", "Մայ", "Հուն", "Հուլ", "Օգս", "Սեպ", "Հոկ", "Նոյ", "Դեկ"], 12 | today: "Այսօր", 13 | suffix: [], 14 | meridiem: [] 15 | }; 16 | }(jQuery)); 17 | -------------------------------------------------------------------------------- /angular-datetimepicker/libs/bootstrap-datetimepicker/js/locales/bootstrap-datetimepicker.id.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Bahasa translation for bootstrap-datetimepicker 3 | * Azwar Akbar 4 | * Addtional by Yulian Sutopo 5 | */ 6 | ;(function($){ 7 | $.fn.datetimepicker.dates['id'] = { 8 | days: ["Minggu", "Senin", "Selasa", "Rabu", "Kamis", "Jumat", "Sabtu", "Minggu"], 9 | daysShort: ["Mng", "Sen", "Sel", "Rab", "Kam", "Jum", "Sab", "Mng"], 10 | daysMin: ["Mg", "Sn", "Sl", "Ra", "Ka", "Ju", "Sa", "Mg"], 11 | months: ["Januari", "Februari", "Maret", "April", "Mei", "Juni", "Juli", "Agustus", "September", "Oktober", "November", "Desember"], 12 | monthsShort: ["Jan", "Feb", "Mar", "Apr", "Mei", "Jun", "Jul", "Ags", "Sep", "Okt", "Nov", "Des"], 13 | today: "Hari Ini", 14 | suffix: [], 15 | meridiem: [], 16 | weekStart: 1, 17 | format: "dd/mm/yyyy hh:ii:ss" 18 | }; 19 | }(jQuery)); 20 | -------------------------------------------------------------------------------- /angular-datetimepicker/libs/bootstrap-datetimepicker/js/locales/bootstrap-datetimepicker.is.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Icelandic translation for bootstrap-datetimepicker 3 | * Hinrik Örn Sigurðsson 4 | */ 5 | ;(function($){ 6 | $.fn.datetimepicker.dates['is'] = { 7 | days: ["Sunnudagur", "Mánudagur", "Þriðjudagur", "Miðvikudagur", "Fimmtudagur", "Föstudagur", "Laugardagur", "Sunnudagur"], 8 | daysShort: ["Sun", "Mán", "Þri", "Mið", "Fim", "Fös", "Lau", "Sun"], 9 | daysMin: ["Su", "Má", "Þr", "Mi", "Fi", "Fö", "La", "Su"], 10 | months: ["Janúar", "Febrúar", "Mars", "Apríl", "Maí", "Júní", "Júlí", "Ágúst", "September", "Október", "Nóvember", "Desember"], 11 | monthsShort: ["Jan", "Feb", "Mar", "Apr", "Maí", "Jún", "Júl", "Ágú", "Sep", "Okt", "Nóv", "Des"], 12 | today: "Í Dag", 13 | suffix: [], 14 | meridiem: [] 15 | }; 16 | }(jQuery)); 17 | -------------------------------------------------------------------------------- /angular-datetimepicker/libs/bootstrap-datetimepicker/js/locales/bootstrap-datetimepicker.it.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Italian translation for bootstrap-datetimepicker 3 | * Enrico Rubboli 4 | */ 5 | ;(function($){ 6 | $.fn.datetimepicker.dates['it'] = { 7 | days: ["Domenica", "Lunedi", "Martedi", "Mercoledi", "Giovedi", "Venerdi", "Sabato", "Domenica"], 8 | daysShort: ["Dom", "Lun", "Mar", "Mer", "Gio", "Ven", "Sab", "Dom"], 9 | daysMin: ["Do", "Lu", "Ma", "Me", "Gi", "Ve", "Sa", "Do"], 10 | months: ["Gennaio", "Febbraio", "Marzo", "Aprile", "Maggio", "Giugno", "Luglio", "Agosto", "Settembre", "Ottobre", "Novembre", "Dicembre"], 11 | monthsShort: ["Gen", "Feb", "Mar", "Apr", "Mag", "Giu", "Lug", "Ago", "Set", "Ott", "Nov", "Dic"], 12 | today: "Oggi", 13 | suffix: [], 14 | meridiem: [], 15 | weekStart: 1, 16 | format: "dd/mm/yyyy hh:ii:ss" 17 | }; 18 | }(jQuery)); 19 | -------------------------------------------------------------------------------- /angular-datetimepicker/libs/bootstrap-datetimepicker/js/locales/bootstrap-datetimepicker.ja.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Japanese translation for bootstrap-datetimepicker 3 | * Norio Suzuki 4 | */ 5 | ;(function($){ 6 | $.fn.datetimepicker.dates['ja'] = { 7 | days: ["日曜", "月曜", "火曜", "水曜", "木曜", "金曜", "土曜", "日曜"], 8 | daysShort: ["日", "月", "火", "水", "木", "金", "土", "日"], 9 | daysMin: ["日", "月", "火", "水", "木", "金", "土", "日"], 10 | months: ["1月", "2月", "3月", "4月", "5月", "6月", "7月", "8月", "9月", "10月", "11月", "12月"], 11 | monthsShort: ["1月", "2月", "3月", "4月", "5月", "6月", "7月", "8月", "9月", "10月", "11月", "12月"], 12 | today: "今日", 13 | suffix: [], 14 | meridiem: [] 15 | }; 16 | }(jQuery)); 17 | -------------------------------------------------------------------------------- /angular-datetimepicker/libs/bootstrap-datetimepicker/js/locales/bootstrap-datetimepicker.ka.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Georgian translation for bootstrap-datetimepicker 3 | * Zura Jijavadze 4 | */ 5 | ;(function($){ 6 | $.fn.datetimepicker.dates['ka'] = { 7 | days: ["კვირა", "ორშაბათი", "სამშაბათი", "ოთხშაბათი", "ხუთშაბათი", "პარასკევი", "შაბათი", "კვირა"], 8 | daysShort: ["კვი", "ორშ", "სამ", "ოთხ", "ხუთ", "პარ", "შაბ", "კვი"], 9 | daysMin: ["კვ", "ორ", "სა", "ოთ", "ხუ", "პა", "შა", "კვ"], 10 | months: ["იანვარი", "თებერვალი", "მარტი", "აპრილი", "მაისი", "ივნისი", "ივლისი", "აგვისტო", "სექტემბერი", "ოქტომბერი", "ნოემბერი", "დეკემბერი"], 11 | monthsShort: ["იან", "თებ", "მარ", "აპრ", "მაი", "ივნ", "ივლ", "აგვ", "სექ", "ოქტ", "ნოე", "დეკ"], 12 | today: "დღეს", 13 | suffix: [], 14 | meridiem: [] 15 | }; 16 | }(jQuery)); -------------------------------------------------------------------------------- /angular-datetimepicker/libs/bootstrap-datetimepicker/js/locales/bootstrap-datetimepicker.ko.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Korean translation for bootstrap-datetimepicker 3 | * Gu Youn 4 | * Baekjoon Choi 5 | */ 6 | ;(function($){ 7 | $.fn.datetimepicker.dates['ko'] = { 8 | days: ["일요일", "월요일", "화요일", "수요일", "목요일", "금요일", "토요일", "일요일"], 9 | daysShort: ["일", "월", "화", "수", "목", "금", "토", "일"], 10 | daysMin: ["일", "월", "화", "수", "목", "금", "토", "일"], 11 | months: ["1월", "2월", "3월", "4월", "5월", "6월", "7월", "8월", "9월", "10월", "11월", "12월"], 12 | monthsShort: ["1월", "2월", "3월", "4월", "5월", "6월", "7월", "8월", "9월", "10월", "11월", "12월"], 13 | suffix: [], 14 | meridiem: ["오전", "오후"], 15 | today: "오늘", 16 | }; 17 | }(jQuery)); 18 | -------------------------------------------------------------------------------- /angular-datetimepicker/libs/bootstrap-datetimepicker/js/locales/bootstrap-datetimepicker.lt.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Lithuanian translation for bootstrap-datetimepicker 3 | * Šarūnas Gliebus 4 | */ 5 | 6 | ;(function($){ 7 | $.fn.datetimepicker.dates['lt'] = { 8 | days: ["Sekmadienis", "Pirmadienis", "Antradienis", "Trečiadienis", "Ketvirtadienis", "Penktadienis", "Šeštadienis", "Sekmadienis"], 9 | daysShort: ["S", "Pr", "A", "T", "K", "Pn", "Š", "S"], 10 | daysMin: ["Sk", "Pr", "An", "Tr", "Ke", "Pn", "Št", "Sk"], 11 | months: ["Sausis", "Vasaris", "Kovas", "Balandis", "Gegužė", "Birželis", "Liepa", "Rugpjūtis", "Rugsėjis", "Spalis", "Lapkritis", "Gruodis"], 12 | monthsShort: ["Sau", "Vas", "Kov", "Bal", "Geg", "Bir", "Lie", "Rugp", "Rugs", "Spa", "Lap", "Gru"], 13 | today: "Šiandien", 14 | suffix: [], 15 | meridiem: [], 16 | weekStart: 1 17 | }; 18 | }(jQuery)); 19 | -------------------------------------------------------------------------------- /angular-datetimepicker/libs/bootstrap-datetimepicker/js/locales/bootstrap-datetimepicker.lv.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Latvian translation for bootstrap-datetimepicker 3 | * Artis Avotins 4 | */ 5 | 6 | ;(function($){ 7 | $.fn.datetimepicker.dates['lv'] = { 8 | days: ["Svētdiena", "Pirmdiena", "Otrdiena", "Trešdiena", "Ceturtdiena", "Piektdiena", "Sestdiena", "Svētdiena"], 9 | daysShort: ["Sv", "P", "O", "T", "C", "Pk", "S", "Sv"], 10 | daysMin: ["Sv", "Pr", "Ot", "Tr", "Ce", "Pk", "St", "Sv"], 11 | months: ["Janvāris", "Februāris", "Marts", "Aprīlis", "Maijs", "Jūnijs", "Jūlijs", "Augusts", "Septembris", "Oktobris", "Novembris", "Decembris"], 12 | monthsShort: ["Jan", "Feb", "Mar", "Apr", "Mai", "Jūn", "Jūl", "Aug", "Sep", "Okt", "Nov", "Dec."], 13 | today: "Šodien", 14 | suffix: [], 15 | meridiem: [], 16 | weekStart: 1 17 | }; 18 | }(jQuery)); -------------------------------------------------------------------------------- /angular-datetimepicker/libs/bootstrap-datetimepicker/js/locales/bootstrap-datetimepicker.ms.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Malay translation for bootstrap-datetimepicker 3 | * Ateman Faiz 4 | */ 5 | ;(function($){ 6 | $.fn.datetimepicker.dates['ms'] = { 7 | days: ["Ahad", "Isnin", "Selasa", "Rabu", "Khamis", "Jumaat", "Sabtu", "Ahad"], 8 | daysShort: ["Aha", "Isn", "Sel", "Rab", "Kha", "Jum", "Sab", "Aha"], 9 | daysMin: ["Ah", "Is", "Se", "Ra", "Kh", "Ju", "Sa", "Ah"], 10 | months: ["Januari", "Februari", "Mac", "April", "Mei", "Jun", "Julai", "Ogos", "September", "Oktober", "November", "Disember"], 11 | monthsShort: ["Jan", "Feb", "Mar", "Apr", "Mei", "Jun", "Jul", "Ogo", "Sep", "Okt", "Nov", "Dis"], 12 | today: "Hari Ini", 13 | suffix: [], 14 | meridiem: [] 15 | }; 16 | }(jQuery)); 17 | -------------------------------------------------------------------------------- /angular-datetimepicker/libs/bootstrap-datetimepicker/js/locales/bootstrap-datetimepicker.nb.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Norwegian (bokmål) translation for bootstrap-datetimepicker 3 | * Fredrik Sundmyhr 4 | */ 5 | ;(function($){ 6 | $.fn.datetimepicker.dates['nb'] = { 7 | days: ["Søndag", "Mandag", "Tirsdag", "Onsdag", "Torsdag", "Fredag", "Lørdag", "Søndag"], 8 | daysShort: ["Søn", "Man", "Tir", "Ons", "Tor", "Fre", "Lør", "Søn"], 9 | daysMin: ["Sø", "Ma", "Ti", "On", "To", "Fr", "Lø", "Sø"], 10 | months: ["Januar", "Februar", "Mars", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November", "Desember"], 11 | monthsShort: ["Jan", "Feb", "Mar", "Apr", "Mai", "Jun", "Jul", "Aug", "Sep", "Okt", "Nov", "Des"], 12 | today: "I Dag", 13 | suffix: [], 14 | meridiem: [] 15 | }; 16 | }(jQuery)); -------------------------------------------------------------------------------- /angular-datetimepicker/libs/bootstrap-datetimepicker/js/locales/bootstrap-datetimepicker.nl.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Dutch translation for bootstrap-datetimepicker 3 | * Reinier Goltstein 4 | */ 5 | ;(function($){ 6 | $.fn.datetimepicker.dates['nl'] = { 7 | days: ["Zondag", "Maandag", "Dinsdag", "Woensdag", "Donderdag", "Vrijdag", "Zaterdag", "Zondag"], 8 | daysShort: ["Zo", "Ma", "Di", "Wo", "Do", "Vr", "Za", "Zo"], 9 | daysMin: ["Zo", "Ma", "Di", "Wo", "Do", "Vr", "Za", "Zo"], 10 | months: ["Januari", "Februari", "Maart", "April", "Mei", "Juni", "Juli", "Augustus", "September", "Oktober", "November", "December"], 11 | monthsShort: ["Jan", "Feb", "Mrt", "Apr", "Mei", "Jun", "Jul", "Aug", "Sep", "Okt", "Nov", "Dec"], 12 | today: "Vandaag", 13 | suffix: [], 14 | meridiem: [] 15 | }; 16 | }(jQuery)); 17 | -------------------------------------------------------------------------------- /angular-datetimepicker/libs/bootstrap-datetimepicker/js/locales/bootstrap-datetimepicker.no.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Norwegian translation for bootstrap-datetimepicker 3 | * Rune Warhuus 4 | */ 5 | ;(function($){ 6 | $.fn.datetimepicker.dates['no'] = { 7 | days: ["Søndag", "Mandag", "Tirsdag", "Onsdag", "Torsdag", "Fredag", "Lørdag", "Søndag"], 8 | daysShort: ["Søn", "Man", "Tir", "Ons", "Tor", "Fre", "Lør", "Søn"], 9 | daysMin: ["Sø", "Ma", "Ti", "On", "To", "Fr", "Lø", "Sø"], 10 | months: ["Januar", "Februar", "Mars", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November", "Desember"], 11 | monthsShort: ["Jan", "Feb", "Mar", "Apr", "Mai", "Jun", "Jul", "Aug", "Sep", "Okt", "Nov", "Des"], 12 | today: "I Dag", 13 | suffix: [], 14 | meridiem: [] 15 | }; 16 | }(jQuery)); 17 | -------------------------------------------------------------------------------- /angular-datetimepicker/libs/bootstrap-datetimepicker/js/locales/bootstrap-datetimepicker.pl.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Polish translation for bootstrap-datetimepicker 3 | * Robert 4 | */ 5 | ;(function($){ 6 | $.fn.datetimepicker.dates['pl'] = { 7 | days: ["Niedziela", "Poniedziałek", "Wtorek", "Środa", "Czwartek", "Piątek", "Sobota", "Niedziela"], 8 | daysShort: ["Nie", "Pn", "Wt", "Śr", "Czw", "Pt", "So", "Nie"], 9 | daysMin: ["N", "Pn", "Wt", "Śr", "Cz", "Pt", "So", "N"], 10 | months: ["Styczeń", "Luty", "Marzec", "Kwiecień", "Maj", "Czerwiec", "Lipiec", "Sierpień", "Wrzesień", "Październik", "Listopad", "Grudzień"], 11 | monthsShort: ["Sty", "Lu", "Mar", "Kw", "Maj", "Cze", "Lip", "Sie", "Wrz", "Pa", "Lis", "Gru"], 12 | today: "Dzisiaj", 13 | suffix: [], 14 | meridiem: [], 15 | weekStart: 1 16 | }; 17 | }(jQuery)); 18 | -------------------------------------------------------------------------------- /angular-datetimepicker/libs/bootstrap-datetimepicker/js/locales/bootstrap-datetimepicker.pt-BR.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Brazilian translation for bootstrap-datetimepicker 3 | * Cauan Cabral 4 | */ 5 | ;(function($){ 6 | $.fn.datetimepicker.dates['pt-BR'] = { 7 | format: 'dd/mm/yyyy', 8 | days: ["Domingo", "Segunda", "Terça", "Quarta", "Quinta", "Sexta", "Sábado", "Domingo"], 9 | daysShort: ["Dom", "Seg", "Ter", "Qua", "Qui", "Sex", "Sáb", "Dom"], 10 | daysMin: ["Do", "Se", "Te", "Qu", "Qu", "Se", "Sa", "Do"], 11 | months: ["Janeiro", "Fevereiro", "Março", "Abril", "Maio", "Junho", "Julho", "Agosto", "Setembro", "Outubro", "Novembro", "Dezembro"], 12 | monthsShort: ["Jan", "Fev", "Mar", "Abr", "Mai", "Jun", "Jul", "Ago", "Set", "Out", "Nov", "Dez"], 13 | today: "Hoje", 14 | suffix: [], 15 | meridiem: [] 16 | }; 17 | }(jQuery)); 18 | -------------------------------------------------------------------------------- /angular-datetimepicker/libs/bootstrap-datetimepicker/js/locales/bootstrap-datetimepicker.pt.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Portuguese translation for bootstrap-datetimepicker 3 | * Original code: Cauan Cabral 4 | * Tiago Melo 5 | */ 6 | ;(function($){ 7 | $.fn.datetimepicker.dates['pt'] = { 8 | days: ["Domingo", "Segunda", "Terça", "Quarta", "Quinta", "Sexta", "Sábado", "Domingo"], 9 | daysShort: ["Dom", "Seg", "Ter", "Qua", "Qui", "Sex", "Sáb", "Dom"], 10 | daysMin: ["Do", "Se", "Te", "Qu", "Qu", "Se", "Sa", "Do"], 11 | months: ["Janeiro", "Fevereiro", "Março", "Abril", "Maio", "Junho", "Julho", "Agosto", "Setembro", "Outubro", "Novembro", "Dezembro"], 12 | monthsShort: ["Jan", "Fev", "Mar", "Abr", "Mai", "Jun", "Jul", "Ago", "Set", "Out", "Nov", "Dez"], 13 | suffix: [], 14 | meridiem: ["am","pm"], 15 | today: "Hoje" 16 | }; 17 | }(jQuery)); 18 | -------------------------------------------------------------------------------- /angular-datetimepicker/libs/bootstrap-datetimepicker/js/locales/bootstrap-datetimepicker.ro.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Romanian translation for bootstrap-datetimepicker 3 | * Cristian Vasile 4 | */ 5 | ;(function($){ 6 | $.fn.datetimepicker.dates['ro'] = { 7 | days: ["Duminică", "Luni", "Marţi", "Miercuri", "Joi", "Vineri", "Sâmbătă", "Duminică"], 8 | daysShort: ["Dum", "Lun", "Mar", "Mie", "Joi", "Vin", "Sâm", "Dum"], 9 | daysMin: ["Du", "Lu", "Ma", "Mi", "Jo", "Vi", "Sâ", "Du"], 10 | months: ["Ianuarie", "Februarie", "Martie", "Aprilie", "Mai", "Iunie", "Iulie", "August", "Septembrie", "Octombrie", "Noiembrie", "Decembrie"], 11 | monthsShort: ["Ian", "Feb", "Mar", "Apr", "Mai", "Iun", "Iul", "Aug", "Sep", "Oct", "Nov", "Dec"], 12 | today: "Astăzi", 13 | suffix: [], 14 | meridiem: [], 15 | weekStart: 1 16 | }; 17 | }(jQuery)); 18 | -------------------------------------------------------------------------------- /angular-datetimepicker/libs/bootstrap-datetimepicker/js/locales/bootstrap-datetimepicker.rs-latin.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Serbian latin translation for bootstrap-datetimepicker 3 | * Bojan Milosavlević 4 | */ 5 | ;(function($){ 6 | $.fn.datetimepicker.dates['rs'] = { 7 | days: ["Nedelja","Ponedeljak", "Utorak", "Sreda", "Četvrtak", "Petak", "Subota", "Nedelja"], 8 | daysShort: ["Ned", "Pon", "Uto", "Sre", "Čet", "Pet", "Sub", "Ned"], 9 | daysMin: ["N", "Po", "U", "Sr", "Č", "Pe", "Su", "N"], 10 | months: ["Januar", "Februar", "Mart", "April", "Maj", "Jun", "Jul", "Avgust", "Septembar", "Oktobar", "Novembar", "Decembar"], 11 | monthsShort: ["Jan", "Feb", "Mar", "Apr", "Maj", "Jun", "Jul", "Avg", "Sep", "Okt", "Nov", "Dec"], 12 | today: "Danas", 13 | suffix: [], 14 | meridiem: [] 15 | }; 16 | }(jQuery)); 17 | -------------------------------------------------------------------------------- /angular-datetimepicker/libs/bootstrap-datetimepicker/js/locales/bootstrap-datetimepicker.rs.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Serbian cyrillic translation for bootstrap-datetimepicker 3 | * Bojan Milosavlević 4 | */ 5 | ;(function($){ 6 | $.fn.datetimepicker.dates['rs'] = { 7 | days: ["Недеља","Понедељак", "Уторак", "Среда", "Четвртак", "Петак", "Субота", "Недеља"], 8 | daysShort: ["Нед", "Пон", "Уто", "Сре", "Чет", "Пет", "Суб", "Нед"], 9 | daysMin: ["Н", "По", "У", "Ср", "Ч", "Пе", "Су", "Н"], 10 | months: ["Јануар", "Фебруар", "Март", "Април", "Мај", "Јун", "Јул", "Август", "Септембар", "Октобар", "Новембар", "Децембар"], 11 | monthsShort: ["Јан", "Феб", "Мар", "Апр", "Мај", "Јун", "Јул", "Авг", "Сеп", "Окт", "Нов", "Дец"], 12 | today: "Данас", 13 | suffix: [], 14 | meridiem: [] 15 | }; 16 | }(jQuery)); 17 | -------------------------------------------------------------------------------- /angular-datetimepicker/libs/bootstrap-datetimepicker/js/locales/bootstrap-datetimepicker.ru.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Russian translation for bootstrap-datetimepicker 3 | * Victor Taranenko 4 | */ 5 | ;(function($){ 6 | $.fn.datetimepicker.dates['ru'] = { 7 | days: ["Воскресенье", "Понедельник", "Вторник", "Среда", "Четверг", "Пятница", "Суббота", "Воскресенье"], 8 | daysShort: ["Вск", "Пнд", "Втр", "Срд", "Чтв", "Птн", "Суб", "Вск"], 9 | daysMin: ["Вс", "Пн", "Вт", "Ср", "Чт", "Пт", "Сб", "Вс"], 10 | months: ["Январь", "Февраль", "Март", "Апрель", "Май", "Июнь", "Июль", "Август", "Сентябрь", "Октябрь", "Ноябрь", "Декабрь"], 11 | monthsShort: ["Янв", "Фев", "Мар", "Апр", "Май", "Июн", "Июл", "Авг", "Сен", "Окт", "Ноя", "Дек"], 12 | today: "Сегодня", 13 | suffix: [], 14 | meridiem: [] 15 | }; 16 | }(jQuery)); -------------------------------------------------------------------------------- /angular-datetimepicker/libs/bootstrap-datetimepicker/js/locales/bootstrap-datetimepicker.sk.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Slovak translation for bootstrap-datetimepicker 3 | * Marek Lichtner 4 | * Fixes by Michal Remiš 5 | */ 6 | ;(function($){ 7 | $.fn.datetimepicker.dates["sk"] = { 8 | days: ["Nedeľa", "Pondelok", "Utorok", "Streda", "Štvrtok", "Piatok", "Sobota", "Nedeľa"], 9 | daysShort: ["Ned", "Pon", "Uto", "Str", "Štv", "Pia", "Sob", "Ned"], 10 | daysMin: ["Ne", "Po", "Ut", "St", "Št", "Pi", "So", "Ne"], 11 | months: ["Január", "Február", "Marec", "Apríl", "Máj", "Jún", "Júl", "August", "September", "Október", "November", "December"], 12 | monthsShort: ["Jan", "Feb", "Mar", "Apr", "Máj", "Jún", "Júl", "Aug", "Sep", "Okt", "Nov", "Dec"], 13 | today: "Dnes", 14 | suffix: [], 15 | meridiem: [], 16 | weekStart: 1, 17 | format: "dd.mm.yyyy" 18 | }; 19 | }(jQuery)); 20 | -------------------------------------------------------------------------------- /angular-datetimepicker/libs/bootstrap-datetimepicker/js/locales/bootstrap-datetimepicker.sl.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Slovene translation for bootstrap-datetimepicker 3 | * Gregor Rudolf 4 | */ 5 | ;(function($){ 6 | $.fn.datetimepicker.dates['sl'] = { 7 | days: ["Nedelja", "Ponedeljek", "Torek", "Sreda", "Četrtek", "Petek", "Sobota", "Nedelja"], 8 | daysShort: ["Ned", "Pon", "Tor", "Sre", "Čet", "Pet", "Sob", "Ned"], 9 | daysMin: ["Ne", "Po", "To", "Sr", "Če", "Pe", "So", "Ne"], 10 | months: ["Januar", "Februar", "Marec", "April", "Maj", "Junij", "Julij", "Avgust", "September", "Oktober", "November", "December"], 11 | monthsShort: ["Jan", "Feb", "Mar", "Apr", "Maj", "Jun", "Jul", "Avg", "Sep", "Okt", "Nov", "Dec"], 12 | today: "Danes", 13 | suffix: [], 14 | meridiem: [] 15 | }; 16 | }(jQuery)); 17 | -------------------------------------------------------------------------------- /angular-datetimepicker/libs/bootstrap-datetimepicker/js/locales/bootstrap-datetimepicker.sv.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Swedish translation for bootstrap-datetimepicker 3 | * Patrik Ragnarsson 4 | */ 5 | ;(function($){ 6 | $.fn.datetimepicker.dates['sv'] = { 7 | days: ["Söndag", "Måndag", "Tisdag", "Onsdag", "Torsdag", "Fredag", "Lördag", "Söndag"], 8 | daysShort: ["Sön", "Mån", "Tis", "Ons", "Tor", "Fre", "Lör", "Sön"], 9 | daysMin: ["Sö", "Må", "Ti", "On", "To", "Fr", "Lö", "Sö"], 10 | months: ["Januari", "Februari", "Mars", "April", "Maj", "Juni", "Juli", "Augusti", "September", "Oktober", "November", "December"], 11 | monthsShort: ["Jan", "Feb", "Mar", "Apr", "Maj", "Jun", "Jul", "Aug", "Sep", "Okt", "Nov", "Dec"], 12 | today: "I Dag", 13 | suffix: [], 14 | meridiem: [] 15 | }; 16 | }(jQuery)); 17 | -------------------------------------------------------------------------------- /angular-datetimepicker/libs/bootstrap-datetimepicker/js/locales/bootstrap-datetimepicker.sw.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Swahili translation for bootstrap-datetimepicker 3 | * Edwin Mugendi 4 | * Source: http://scriptsource.org/cms/scripts/page.php?item_id=entry_detail&uid=xnfaqyzcku 5 | */ 6 | ;(function($){ 7 | $.fn.datetimepicker.dates['sw'] = { 8 | days: ["Jumapili", "Jumatatu", "Jumanne", "Jumatano", "Alhamisi", "Ijumaa", "Jumamosi", "Jumapili"], 9 | daysShort: ["J2", "J3", "J4", "J5", "Alh", "Ij", "J1", "J2"], 10 | daysMin: ["2", "3", "4", "5", "A", "I", "1", "2"], 11 | months: ["Januari", "Februari", "Machi", "Aprili", "Mei", "Juni", "Julai", "Agosti", "Septemba", "Oktoba", "Novemba", "Desemba"], 12 | monthsShort: ["Jan", "Feb", "Mac", "Apr", "Mei", "Jun", "Jul", "Ago", "Sep", "Okt", "Nov", "Des"], 13 | today: "Leo", 14 | suffix: [], 15 | meridiem: [] 16 | }; 17 | }(jQuery)); 18 | -------------------------------------------------------------------------------- /angular-datetimepicker/libs/bootstrap-datetimepicker/js/locales/bootstrap-datetimepicker.th.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Thai translation for bootstrap-datetimepicker 3 | * Suchau Jiraprapot 4 | */ 5 | ;(function($){ 6 | $.fn.datetimepicker.dates['th'] = { 7 | days: ["อาทิตย์", "จันทร์", "อังคาร", "พุธ", "พฤหัส", "ศุกร์", "เสาร์", "อาทิตย์"], 8 | daysShort: ["อา", "จ", "อ", "พ", "พฤ", "ศ", "ส", "อา"], 9 | daysMin: ["อา", "จ", "อ", "พ", "พฤ", "ศ", "ส", "อา"], 10 | months: ["มกราคม", "กุมภาพันธ์", "มีนาคม", "เมษายน", "พฤษภาคม", "มิถุนายน", "กรกฎาคม", "สิงหาคม", "กันยายน", "ตุลาคม", "พฤศจิกายน", "ธันวาคม"], 11 | monthsShort: ["ม.ค.", "ก.พ.", "มี.ค.", "เม.ย.", "พ.ค.", "มิ.ย.", "ก.ค.", "ส.ค.", "ก.ย.", "ต.ค.", "พ.ย.", "ธ.ค."], 12 | today: "วันนี้", 13 | suffix: [], 14 | meridiem: [] 15 | }; 16 | }(jQuery)); 17 | -------------------------------------------------------------------------------- /angular-datetimepicker/libs/bootstrap-datetimepicker/js/locales/bootstrap-datetimepicker.tr.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Turkish translation for bootstrap-datetimepicker 3 | * Serkan Algur 4 | */ 5 | ;(function($){ 6 | $.fn.datetimepicker.dates['tr'] = { 7 | days: ["Pazar", "Pazartesi", "Salı", "Çarşamba", "Perşembe", "Cuma", "Cumartesi", "Pazar"], 8 | daysShort: ["Pz", "Pzt", "Sal", "Çrş", "Prş", "Cu", "Cts", "Pz"], 9 | daysMin: ["Pz", "Pzt", "Sa", "Çr", "Pr", "Cu", "Ct", "Pz"], 10 | months: ["Ocak", "Şubat", "Mart", "Nisan", "Mayıs", "Haziran", "Temmuz", "Ağustos", "Eylül", "Ekim", "Kasım", "Aralık"], 11 | monthsShort: ["Oca", "Şub", "Mar", "Nis", "May", "Haz", "Tem", "Ağu", "Eyl", "Eki", "Kas", "Ara"], 12 | today: "Bugün", 13 | suffix: [], 14 | meridiem: [] 15 | }; 16 | }(jQuery)); 17 | 18 | -------------------------------------------------------------------------------- /angular-datetimepicker/libs/bootstrap-datetimepicker/js/locales/bootstrap-datetimepicker.ua.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Ukrainian translation for bootstrap-datepicker 3 | * Igor Polynets 4 | */ 5 | ;(function($){ 6 | $.fn.datetimepicker.dates['ua'] = { 7 | days: ["Неділя", "Понеділок", "Вівторок", "Середа", "Четверг", "П'ятниця", "Субота", "Неділя"], 8 | daysShort: ["Нед", "Пнд", "Втр", "Срд", "Чтв", "Птн", "Суб", "Нед"], 9 | daysMin: ["Нд", "Пн", "Вт", "Ср", "Чт", "Пт", "Сб", "Нд"], 10 | months: ["Cічень", "Лютий", "Березень", "Квітень", "Травень", "Червень", "Липень", "Серпень", "Вересень", "Жовтень", "Листопад", "Грудень"], 11 | monthsShort: ["Січ", "Лют", "Бер", "Квт", "Трв", "Чер", "Лип", "Сер", "Вер", "Жов", "Лис", "Грд"], 12 | today: "Сьогодні", 13 | weekStart: 1 14 | }; 15 | }(jQuery)); 16 | -------------------------------------------------------------------------------- /angular-datetimepicker/libs/bootstrap-datetimepicker/js/locales/bootstrap-datetimepicker.uk.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Ukrainian translation for bootstrap-datetimepicker 3 | * Andrey Vityuk 4 | */ 5 | ;(function($){ 6 | $.fn.datetimepicker.dates['uk'] = { 7 | days: ["Неділя", "Понеділок", "Вівторок", "Середа", "Четвер", "П'ятниця", "Субота", "Неділя"], 8 | daysShort: ["Нед", "Пнд", "Втр", "Срд", "Чтв", "Птн", "Суб", "Нед"], 9 | daysMin: ["Нд", "Пн", "Вт", "Ср", "Чт", "Пт", "Сб", "Нд"], 10 | months: ["Січень", "Лютий", "Березень", "Квітень", "Травень", "Червень", "Липень", "Серпень", "Вересень", "Жовтень", "Листопад", "Грудень"], 11 | monthsShort: ["Січ", "Лют", "Бер", "Кві", "Тра", "Чер", "Лип", "Сер", "Вер", "Жов", "Лис", "Гру"], 12 | today: "Сьогодні", 13 | suffix: [], 14 | meridiem: [] 15 | }; 16 | }(jQuery)); -------------------------------------------------------------------------------- /angular-datetimepicker/libs/bootstrap-datetimepicker/js/locales/bootstrap-datetimepicker.zh-CN.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Simplified Chinese translation for bootstrap-datetimepicker 3 | * Yuan Cheung 4 | */ 5 | ;(function($){ 6 | $.fn.datetimepicker.dates['zh-CN'] = { 7 | days: ["星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六", "星期日"], 8 | daysShort: ["周日", "周一", "周二", "周三", "周四", "周五", "周六", "周日"], 9 | daysMin: ["日", "一", "二", "三", "四", "五", "六", "日"], 10 | months: ["一月", "二月", "三月", "四月", "五月", "六月", "七月", "八月", "九月", "十月", "十一月", "十二月"], 11 | monthsShort: ["一月", "二月", "三月", "四月", "五月", "六月", "七月", "八月", "九月", "十月", "十一月", "十二月"], 12 | today: "今天", 13 | suffix: [], 14 | meridiem: ["上午", "下午"], 15 | clear:"清除" 16 | }; 17 | }(jQuery)); 18 | -------------------------------------------------------------------------------- /angular-datetimepicker/libs/bootstrap-datetimepicker/js/locales/bootstrap-datetimepicker.zh-TW.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Traditional Chinese translation for bootstrap-datetimepicker 3 | * Rung-Sheng Jang 4 | */ 5 | ;(function($){ 6 | $.fn.datetimepicker.dates['zh-TW'] = { 7 | days: ["星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六", "星期日"], 8 | daysShort: ["周日", "周一", "周二", "周三", "周四", "周五", "周六", "周日"], 9 | daysMin: ["日", "一", "二", "三", "四", "五", "六", "日"], 10 | months: ["一月", "二月", "三月", "四月", "五月", "六月", "七月", "八月", "九月", "十月", "十一月", "十二月"], 11 | monthsShort: ["一月", "二月", "三月", "四月", "五月", "六月", "七月", "八月", "九月", "十月", "十一月", "十二月"], 12 | today: "今天", 13 | suffix: [], 14 | meridiem: ["上午", "下午"] 15 | }; 16 | }(jQuery)); 17 | -------------------------------------------------------------------------------- /angular-datetimepicker/libs/bootstrap-datetimepicker/minify.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | # You can download yuicompressor here https://github.com/yui/yuicompressor/releases/tag/v2.4.8 4 | # Using WGET: $ wget https://github.com/yui/yuicompressor/releases/download/v2.4.8/yuicompressor-2.4.8.jar 5 | # 6 | # Put the JAR file into root of this project! 7 | # Make this script executable and then run: ./minify.sh 8 | 9 | java -jar yuicompressor-2.4.8.jar css/bootstrap-datetimepicker.css > css/bootstrap-datetimepicker.min.css 10 | java -jar yuicompressor-2.4.8.jar js/bootstrap-datetimepicker.js > js/bootstrap-datetimepicker.min.js 11 | -------------------------------------------------------------------------------- /angular-datetimepicker/libs/bootstrap-datetimepicker/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "bootstrap-datetime-picker", 3 | "homepage": "http://www.malot.fr/bootstrap-datetimepicker/", 4 | "description": "Both Date and Time picker widget based on twitter bootstrap", 5 | "version": "2.3.11", 6 | "license": "Apache 2.0", 7 | "author": { 8 | "name": "Sebastien Malot" 9 | }, 10 | "maintainers": [{ 11 | "name": "Sebastien Malot" 12 | },{ 13 | "name": "Christian Vaas", 14 | "email": "christianvaas@auspex.eu" 15 | } 16 | ], 17 | "keywords": [ 18 | "bootstrap", "datetime", "picker" 19 | ], 20 | "repository": { 21 | "type": "git", 22 | "url": "git://github.com/smalot/bootstrap-datetimepicker.git" 23 | }, 24 | "bugs": { 25 | "url": "https://github.com/smalot/bootstrap-datetimepicker" 26 | }, 27 | "main": "./js/bootstrap-datetimepicker.js" 28 | } 29 | -------------------------------------------------------------------------------- /angular-datetimepicker/libs/bootstrap-datetimepicker/sample in bootstrap v2/bootstrap/img/glyphicons-halflings-white.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/narol1024/angular-components/99de04f9343903e8037d7cee08a24625c1d3f22c/angular-datetimepicker/libs/bootstrap-datetimepicker/sample in bootstrap v2/bootstrap/img/glyphicons-halflings-white.png -------------------------------------------------------------------------------- /angular-datetimepicker/libs/bootstrap-datetimepicker/sample in bootstrap v2/bootstrap/img/glyphicons-halflings.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/narol1024/angular-components/99de04f9343903e8037d7cee08a24625c1d3f22c/angular-datetimepicker/libs/bootstrap-datetimepicker/sample in bootstrap v2/bootstrap/img/glyphicons-halflings.png -------------------------------------------------------------------------------- /angular-datetimepicker/libs/bootstrap-datetimepicker/sample in bootstrap v3/bootstrap/fonts/glyphicons-halflings-regular.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/narol1024/angular-components/99de04f9343903e8037d7cee08a24625c1d3f22c/angular-datetimepicker/libs/bootstrap-datetimepicker/sample in bootstrap v3/bootstrap/fonts/glyphicons-halflings-regular.eot -------------------------------------------------------------------------------- /angular-datetimepicker/libs/bootstrap-datetimepicker/sample in bootstrap v3/bootstrap/fonts/glyphicons-halflings-regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/narol1024/angular-components/99de04f9343903e8037d7cee08a24625c1d3f22c/angular-datetimepicker/libs/bootstrap-datetimepicker/sample in bootstrap v3/bootstrap/fonts/glyphicons-halflings-regular.ttf -------------------------------------------------------------------------------- /angular-datetimepicker/libs/bootstrap-datetimepicker/sample in bootstrap v3/bootstrap/fonts/glyphicons-halflings-regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/narol1024/angular-components/99de04f9343903e8037d7cee08a24625c1d3f22c/angular-datetimepicker/libs/bootstrap-datetimepicker/sample in bootstrap v3/bootstrap/fonts/glyphicons-halflings-regular.woff -------------------------------------------------------------------------------- /angular-datetimepicker/libs/bootstrap-datetimepicker/screenshot/standard_day.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/narol1024/angular-components/99de04f9343903e8037d7cee08a24625c1d3f22c/angular-datetimepicker/libs/bootstrap-datetimepicker/screenshot/standard_day.png -------------------------------------------------------------------------------- /angular-datetimepicker/libs/bootstrap-datetimepicker/screenshot/standard_day_meridian.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/narol1024/angular-components/99de04f9343903e8037d7cee08a24625c1d3f22c/angular-datetimepicker/libs/bootstrap-datetimepicker/screenshot/standard_day_meridian.png -------------------------------------------------------------------------------- /angular-datetimepicker/libs/bootstrap-datetimepicker/screenshot/standard_decade.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/narol1024/angular-components/99de04f9343903e8037d7cee08a24625c1d3f22c/angular-datetimepicker/libs/bootstrap-datetimepicker/screenshot/standard_decade.png -------------------------------------------------------------------------------- /angular-datetimepicker/libs/bootstrap-datetimepicker/screenshot/standard_full.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/narol1024/angular-components/99de04f9343903e8037d7cee08a24625c1d3f22c/angular-datetimepicker/libs/bootstrap-datetimepicker/screenshot/standard_full.png -------------------------------------------------------------------------------- /angular-datetimepicker/libs/bootstrap-datetimepicker/screenshot/standard_hour.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/narol1024/angular-components/99de04f9343903e8037d7cee08a24625c1d3f22c/angular-datetimepicker/libs/bootstrap-datetimepicker/screenshot/standard_hour.png -------------------------------------------------------------------------------- /angular-datetimepicker/libs/bootstrap-datetimepicker/screenshot/standard_hour_meridian.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/narol1024/angular-components/99de04f9343903e8037d7cee08a24625c1d3f22c/angular-datetimepicker/libs/bootstrap-datetimepicker/screenshot/standard_hour_meridian.png -------------------------------------------------------------------------------- /angular-datetimepicker/libs/bootstrap-datetimepicker/screenshot/standard_month.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/narol1024/angular-components/99de04f9343903e8037d7cee08a24625c1d3f22c/angular-datetimepicker/libs/bootstrap-datetimepicker/screenshot/standard_month.png -------------------------------------------------------------------------------- /angular-datetimepicker/libs/bootstrap-datetimepicker/screenshot/standard_year.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/narol1024/angular-components/99de04f9343903e8037d7cee08a24625c1d3f22c/angular-datetimepicker/libs/bootstrap-datetimepicker/screenshot/standard_year.png -------------------------------------------------------------------------------- /angular-datetimepicker/libs/bootstrap-datetimepicker/tests/README.md: -------------------------------------------------------------------------------- 1 | Unit tests, written with [QUnit](http://docs.jquery.com/QUnit), are used to 2 | expose bugs for squashing, prevent bugs from respawning, and suppress new 3 | bugs when adding new features and making changes. 4 | 5 | # Running the tests 6 | 7 | The simplest way to run the tests is to open `tests/tests.html` in your browser. 8 | The test suites will automatically run themselves and present their results. 9 | 10 | To run the tests from the command line, download and install 11 | [PhantomJS](http://phantomjs.org/), and run `run-qunit.js` with it: 12 | 13 | $ cd tests/ 14 | $ phantomjs run-qunit.js tests.html 15 | 16 | Failed tests and their failed assertions will be printed to the console. A 17 | results summary will be printed at the end. 18 | 19 | To generate coverage statistics, use [JSCoverage](http://siliconforks.com/jscoverage/) 20 | to instrument the js files: 21 | 22 | $ cd tests/ 23 | $ jscoverage ../js/ ../instrumented/ 24 | $ phantomjs run-qunit.js tests.html 25 | 26 | Coverage percentage will be included in the output summary, and a highlighted 27 | line-by-line html file will be generated. 28 | 29 | # Shout-out 30 | 31 | Thanks to Rod @ While One Fork for the 32 | [CIS guide](http://whileonefork.blogspot.com/2011/10/integrating-javascript-tests-into-cli.html) 33 | on putting the above together. 34 | 35 | # Adding tests 36 | 37 | Tests go in js files in the `tests/suites/` directory tree. QUnit organizes 38 | tests into suites called "modules"; there is one module per js file. If the 39 | tests you are adding do not fit into an existing module, create a new one at 40 | `tests/suites/.js`, where `` is a broad yet 41 | descriptive name for the suite. If tests have many year-specific cases (ie, 42 | behave differently in leap years vs normal years, or have specific buggy 43 | behavior in a certain year), create the module in a new directory, 44 | `tests/suites//.js`, where `` is the decriptive 45 | name and `` is the four-digit year the tests pertain to. 46 | 47 | In order for new tests to be run, they must be imported into `tests/tests.html`. 48 | Find the script includes headed by the html comment ``, and 49 | add a new one to the list which includes the new js files. 50 | 51 | # Can I use this? 52 | 53 | By all means, please do! Just note that I stopped working on this structure 54 | once it fit my needs, there's no real support for it, and it may change in the 55 | future. Otherwise, have at it. 56 | -------------------------------------------------------------------------------- /angular-datetimepicker/libs/bootstrap-datetimepicker/tests/_coverage.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 19 | 20 | 21 | 22 | COLORIZED_LINE_HTML 23 | 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /angular-datetimepicker/libs/bootstrap-datetimepicker/tests/assets/coverage.js: -------------------------------------------------------------------------------- 1 | (function(){ 2 | //we want this at global scope so outside callers can find it. In a more realistic implementation we 3 | //should probably put it in a namespace. 4 | window.getCoverageByLine = function(silent) { 5 | var key = null; 6 | var lines = null; 7 | var source = null; 8 | //look for code coverage data 9 | if (typeof window._$jscoverage === 'object') { 10 | for (key in _$jscoverage) {} 11 | lines = _$jscoverage[key]; 12 | } 13 | 14 | if (!lines && !silent) { 15 | console.log('code coverage data is NOT available'); 16 | } 17 | 18 | return { 'key': key, 'lines': lines }; 19 | }; 20 | 21 | QUnit.done = function(t) { 22 | var cvgInfo = getCoverageByLine(true); 23 | if (!!cvgInfo.key) { 24 | var testableLines = 0; 25 | var testedLines = 0; 26 | var untestableLines = 0; 27 | for (lineIdx in cvgInfo.lines) { 28 | var cvg = cvgInfo.lines[lineIdx]; 29 | if (typeof cvg === 'number') { 30 | testableLines += 1; 31 | if (cvg > 0) { 32 | testedLines += 1; 33 | } 34 | } else { 35 | untestableLines += 1; 36 | } 37 | } 38 | var coverage = '' + Math.floor(100 * testedLines / testableLines) + '%'; 39 | 40 | var result = document.getElementById('qunit-testresult'); 41 | if (result != null) { 42 | result.innerHTML = result.innerHTML + ' ' + coverage + ' test coverage of ' + cvgInfo.key; 43 | } else { 44 | console.log('can\'t find test-result element to update'); 45 | } 46 | } 47 | }; 48 | }()); -------------------------------------------------------------------------------- /angular-datetimepicker/libs/bootstrap-datetimepicker/tests/assets/mock.js: -------------------------------------------------------------------------------- 1 | ;(function(){ 2 | 3 | window.patch_date = function patch(f){ 4 | var NativeDate = window.Date; 5 | var date = function date(y,m,d,h,i,s,j){ 6 | switch(arguments.length){ 7 | case 0: return date.now ? new NativeDate(date.now) : new NativeDate(); 8 | case 1: return new NativeDate(y); 9 | case 2: return new NativeDate(y,m); 10 | case 3: return new NativeDate(y,m,d); 11 | case 4: return new NativeDate(y,m,d,h); 12 | case 5: return new NativeDate(y,m,d,h,i); 13 | case 6: return new NativeDate(y,m,d,h,i,s); 14 | case 7: return new NativeDate(y,m,d,h,i,s,j); 15 | } 16 | }; 17 | date.UTC = NativeDate.UTC; 18 | return function(){ 19 | Array.prototype.push.call(arguments, date); 20 | window.Date = date; 21 | res = f.apply(this, arguments); 22 | window.Date = NativeDate; 23 | } 24 | } 25 | 26 | }()); 27 | -------------------------------------------------------------------------------- /angular-datetimepicker/libs/bootstrap-datetimepicker/tests/assets/qunit-logging.js: -------------------------------------------------------------------------------- 1 | // Dummy logging calls (ie, if tests are run in IE) 2 | window.console = window.console || {}; 3 | window.console.log = window.console.log || function(){}; 4 | window.console.debug = window.console.debug || function(){}; 5 | window.console.info = window.console.info || function(){}; 6 | window.console.warn = window.console.warn || function(){}; 7 | window.console.error = window.console.error || function(){}; 8 | 9 | (function() { 10 | var modName, testName; 11 | 12 | //arg: { name } 13 | QUnit.testStart = function(t) { 14 | modName = t.module; 15 | testName = t.name; 16 | }; 17 | 18 | //arg: { name, failed, passed, total } 19 | QUnit.testDone = function(t) { 20 | if (t.failed) 21 | console.log('Test "' + t.module + ': ' + t.name + '" completed: ' + (0 === t.failed ? 'pass' : 'FAIL') + '\n') 22 | }; 23 | 24 | //{ result, actual, expected, message } 25 | QUnit.log = function(t) { 26 | if (!t.result) 27 | console.log('Test "' + modName + ': ' + testName + '" assertion failed. Expected <' + t.expected + '> Actual <' + t.actual + '>' + (t.message ? ': \'' + t.message + '\'' : '')); 28 | }; 29 | }()); 30 | -------------------------------------------------------------------------------- /angular-datetimepicker/libs/bootstrap-datetimepicker/tests/assets/utils.js: -------------------------------------------------------------------------------- 1 | function UTCDate(){ 2 | return new Date(Date.UTC.apply(Date, arguments)); 3 | } 4 | 5 | 6 | function format_date(date){ 7 | var y = date.getUTCFullYear(), 8 | m = date.getUTCMonth() + 1, 9 | d = date.getUTCDate(), 10 | h = date.getUTCHours(), 11 | i = date.getUTCMinutes(), 12 | s = date.getUTCSeconds(), 13 | l = date.getUTCMilliseconds(); 14 | function z(i){return (i <= 9 ? '0'+i : i);} 15 | return y+'-'+z(m)+'-'+z(d)+' '+z(h)+':'+z(i)+':'+z(s)+'.'+z(l); 16 | } 17 | 18 | 19 | function datesEqual(actual, expected, message){ 20 | QUnit.push(QUnit.equiv(actual, expected), format_date(actual), format_date(expected), message); 21 | } 22 | -------------------------------------------------------------------------------- /angular-datetimepicker/libs/bootstrap-datetimepicker/tests/suites/inline.js: -------------------------------------------------------------------------------- 1 | module('Inline', { 2 | setup: function(){ 3 | this.component = $('
') 4 | .appendTo('#qunit-fixture') 5 | .datetimepicker({format: "dd-mm-yyyy"}); 6 | this.dp = this.component.data('datetimepicker') 7 | this.picker = this.dp.picker; 8 | }, 9 | teardown: function(){ 10 | this.picker.remove(); 11 | } 12 | }); 13 | 14 | 15 | test('Picker gets date/viewDate from data-date attr', function(){ 16 | datesEqual(this.dp.date, UTCDate(2012, 1, 12)); 17 | datesEqual(this.dp.viewDate, UTCDate(2012, 1, 12)); 18 | }); 19 | 20 | 21 | test('Visible after init', function(){ 22 | ok(this.picker.is(':visible')); 23 | }); 24 | 25 | test('update', function(){ 26 | this.dp.update('13-03-2012') 27 | datesEqual(this.dp.date, UTCDate(2012, 2, 13)); 28 | }); 29 | -------------------------------------------------------------------------------- /angular-datetimepicker/libs/bootstrap-datetimepicker/tests/suites/keyboard_navigation/all.js: -------------------------------------------------------------------------------- 1 | module('Keyboard Navigation (All)', { 2 | setup: function(){ 3 | this.input = $('') 4 | .appendTo('#qunit-fixture') 5 | .datetimepicker({format: "dd-mm-yyyy"}) 6 | .focus(); // Activate for visibility checks 7 | this.dp = this.input.data('datetimepicker') 8 | this.picker = this.dp.picker; 9 | }, 10 | teardown: function(){ 11 | this.picker.remove(); 12 | } 13 | }); 14 | 15 | test('TAB hides picker', function(){ 16 | var target; 17 | 18 | ok(this.picker.is(':visible'), 'Picker is visible'); 19 | 20 | this.input.trigger({ 21 | type: 'keydown', 22 | keyCode: 9 23 | }); 24 | 25 | ok(this.picker.is(':not(:visible)'), 'Picker is hidden'); 26 | }); 27 | -------------------------------------------------------------------------------- /angular-datetimepicker/libs/bootstrap-datetimepicker/tests/suites/mouse_navigation/all.js: -------------------------------------------------------------------------------- 1 | module('Mouse Navigation (All)', { 2 | setup: function(){ 3 | this.input = $('') 4 | .appendTo('#qunit-fixture') 5 | .datetimepicker({format: "dd-mm-yyyy"}) 6 | .focus(); // Activate for visibility checks 7 | this.dp = this.input.data('datetimepicker') 8 | this.picker = this.dp.picker; 9 | }, 10 | teardown: function(){ 11 | this.picker.remove(); 12 | } 13 | }); 14 | 15 | test('Clicking datetimepicker does not hide datetimepicker', function(){ 16 | ok(this.picker.is(':visible'), 'Picker is visible'); 17 | this.picker.trigger('mousedown'); 18 | ok(this.picker.is(':visible'), 'Picker is still visible'); 19 | }); 20 | 21 | test('Clicking outside datetimepicker hides datetimepicker', function(){ 22 | var $otherelement = $('
'); 23 | $('body').append($otherelement); 24 | 25 | ok(this.picker.is(':visible'), 'Picker is visible'); 26 | this.input.trigger('click'); 27 | ok(this.picker.is(':visible'), 'Picker is still visible'); 28 | 29 | $otherelement.trigger('mousedown'); 30 | ok(this.picker.is(':not(:visible)'), 'Picker is hidden'); 31 | 32 | $otherelement.remove(); 33 | }); 34 | -------------------------------------------------------------------------------- /angular-datetimepicker/libs/bootstrap-datetimepicker/tests/tests.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 |

bootstrap-datetimepicker

40 |

41 |
42 |

43 |
    44 |
    45 | 46 | -------------------------------------------------------------------------------- /angular-datetimepicker/libs/bootstrap-datetimepicker/tests/tests.min.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 |

    bootstrap-datetimepicker

    40 |

    41 |
    42 |

    43 |
      44 |
      45 | 46 | 47 | -------------------------------------------------------------------------------- /angular-datetimepicker/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "angular-datetimepicker", 3 | "version": "1.0.0", 4 | "description": "angular-datetimepicker", 5 | "main": "index.js", 6 | "dependencies": { 7 | "gulp": "^3.9.0", 8 | "gulp-autoprefixer": "^3.1.0", 9 | "gulp-replace": "^0.5.4" 10 | }, 11 | "devDependencies": { 12 | "gulp-compass": "^2.1.0", 13 | "gulp-connect": "^2.3.1", 14 | "gulp-concat": "^2.6.0", 15 | "gulp-minify-css": "^1.2.1", 16 | "gulp-uglify": "^1.4.2", 17 | "gulp-rename": "*" 18 | }, 19 | "author": "jinying.lin", 20 | "license": "MIT" 21 | } 22 | -------------------------------------------------------------------------------- /angular-datetimepicker/screenshot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/narol1024/angular-components/99de04f9343903e8037d7cee08a24625c1d3f22c/angular-datetimepicker/screenshot.png -------------------------------------------------------------------------------- /angular-datetimepicker/screenshot2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/narol1024/angular-components/99de04f9343903e8037d7cee08a24625c1d3f22c/angular-datetimepicker/screenshot2.png -------------------------------------------------------------------------------- /angular-grid/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "angular-components", 3 | "version": "1.0.0", 4 | "homepage": "https://github.com/linjinying/angular-components", 5 | "authors": [ 6 | "linjinying " 7 | ], 8 | "description": "", 9 | "main": "", 10 | "moduleType": [], 11 | "license": "MIT", 12 | "ignore": [ 13 | "**/.*", 14 | "node_modules", 15 | "bower_components", 16 | "test", 17 | "tests" 18 | ], 19 | "dependencies": { 20 | "angular": "1.3.0", 21 | "jquery": "1.9.1", 22 | "bootstrap": "3.3.7" 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /angular-grid/config.rb: -------------------------------------------------------------------------------- 1 | require 'compass/import-once/activate' 2 | # Require any additional compass plugins here. 3 | 4 | # Set this to the root of your project when deployed: 5 | http_path = "/" 6 | css_dir = "css" 7 | sass_dir = "sass" 8 | images_dir = "images" 9 | javascripts_dir = "js" 10 | 11 | # You can select your preferred output style here (can be overridden via the command line): 12 | # output_style = :expanded or :nested or :compact or :compressed 13 | output_style = :compact 14 | 15 | # To enable relative paths to assets via compass helper functions. Uncomment: 16 | relative_assets = true 17 | 18 | # To disable debugging comments that display the original location of your selectors. Uncomment: 19 | # line_comments = false 20 | 21 | 22 | # If you prefer the indented syntax, you might want to regenerate this 23 | # project again passing --syntax sass, or you can uncomment this: 24 | # preferred_syntax = :sass 25 | # and then run: 26 | # sass-convert -R --from scss --to sass sass scss && rm -rf sass && mv scss sass 27 | -------------------------------------------------------------------------------- /angular-grid/gulpfile.js: -------------------------------------------------------------------------------- 1 | var gulp = require('gulp'); 2 | var compass = require('gulp-compass'); 3 | var uglifyjs = require('gulp-uglify'); 4 | var minifycss = require('gulp-minify-css'); 5 | var concat = require('gulp-concat'); 6 | var autoprefixer = require('gulp-autoprefixer'); 7 | var rename = require('gulp-rename'); 8 | var connect = require('gulp-connect'); 9 | var sassFolder = ['./src/sass/**/*.scss']; 10 | var jsFolder = ['./src/js/*/**.js']; 11 | gulp.task('compass', function() { 12 | return gulp.src(sassFolder) 13 | .pipe(compass({ 14 | config_file: './config.rb', 15 | css: './src/css', 16 | sass: './src/sass' 17 | })) 18 | .pipe(autoprefixer({ 19 | browsers: ['Firefox >= 1', 'Chrome >= 1', 'ie >= 7'], 20 | cascade: true 21 | })) 22 | .pipe(gulp.dest('./src/css/')) 23 | .pipe(gulp.dest('./dist/css/')) 24 | .pipe(rename({suffix: '.min'})) 25 | .pipe(minifycss()) 26 | .pipe(gulp.dest('./dist/css/')); 27 | }); 28 | gulp.task('uglifyjs', function() { 29 | return gulp.src(['./src/js/angular-grid.js'].concat(jsFolder)) 30 | .pipe(concat('angular-grid.js')) 31 | .pipe(gulp.dest('./dist/js/')) 32 | .pipe(rename({suffix: '.min'})) 33 | .pipe(uglifyjs()) 34 | .pipe(gulp.dest('./dist/js/')); 35 | }); 36 | gulp.task('connect', function() { 37 | connect.server({ 38 | root: '../', 39 | port: 9999, 40 | host: 'localhost' 41 | }); 42 | }); 43 | 44 | gulp.task('start', function() { 45 | gulp.watch(sassFolder, ['compass']); 46 | gulp.watch(jsFolder, ['uglifyjs']); 47 | gulp.start('uglifyjs'); 48 | gulp.start('connect'); 49 | }); 50 | gulp.task('default', ['start']); 51 | -------------------------------------------------------------------------------- /angular-grid/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "angular-grid", 3 | "version": "1.0.0", 4 | "description": "angular-grid", 5 | "main": "index.js", 6 | "dependencies": { 7 | "gulp": "^3.9.0", 8 | "gulp-autoprefixer": "^3.1.0", 9 | "gulp-concat": "^2.6.0", 10 | "gulp-replace": "^0.5.4" 11 | }, 12 | "devDependencies": { 13 | "gulp-compass": "^2.1.0", 14 | "gulp-connect": "^2.3.1", 15 | "gulp-concat": "^2.6.0", 16 | "gulp-minify-css": "^1.2.1", 17 | "gulp-uglify": "^1.4.2", 18 | "gulp-rename": "*" 19 | }, 20 | "author": "jinying.lin", 21 | "license": "MIT" 22 | } 23 | -------------------------------------------------------------------------------- /angular-grid/screenshot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/narol1024/angular-components/99de04f9343903e8037d7cee08a24625c1d3f22c/angular-grid/screenshot.png -------------------------------------------------------------------------------- /angular-grid/src/js/angular-grid.js: -------------------------------------------------------------------------------- 1 | angular.module('ui.grid', []); -------------------------------------------------------------------------------- /angular-grid/src/js/directives/tableBody.js: -------------------------------------------------------------------------------- 1 | angular.module('ui.grid').directive('angularTableBody', [function() { 2 | return { 3 | restrict: 'EA', 4 | replace: true, 5 | template: '' + 6 | ' ' + 7 | ' ' + 8 | '', 9 | link: function(scope, element, attr) { 10 | /*选中表格行*/ 11 | scope.selectRow = function(item, index) { 12 | var selectAll = true; 13 | for (var i = 0; i < scope.viewportList.length; i++) { 14 | if (!scope.viewportList[i].checked) { 15 | selectAll = false; 16 | break; 17 | } 18 | } 19 | scope.selectAll = selectAll; 20 | }; 21 | } 22 | }; 23 | }]); 24 | -------------------------------------------------------------------------------- /angular-grid/src/js/directives/tableCellCompile.js: -------------------------------------------------------------------------------- 1 | angular.module('ui.grid').directive('tableCellCompile', ['$compile', function($compile) { 2 | return function(scope, element, attrs) { 3 | scope.$watch(function(scope) { 4 | return scope.$eval(attrs.tableCellCompile); 5 | }, function(value) { 6 | element.html(value); 7 | $compile(element.contents())(scope); 8 | }); 9 | }; 10 | }]); 11 | -------------------------------------------------------------------------------- /angular-grid/src/js/directives/tableWrapper.js: -------------------------------------------------------------------------------- 1 | angular.module('ui.grid').directive('angularTable', function() { 2 | return { 3 | restrict: 'EA', 4 | scope: { 5 | tableOptions: '=' 6 | }, 7 | replace: true, 8 | template: '
      ' + 9 | ' ' + 10 | ' ' + 11 | '
      ' + 12 | '
      ', 13 | link: function(scope, element, attr) { 14 | 15 | } 16 | }; 17 | }); 18 | -------------------------------------------------------------------------------- /angular-grid/src/js/filters/tableCellTrans.js: -------------------------------------------------------------------------------- 1 | angular.module('ui.grid').filter('tableCellTrans', ["TableHelper", function(TableHelper) { 2 | return function(text, param) { 3 | var isNull = text === null || text === ""; 4 | if (param.transValue) { 5 | var transValue; 6 | if (angular.isFunction(param.transValue)) { 7 | var tempObject = param.transValue(); 8 | var transObject = {}; 9 | var map = tempObject.list; 10 | var key = tempObject.key; 11 | var value = tempObject.value; 12 | for (var i = 0; i < map.length; i++) { 13 | transObject[map[i][key]] = map[i][value]; 14 | } 15 | transValue = transObject[text]; 16 | } else { 17 | transValue = param.transValue[text]; 18 | } 19 | text = transValue || "-"; 20 | } 21 | if (param.formatDate) { 22 | try { 23 | text = TableHelper.format(TableHelper.newDate(text), param.formatDate); 24 | } catch (err) { 25 | text = "-"; 26 | } 27 | } 28 | if (param.toFixed) { 29 | try { 30 | if (angular.isNumber(Number(text)) && !angular.equals(NaN, Number(text))) { 31 | text = Number(text).toFixed(param.toFixed); 32 | } else { 33 | text = "-"; 34 | } 35 | 36 | } catch (err) { 37 | console.log(err); 38 | } 39 | } 40 | if (param.unitText) { 41 | text = text + param.unitText.toString(); 42 | } 43 | return isNull ? "-" : text; 44 | }; 45 | }]); 46 | -------------------------------------------------------------------------------- /angular-itempicker/README.md: -------------------------------------------------------------------------------- 1 | ## angular-itempicker 2 | ![angular-itempicker](https://github.com/linjinying/angular-components/blob/master/angular-itempicker/screenshot.png) 3 | 4 | ### demo 5 | [click here](https://techjs.cn/demo/angular-components/angular-itempicker/) 6 | 7 | ### 说明 8 | 一个基于angular和angular-checkbox的双栏穿梭框: 9 | ### API 10 | 11 | #### Settings 12 | - **key** 数据值索引,默认为`id` 13 | - **value** 数据值,默认为`name` 14 | - **showSearch** 是否显示搜索栏,默认为true 15 | - **searchPlaceholder** 搜索的文案,默认为`请输入搜索内容` 16 | 17 | #### List 18 | - **sourceList** 左栏数据源,格式为json数组,默认为空 19 | - **targetList** 右栏数据源,格式为json数组,默认为空 20 | 21 | ### 依赖 22 | - angular 23 | - angular-checkbox 24 | 25 | ### 使用方式 26 | 27 | **html代码** 28 | ```html 29 | 30 | 31 | 32 | ``` 33 | 34 | **angular代码** 35 | ```javascript 36 | var app = angular.module("app", ['ui.itempicker']); 37 | app.controller("ctrl", ['$scope', function($scope) { 38 | $scope.pickItemParams = { 39 | settings: { 40 | key: "id", 41 | value: "name", 42 | searchPlaceholder: "请输入搜索内容" 43 | }, 44 | sourceList: [{ 45 | "id": 1, 46 | "name": "Karry" 47 | }, { 48 | "id": 1, 49 | "name": "Karry" 50 | }, { 51 | "id": 3, 52 | "name": "Narol" 53 | }, { 54 | "id": 4, 55 | "name": "Leb" 56 | }, { 57 | "id": 5, 58 | "name": "Cok" 59 | }, { 60 | "id": 6, 61 | "name": "Yol" 62 | }, { 63 | "id": 7, 64 | "name": "Keb" 65 | }, { 66 | "id": 8, 67 | "name": "Tex" 68 | }, { 69 | "id": 9, 70 | "name": "Hok" 71 | }, { 72 | "id": 10, 73 | "name": "Zero" 74 | }], 75 | targetList: [] 76 | }; 77 | }]); 78 | ``` -------------------------------------------------------------------------------- /angular-itempicker/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "angular-components", 3 | "version": "1.0.0", 4 | "homepage": "https://github.com/linjinying/angular-components", 5 | "authors": [ 6 | "linjinying " 7 | ], 8 | "description": "", 9 | "main": "", 10 | "moduleType": [], 11 | "license": "MIT", 12 | "ignore": [ 13 | "**/.*", 14 | "node_modules", 15 | "bower_components", 16 | "test", 17 | "tests" 18 | ], 19 | "dependencies": { 20 | "angular": "1.3.0", 21 | "jquery": "1.9.1" 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /angular-itempicker/config.rb: -------------------------------------------------------------------------------- 1 | require 'compass/import-once/activate' 2 | # Require any additional compass plugins here. 3 | 4 | # Set this to the root of your project when deployed: 5 | http_path = "/" 6 | css_dir = "css" 7 | sass_dir = "sass" 8 | images_dir = "images" 9 | javascripts_dir = "js" 10 | 11 | # You can select your preferred output style here (can be overridden via the command line): 12 | # output_style = :expanded or :nested or :compact or :compressed 13 | output_style = :compact 14 | 15 | # To enable relative paths to assets via compass helper functions. Uncomment: 16 | relative_assets = true 17 | 18 | # To disable debugging comments that display the original location of your selectors. Uncomment: 19 | # line_comments = false 20 | 21 | 22 | # If you prefer the indented syntax, you might want to regenerate this 23 | # project again passing --syntax sass, or you can uncomment this: 24 | # preferred_syntax = :sass 25 | # and then run: 26 | # sass-convert -R --from scss --to sass sass scss && rm -rf sass && mv scss sass 27 | -------------------------------------------------------------------------------- /angular-itempicker/demo/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | demo 7 | 8 | 9 | 10 | 11 | 12 | 17 | 18 | 19 | 20 | 21 | 22 | 66 | 67 | 68 | -------------------------------------------------------------------------------- /angular-itempicker/dist/css/angular-itempicker.css: -------------------------------------------------------------------------------- 1 | .angular-itempicker .list-wrap { display: inline-block; vertical-align: middle; -webkit-border-radius: 4px; -moz-border-radius: 4px; border-radius: 4px; border: 1px solid #ccc; width: 260px; } 2 | .angular-itempicker .list-wrap .search-wrap { border-bottom: 1px solid #ccc; padding: 10px; } 3 | .angular-itempicker .list-wrap .search-wrap input { width: 100%; -webkit-box-sizing: border-box; -moz-box-sizing: border-box; box-sizing: border-box; padding: 5px; border: 1px solid #dedede; } 4 | .angular-itempicker .list-wrap .select-all { padding: 4px 8px; border-bottom: 1px solid #ccc; } 5 | .angular-itempicker .list-wrap .list { overflow: auto; height: 250px; } 6 | .angular-itempicker .list-wrap .list .item { padding: 4px 4px 4px 8px; } 7 | .angular-itempicker .tool-btn-wrap { display: inline-block; vertical-align: middle; padding: 0 10px; } 8 | .angular-itempicker .tool-btn-wrap .btn { display: block; padding: 2px 8px; margin-bottom: 4px; -webkit-border-radius: 2px; -moz-border-radius: 2px; border-radius: 2px; font-size: 12px; outline: 0; background-color: #f5f5f5; border: 1px solid #ccc; } 9 | .angular-itempicker .tool-btn-wrap .btn .icon-arrow-left { display: inline-block; width: 0; height: 0; border-right: 5px solid #999; border-top: 5px solid transparent; border-bottom: 5px solid transparent; } 10 | .angular-itempicker .tool-btn-wrap .btn .icon-arrow-right { display: inline-block; width: 0; height: 0; border-left: 5px solid #999; border-top: 5px solid transparent; border-bottom: 5px solid transparent; } 11 | .angular-itempicker .tool-btn-wrap .btn:hover { color: #333; } 12 | -------------------------------------------------------------------------------- /angular-itempicker/dist/css/angular-itempicker.min.css: -------------------------------------------------------------------------------- 1 | .angular-itempicker .list-wrap{display:inline-block;vertical-align:middle;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;border:1px solid #ccc;width:260px}.angular-itempicker .list-wrap .search-wrap{border-bottom:1px solid #ccc;padding:10px}.angular-itempicker .list-wrap .search-wrap input{width:100%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;padding:5px;border:1px solid #dedede}.angular-itempicker .list-wrap .select-all{padding:4px 8px;border-bottom:1px solid #ccc}.angular-itempicker .list-wrap .list{overflow:auto;height:250px}.angular-itempicker .list-wrap .list .item{padding:4px 4px 4px 8px}.angular-itempicker .tool-btn-wrap{display:inline-block;vertical-align:middle;padding:0 10px}.angular-itempicker .tool-btn-wrap .btn{display:block;padding:2px 8px;margin-bottom:4px;-webkit-border-radius:2px;-moz-border-radius:2px;border-radius:2px;font-size:12px;outline:0;background-color:#f5f5f5;border:1px solid #ccc}.angular-itempicker .tool-btn-wrap .btn .icon-arrow-left{display:inline-block;width:0;height:0;border-right:5px solid #999;border-top:5px solid transparent;border-bottom:5px solid transparent}.angular-itempicker .tool-btn-wrap .btn .icon-arrow-right{display:inline-block;width:0;height:0;border-left:5px solid #999;border-top:5px solid transparent;border-bottom:5px solid transparent}.angular-itempicker .tool-btn-wrap .btn:hover{color:#333} -------------------------------------------------------------------------------- /angular-itempicker/gulpfile.js: -------------------------------------------------------------------------------- 1 | var gulp = require('gulp'); 2 | var compass = require('gulp-compass'); 3 | var uglifyjs = require('gulp-uglify'); 4 | var minifycss = require('gulp-minify-css'); 5 | var concat = require('gulp-concat'); 6 | var autoprefixer = require('gulp-autoprefixer'); 7 | var rename = require('gulp-rename'); 8 | var connect = require('gulp-connect'); 9 | var sassFolder = ['./src/sass/**/*.scss']; 10 | var jsFolder = ['./src/js/*/**.js']; 11 | gulp.task('compass', function() { 12 | return gulp.src(sassFolder) 13 | .pipe(compass({ 14 | config_file: './config.rb', 15 | css: './src/css', 16 | sass: './src/sass' 17 | })) 18 | .pipe(autoprefixer({ 19 | browsers: ['Firefox >= 1', 'Chrome >= 1', 'ie >= 7'], 20 | cascade: true 21 | })) 22 | .pipe(gulp.dest('./src/css/')) 23 | .pipe(gulp.dest('./dist/css/')) 24 | .pipe(rename({suffix: '.min'})) 25 | .pipe(minifycss()) 26 | .pipe(gulp.dest('./dist/css/')); 27 | }); 28 | gulp.task('uglifyjs', function() { 29 | return gulp.src(jsFolder) 30 | .pipe(gulp.dest('./dist/js/')) 31 | .pipe(rename({suffix: '.min'})) 32 | .pipe(uglifyjs()) 33 | .pipe(gulp.dest('./dist/js/')); 34 | }); 35 | gulp.task('uglifyjs', function() { 36 | return gulp.src(['./src/js/angular-itempicker.js'].concat(jsFolder)) 37 | .pipe(concat('angular-itempicker.js')) 38 | .pipe(gulp.dest('./dist/js/')) 39 | .pipe(rename({suffix: '.min'})) 40 | .pipe(uglifyjs()) 41 | .pipe(gulp.dest('./dist/js/')); 42 | }); 43 | gulp.task('connect', function() { 44 | connect.server({ 45 | root: '../', 46 | port: 9999, 47 | host: 'localhost' 48 | }); 49 | }); 50 | 51 | gulp.task('start', function() { 52 | gulp.watch(sassFolder, ['compass']); 53 | gulp.watch(['./src/js/angular-itempicker.js'].concat(jsFolder), ['uglifyjs']); 54 | gulp.start('uglifyjs'); 55 | gulp.start('connect'); 56 | }); 57 | gulp.task('default', ['start']); 58 | -------------------------------------------------------------------------------- /angular-itempicker/libs/angular-checkbox/dist/css/angular-checkbox.css: -------------------------------------------------------------------------------- 1 | .angular-checkbox { position: absolute; display: none; } 2 | 3 | .angular-checkbox[disabled] { cursor: not-allowed; } 4 | 5 | .angular-checkbox + label { position: relative; display: inline-block; cursor: pointer; margin-bottom: 0; font-weight: normal; } 6 | .angular-checkbox + label:before { display: inline-block; vertical-align: middle; width: 16px; height: 16px; content: ''; border: 1px solid #1ab394; -webkit-box-sizing: border-box; -moz-box-sizing: border-box; box-sizing: border-box; } 7 | .angular-checkbox + label:after { position: absolute; top: 0; left: 0; display: none; content: ''; } 8 | .angular-checkbox + label .text { display: inline-block; vertical-align: middle; margin-left: 6px; } 9 | 10 | .angular-checkbox[disabled] + label { cursor: not-allowed; color: #e4e4e4; } 11 | .angular-checkbox[disabled] + label:hover, .angular-checkbox[disabled] + label:before, .angular-checkbox[disabled] + label:after { cursor: not-allowed; } 12 | .angular-checkbox[disabled] + label:hover:before { border: 1px solid #e4e4e4; -webkit-animation-name: none; -moz-animation-name: none; animation-name: none; } 13 | .angular-checkbox[disabled] + label:before { border-color: #e4e4e4; } 14 | 15 | .angular-checkbox:checked + label:before { -webkit-animation-name: none; -moz-animation-name: none; animation-name: none; } 16 | .angular-checkbox:checked + label:after { display: block; } 17 | 18 | .angular-checkbox + label:before { -webkit-border-radius: 3px; -moz-border-radius: 3px; border-radius: 3px; } 19 | .angular-checkbox + label:after { top: 4px; left: 5px; -webkit-box-sizing: border-box; -moz-box-sizing: border-box; box-sizing: border-box; width: 6px; height: 10px; -webkit-transform: rotate(45deg); -moz-transform: rotate(45deg); -ms-transform: rotate(45deg); transform: rotate(45deg); border: 2px solid #fff; border-top: 0; border-left: 0; } 20 | 21 | .angular-checkbox:checked + label:before { border: #1ab394; background: #1ab394; } 22 | 23 | .angular-checkbox:checked[disabled] + label:before { border: #e4e4e4; background: #e4e4e4; } 24 | -------------------------------------------------------------------------------- /angular-itempicker/libs/angular-checkbox/dist/css/angular-checkbox.min.css: -------------------------------------------------------------------------------- 1 | .angular-checkbox{position:absolute;display:none}.angular-checkbox[disabled]{cursor:not-allowed}.angular-checkbox+label{position:relative;display:inline-block;cursor:pointer;margin-bottom:0;font-weight:400}.angular-checkbox+label:before{display:inline-block;vertical-align:middle;width:16px;height:16px;content:'';border:1px solid #1ab394;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.angular-checkbox+label:after{position:absolute;display:none;content:''}.angular-checkbox+label .text{display:inline-block;vertical-align:middle;margin-left:6px}.angular-checkbox[disabled]+label{cursor:not-allowed;color:#e4e4e4}.angular-checkbox[disabled]+label:after,.angular-checkbox[disabled]+label:before,.angular-checkbox[disabled]+label:hover{cursor:not-allowed}.angular-checkbox[disabled]+label:hover:before{border:1px solid #e4e4e4;-webkit-animation-name:none;-moz-animation-name:none;animation-name:none}.angular-checkbox[disabled]+label:before{border-color:#e4e4e4}.angular-checkbox:checked+label:after{display:block}.angular-checkbox+label:before{-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.angular-checkbox+label:after{top:4px;left:5px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;width:6px;height:10px;-webkit-transform:rotate(45deg);-moz-transform:rotate(45deg);-ms-transform:rotate(45deg);transform:rotate(45deg);border:2px solid #fff;border-top:0;border-left:0}.angular-checkbox:checked+label:before{-webkit-animation-name:none;-moz-animation-name:none;animation-name:none;border:#1ab394;background:#1ab394}.angular-checkbox:checked[disabled]+label:before{border:#e4e4e4;background:#e4e4e4} -------------------------------------------------------------------------------- /angular-itempicker/libs/angular-checkbox/dist/js/angular-checkbox.js: -------------------------------------------------------------------------------- 1 | angular.module('ui.checkbox', []) 2 | .directive('angularCheckbox', [function() { 3 | return { 4 | restrict: 'A', 5 | require: '?ngModel', 6 | replace: true, 7 | scope: { 8 | options: "=angularCheckbox", 9 | text: "=value" 10 | }, 11 | link: function(scope, element, attr, ngModel) { 12 | /* 13 | *生成checkbox ID 14 | */ 15 | var options = scope.options; 16 | var checkboxId = "angular-checkbox-" + (((1 + Math.random()) * new Date().getTime()) | 0).toString(16).substring(1); 17 | var checkboxElement = 18 | ''; 22 | element.addClass('angular-checkbox').attr('id', checkboxId).after(checkboxElement); 23 | element.bind('click', function() { 24 | options.onCheck(scope); 25 | scope.$applyAsync(); 26 | }); 27 | var valueWatcher = scope.$watch('text', function(currentValue, lastValue) { 28 | if (currentValue !== lastValue) { 29 | element.next().find('span').html(currentValue); 30 | } 31 | }); 32 | scope.$on('$destroy', function() { 33 | valueWatcher(); 34 | }) 35 | } 36 | }; 37 | }]); 38 | -------------------------------------------------------------------------------- /angular-itempicker/libs/angular-checkbox/dist/js/angular-checkbox.min.js: -------------------------------------------------------------------------------- 1 | angular.module("ui.checkbox",[]).directive("angularCheckbox",[function(){return{restrict:"A",require:"?ngModel",replace:!0,scope:{options:"=angularCheckbox",text:"=value"},link:function(n,e,t,a){var c=n.options,o="angular-checkbox-"+((1+Math.random())*(new Date).getTime()|0).toString(16).substring(1),r='";e.addClass("angular-checkbox").attr("id",o).after(r),e.bind("click",function(){c.onCheck(n),n.$applyAsync()});var i=n.$watch("text",function(n,t){n!==t&&e.next().find("span").html(n)});n.$on("$destroy",function(){i()})}}}]); -------------------------------------------------------------------------------- /angular-itempicker/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "angular-datetimepicker", 3 | "version": "1.0.0", 4 | "description": "angular-datetimepicker", 5 | "main": "index.js", 6 | "dependencies": { 7 | "gulp": "^3.9.0", 8 | "gulp-autoprefixer": "^3.1.0", 9 | "gulp-replace": "^0.5.4" 10 | }, 11 | "devDependencies": { 12 | "gulp-compass": "^2.1.0", 13 | "gulp-connect": "^2.3.1", 14 | "gulp-concat": "^2.6.0", 15 | "gulp-minify-css": "^1.2.1", 16 | "gulp-uglify": "^1.4.2", 17 | "gulp-rename": "*" 18 | }, 19 | "author": "jinying.lin", 20 | "license": "MIT" 21 | } 22 | -------------------------------------------------------------------------------- /angular-itempicker/screenshot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/narol1024/angular-components/99de04f9343903e8037d7cee08a24625c1d3f22c/angular-itempicker/screenshot.png -------------------------------------------------------------------------------- /angular-itempicker/src/css/angular-itempicker.css: -------------------------------------------------------------------------------- 1 | .angular-itempicker .list-wrap { display: inline-block; vertical-align: middle; -webkit-border-radius: 4px; -moz-border-radius: 4px; border-radius: 4px; border: 1px solid #ccc; width: 260px; } 2 | .angular-itempicker .list-wrap .search-wrap { border-bottom: 1px solid #ccc; padding: 10px; } 3 | .angular-itempicker .list-wrap .search-wrap input { width: 100%; -webkit-box-sizing: border-box; -moz-box-sizing: border-box; box-sizing: border-box; padding: 5px; border: 1px solid #dedede; } 4 | .angular-itempicker .list-wrap .select-all { padding: 4px 8px; border-bottom: 1px solid #ccc; } 5 | .angular-itempicker .list-wrap .list { overflow: auto; height: 250px; } 6 | .angular-itempicker .list-wrap .list .item { padding: 4px 4px 4px 8px; } 7 | .angular-itempicker .tool-btn-wrap { display: inline-block; vertical-align: middle; padding: 0 10px; } 8 | .angular-itempicker .tool-btn-wrap .btn { display: block; padding: 2px 8px; margin-bottom: 4px; -webkit-border-radius: 2px; -moz-border-radius: 2px; border-radius: 2px; font-size: 12px; outline: 0; background-color: #f5f5f5; border: 1px solid #ccc; } 9 | .angular-itempicker .tool-btn-wrap .btn .icon-arrow-left { display: inline-block; width: 0; height: 0; border-right: 5px solid #999; border-top: 5px solid transparent; border-bottom: 5px solid transparent; } 10 | .angular-itempicker .tool-btn-wrap .btn .icon-arrow-right { display: inline-block; width: 0; height: 0; border-left: 5px solid #999; border-top: 5px solid transparent; border-bottom: 5px solid transparent; } 11 | .angular-itempicker .tool-btn-wrap .btn:hover { color: #333; } 12 | -------------------------------------------------------------------------------- /angular-itempicker/src/js/angular-itempicker.js: -------------------------------------------------------------------------------- 1 | angular.module('ui.itempicker', ['ui.checkbox']) 2 | .directive('angularItempicker', [function() { 3 | return { 4 | restrict: 'AE', 5 | scope: { 6 | options: '=options', 7 | }, 8 | template: '
      ' + 9 | ' ' + 10 | ' ' + 11 | ' ' + 12 | '
      ', 13 | controller: ['$scope', function($scope) { 14 | $scope.settings = angular.extend({ key: "id", value: "name", showSearch: true, searchPlaceholder: "请输入搜索内容" }, $scope.options.settings); 15 | $scope.sourceListFiltered = []; 16 | $scope.targetListFiltered = []; 17 | $scope.search = {}; 18 | $scope.options.sourceList = $scope.options.sourceList || []; 19 | $scope.options.targetList = $scope.options.targetList || []; 20 | /* 21 | *检查是否检查选中所有 22 | */ 23 | $scope.isCheckAll = function(list) { 24 | var result = true; 25 | for (var i = 0; i < list.length; i++) { 26 | if (!list[i].checked) { 27 | result = false; 28 | } 29 | } 30 | if(!list.length){ 31 | result = false; 32 | } 33 | return result; 34 | }; 35 | /* 36 | *获取结果 37 | */ 38 | $scope.options.getResult = function(){ 39 | var resultArray = []; 40 | var targetList = $scope.options.targetList; 41 | for(var i = 0 ; i < targetList.length ; i++){ 42 | var tempObject = {}; 43 | var key = $scope.settings.key; 44 | var value = $scope.settings.value; 45 | tempObject[key] = targetList[i][key]; 46 | tempObject[value] = targetList[i][value]; 47 | resultArray.push(tempObject); 48 | } 49 | return resultArray; 50 | }; 51 | }], 52 | link: function($scope, element, attr) { 53 | 54 | } 55 | }; 56 | }]); 57 | -------------------------------------------------------------------------------- /angular-itempicker/src/sass/angular-itempicker.scss: -------------------------------------------------------------------------------- 1 | @charset "utf-8"; 2 | .angular-itempicker { 3 | .list-wrap { 4 | display: inline-block; 5 | vertical-align: middle; 6 | border-radius: 4px; 7 | border: 1px solid #ccc; 8 | width: 260px; 9 | .search-wrap { 10 | border-bottom: 1px solid #ccc; 11 | padding: 10px; 12 | input { 13 | width: 100%; 14 | box-sizing: border-box; 15 | padding: 5px; 16 | border: 1px solid #dedede; 17 | } 18 | } 19 | .select-all { 20 | padding: 4px 8px; 21 | border-bottom: 1px solid #ccc; 22 | } 23 | .list { 24 | overflow: auto; 25 | height: 250px; 26 | .item { 27 | padding: 4px 4px 4px 8px; 28 | } 29 | } 30 | } 31 | .tool-btn-wrap { 32 | display: inline-block; 33 | vertical-align: middle; 34 | padding: 0 10px; 35 | .btn { 36 | display: block; 37 | padding: 2px 8px; 38 | margin-bottom: 4px; 39 | border-radius: 2px; 40 | font-size: 12px; 41 | outline: 0; 42 | background-color: #f5f5f5; 43 | border: 1px solid #ccc; 44 | .icon-arrow-left { 45 | display: inline-block; 46 | width: 0; 47 | height: 0; 48 | border-right: 5px solid #999; 49 | border-top: 5px solid transparent; 50 | border-bottom: 5px solid transparent; 51 | } 52 | .icon-arrow-right { 53 | display: inline-block; 54 | width: 0; 55 | height: 0; 56 | border-left: 5px solid #999; 57 | border-top: 5px solid transparent; 58 | border-bottom: 5px solid transparent; 59 | } 60 | &:hover { 61 | color: #333; 62 | } 63 | } 64 | } 65 | } 66 | -------------------------------------------------------------------------------- /angular-message/README.md: -------------------------------------------------------------------------------- 1 | ## angular-message 2 | ### demo 3 | [click here](https://techjs.cn/demo/angular-components/angular-message/) 4 | 5 | ### 说明 6 | 一个基于`bootstrap`、`angular`的消息提示,目前支持的API有: 7 | - **popMessage** 触发弹出消息,主要参数配置有`message`(消息文本),`type`(消息类型,1成功,2错误,3加载,4警告),`mask`(遮罩层),`time`(消息显示时间) 8 | - **removeMessage** 移除消息 9 | - **slideUpMessage** 移除并动画弹回消息 10 | 11 | ### 依赖 12 | - jquery 13 | - angular 14 | 15 | ### 使用方式 16 | 17 | **html代码** 18 | ```html 19 | 20 | 21 | ``` 22 | 23 | **angular代码** 24 | ```javascript 25 | var app = angular.module("app",["ui.message"]); 26 | app.controller("ctrl",["$messageFactory",function($messageFactory){ 27 | $messageFactory.popMessage({ 28 | message: "加载中", 29 | type:2, 30 | mask: true, 31 | time:2000 32 | }); 33 | }]); 34 | ``` 35 | -------------------------------------------------------------------------------- /angular-message/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "angular-components", 3 | "version": "1.0.0", 4 | "homepage": "https://github.com/linjinying/angular-components", 5 | "authors": [ 6 | "linjinying " 7 | ], 8 | "description": "", 9 | "main": "", 10 | "moduleType": [], 11 | "license": "MIT", 12 | "ignore": [ 13 | "**/.*", 14 | "node_modules", 15 | "bower_components", 16 | "test", 17 | "tests" 18 | ], 19 | "dependencies": { 20 | "angular": "1.3.0", 21 | "jquery": "1.9.1" 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /angular-message/config.rb: -------------------------------------------------------------------------------- 1 | require 'compass/import-once/activate' 2 | # Require any additional compass plugins here. 3 | 4 | # Set this to the root of your project when deployed: 5 | http_path = "/" 6 | css_dir = "css" 7 | sass_dir = "sass" 8 | images_dir = "images" 9 | javascripts_dir = "js" 10 | 11 | # You can select your preferred output style here (can be overridden via the command line): 12 | # output_style = :expanded or :nested or :compact or :compressed 13 | output_style = :compact 14 | 15 | # To enable relative paths to assets via compass helper functions. Uncomment: 16 | relative_assets = true 17 | 18 | # To disable debugging comments that display the original location of your selectors. Uncomment: 19 | # line_comments = false 20 | 21 | 22 | # If you prefer the indented syntax, you might want to regenerate this 23 | # project again passing --syntax sass, or you can uncomment this: 24 | # preferred_syntax = :sass 25 | # and then run: 26 | # sass-convert -R --from scss --to sass sass scss && rm -rf sass && mv scss sass 27 | -------------------------------------------------------------------------------- /angular-message/demo/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | demo 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 25 | -------------------------------------------------------------------------------- /angular-message/dist/css/angular-message.css: -------------------------------------------------------------------------------- 1 | @charset "UTF-8"; 2 | /*蓝色*/ 3 | /*成功色*/ 4 | /*危险色*/ 5 | /*警告色*/ 6 | .ui-message-mask { position: fixed; top: 0; left: 0; right: 0; bottom: 0; } 7 | 8 | .ui-message { position: fixed; top: 0; padding: 6px 20px; left: 50%; background-color: #1ab394; color: #fff; font-size: 16px; -webkit-animation: ani-ui-message 0.3s; -moz-animation: ani-ui-message 0.3s; animation: ani-ui-message 0.3s; } 9 | .ui-message.success { background-color: #1ab394; } 10 | .ui-message.error { background-color: #d9534f; } 11 | .ui-message.loading { background-color: #337ab7; } 12 | .ui-message.warning { background-color: #f0ad4e; } 13 | 14 | @-webkit-keyframes ani-ui-message { 0% { opacity: 0; -webkit-transform: translate(0, -100px); transform: translate(0, -100px); } 15 | 100% { opacity: 1; -webkit-transform: translate(0, 0); transform: translate(0, 0); } } 16 | 17 | @-moz-keyframes ani-ui-message { 0% { opacity: 0; -moz-transform: translate(0, -100px); transform: translate(0, -100px); } 18 | 100% { opacity: 1; -moz-transform: translate(0, 0); transform: translate(0, 0); } } 19 | 20 | @keyframes ani-ui-message { 0% { opacity: 0; -webkit-transform: translate(0, -100px); -moz-transform: translate(0, -100px); transform: translate(0, -100px); } 21 | 100% { opacity: 1; -webkit-transform: translate(0, 0); -moz-transform: translate(0, 0); transform: translate(0, 0); } } 22 | -------------------------------------------------------------------------------- /angular-message/dist/css/angular-message.min.css: -------------------------------------------------------------------------------- 1 | @charset "UTF-8";.ui-message,.ui-message.success{background-color:#1ab394}.ui-message-mask{position:fixed;top:0;left:0;right:0;bottom:0}.ui-message{position:fixed;top:0;padding:6px 20px;left:50%;color:#fff;font-size:16px;-webkit-animation:ani-ui-message .3s;-moz-animation:ani-ui-message .3s;animation:ani-ui-message .3s}.ui-message.error{background-color:#d9534f}.ui-message.loading{background-color:#337ab7}.ui-message.warning{background-color:#f0ad4e}@-webkit-keyframes ani-ui-message{0%{opacity:0;-webkit-transform:translate(0,-100px);transform:translate(0,-100px)}100%{opacity:1;-webkit-transform:translate(0,0);transform:translate(0,0)}}@-moz-keyframes ani-ui-message{0%{opacity:0;-moz-transform:translate(0,-100px);transform:translate(0,-100px)}100%{opacity:1;-moz-transform:translate(0,0);transform:translate(0,0)}}@keyframes ani-ui-message{0%{opacity:0;-webkit-transform:translate(0,-100px);-moz-transform:translate(0,-100px);transform:translate(0,-100px)}100%{opacity:1;-webkit-transform:translate(0,0);-moz-transform:translate(0,0);transform:translate(0,0)}} -------------------------------------------------------------------------------- /angular-message/dist/js/angular-message.js: -------------------------------------------------------------------------------- 1 | angular.module('ui.message', []) 2 | .factory('$messageFactory', [function() { 3 | var Message = {}; 4 | var timer; 5 | var messageTypes = [ 6 | {type:"success"}, 7 | {type:"error"}, 8 | {type:"loading"}, 9 | {type:"warning"} 10 | ]; 11 | var messageId; 12 | Message.removeMessage = function() { 13 | $('#ui-message-mask-'+messageId).remove(); 14 | $('#ui-message-'+messageId).remove(); 15 | } 16 | Message.slideUpMessage = function(){ 17 | var _this = this; 18 | var $message = $('#ui-message-'+messageId); 19 | $message.animate({ 20 | top:-$message.outerHeight() 21 | },200,'swing',function(){ 22 | _this.removeMessage(); 23 | }); 24 | } 25 | Message.popMessage = function(options) { 26 | var _this = this; 27 | this.removeMessage(); 28 | messageId = (((1 + Math.random()) * new Date().getTime()) | 0).toString(16).substring(1); 29 | if (options.mask) { 30 | var maskTemplate = angular.element("
      "); 31 | maskTemplate.css('z-index',messageId); 32 | angular.element(document.body).append(maskTemplate); 33 | } 34 | var tipsTemplate = angular.element("
      " +options.message + '
      '); 35 | angular.element(document.body).append(tipsTemplate); 36 | var currenyItem = messageTypes[options.type || 0] || messageTypes[0]; 37 | $(tipsTemplate).css({ 38 | 'z-index': new Date().getTime(), 39 | 'marginLeft': -$(tipsTemplate).outerWidth() / 2 40 | }).addClass(currenyItem.type); 41 | if (options.time) { 42 | clearTimeout(timer); 43 | timer = setTimeout(function() { 44 | if (angular.isFunction(options.callback)) { 45 | options.callback(); 46 | } 47 | _this.slideUpMessage(); 48 | clearTimeout(timer); 49 | }, options.time); 50 | } 51 | }; 52 | return Message; 53 | }]); 54 | -------------------------------------------------------------------------------- /angular-message/dist/js/angular-message.min.js: -------------------------------------------------------------------------------- 1 | angular.module("ui.message",[]).factory("$messageFactory",[function(){var e,a,s={},i=[{type:"success"},{type:"error"},{type:"loading"},{type:"warning"}];return s.removeMessage=function(){$("#ui-message-mask-"+a).remove(),$("#ui-message-"+a).remove()},s.slideUpMessage=function(){var e=this,s=$("#ui-message-"+a);s.animate({top:-s.outerHeight()},200,"swing",function(){e.removeMessage()})},s.popMessage=function(s){var t=this;if(this.removeMessage(),a=((1+Math.random())*(new Date).getTime()|0).toString(16).substring(1),s.mask){var n=angular.element("
      ");n.css("z-index",a),angular.element(document.body).append(n)}var m=angular.element("
      "+s.message+"
      ");angular.element(document.body).append(m);var r=i[s.type||0]||i[0];$(m).css({"z-index":(new Date).getTime(),marginLeft:-$(m).outerWidth()/2}).addClass(r.type),s.time&&(clearTimeout(e),e=setTimeout(function(){angular.isFunction(s.callback)&&s.callback(),t.slideUpMessage(),clearTimeout(e)},s.time))},s}]); -------------------------------------------------------------------------------- /angular-message/gulpfile.js: -------------------------------------------------------------------------------- 1 | var gulp = require('gulp'); 2 | var compass = require('gulp-compass'); 3 | var uglifyjs = require('gulp-uglify'); 4 | var minifycss = require('gulp-minify-css'); 5 | var autoprefixer = require('gulp-autoprefixer'); 6 | var rename = require('gulp-rename'); 7 | var connect = require('gulp-connect'); 8 | var sassFolder = ['./src/sass/**/*.scss']; 9 | var jsFolder = ['./src/js/*.js']; 10 | gulp.task('compass', function() { 11 | return gulp.src(sassFolder) 12 | .pipe(compass({ 13 | config_file: './config.rb', 14 | css: './src/css', 15 | sass: './src/sass' 16 | })) 17 | .pipe(autoprefixer({ 18 | browsers: ['Firefox >= 1', 'Chrome >= 1', 'ie >= 7'], 19 | cascade: true 20 | })) 21 | .pipe(gulp.dest('./src/css/')) 22 | .pipe(gulp.dest('./dist/css/')) 23 | .pipe(rename({suffix: '.min'})) 24 | .pipe(minifycss()) 25 | .pipe(gulp.dest('./dist/css/')); 26 | }); 27 | gulp.task('uglifyjs', function() { 28 | return gulp.src(jsFolder) 29 | .pipe(gulp.dest('./dist/js/')) 30 | .pipe(rename({suffix: '.min'})) 31 | .pipe(uglifyjs()) 32 | .pipe(gulp.dest('./dist/js/')); 33 | }); 34 | 35 | gulp.task('connect', function() { 36 | connect.server({ 37 | root: '../', 38 | port: 9999, 39 | host: 'localhost' 40 | }); 41 | }); 42 | 43 | gulp.task('start', function() { 44 | gulp.watch(sassFolder, ['compass']); 45 | gulp.watch(jsFolder, ['uglifyjs']); 46 | gulp.start('uglifyjs'); 47 | gulp.start('connect'); 48 | }); 49 | gulp.task('default', ['start']); 50 | -------------------------------------------------------------------------------- /angular-message/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "angular-datetimepicker", 3 | "version": "1.0.0", 4 | "description": "angular-datetimepicker", 5 | "main": "index.js", 6 | "dependencies": { 7 | "gulp": "^3.9.0", 8 | "gulp-autoprefixer": "^3.1.0", 9 | "gulp-replace": "^0.5.4" 10 | }, 11 | "devDependencies": { 12 | "gulp-compass": "^2.1.0", 13 | "gulp-connect": "^2.3.1", 14 | "gulp-concat": "^2.6.0", 15 | "gulp-minify-css": "^1.2.1", 16 | "gulp-uglify": "^1.4.2", 17 | "gulp-rename": "*" 18 | }, 19 | "author": "jinying.lin", 20 | "license": "MIT" 21 | } 22 | -------------------------------------------------------------------------------- /angular-message/src/css/angular-message.css: -------------------------------------------------------------------------------- 1 | @charset "UTF-8"; 2 | /*蓝色*/ 3 | /*成功色*/ 4 | /*危险色*/ 5 | /*警告色*/ 6 | .ui-message-mask { position: fixed; top: 0; left: 0; right: 0; bottom: 0; } 7 | 8 | .ui-message { position: fixed; top: 0; padding: 6px 20px; left: 50%; background-color: #1ab394; color: #fff; font-size: 16px; -webkit-animation: ani-ui-message 0.3s; -moz-animation: ani-ui-message 0.3s; animation: ani-ui-message 0.3s; } 9 | .ui-message.success { background-color: #1ab394; } 10 | .ui-message.error { background-color: #d9534f; } 11 | .ui-message.loading { background-color: #337ab7; } 12 | .ui-message.warning { background-color: #f0ad4e; } 13 | 14 | @-webkit-keyframes ani-ui-message { 0% { opacity: 0; -webkit-transform: translate(0, -100px); transform: translate(0, -100px); } 15 | 100% { opacity: 1; -webkit-transform: translate(0, 0); transform: translate(0, 0); } } 16 | 17 | @-moz-keyframes ani-ui-message { 0% { opacity: 0; -moz-transform: translate(0, -100px); transform: translate(0, -100px); } 18 | 100% { opacity: 1; -moz-transform: translate(0, 0); transform: translate(0, 0); } } 19 | 20 | @keyframes ani-ui-message { 0% { opacity: 0; -webkit-transform: translate(0, -100px); -moz-transform: translate(0, -100px); transform: translate(0, -100px); } 21 | 100% { opacity: 1; -webkit-transform: translate(0, 0); -moz-transform: translate(0, 0); transform: translate(0, 0); } } 22 | -------------------------------------------------------------------------------- /angular-message/src/js/angular-message.js: -------------------------------------------------------------------------------- 1 | angular.module('ui.message', []) 2 | .factory('$messageFactory', [function() { 3 | var Message = {}; 4 | var timer; 5 | var messageTypes = [ 6 | {type:"success"}, 7 | {type:"error"}, 8 | {type:"loading"}, 9 | {type:"warning"} 10 | ]; 11 | var messageId; 12 | Message.removeMessage = function() { 13 | $('#ui-message-mask-'+messageId).remove(); 14 | $('#ui-message-'+messageId).remove(); 15 | } 16 | Message.slideUpMessage = function(){ 17 | var _this = this; 18 | var $message = $('#ui-message-'+messageId); 19 | $message.animate({ 20 | top:-$message.outerHeight() 21 | },200,'swing',function(){ 22 | _this.removeMessage(); 23 | }); 24 | } 25 | Message.popMessage = function(options) { 26 | var _this = this; 27 | this.removeMessage(); 28 | messageId = (((1 + Math.random()) * new Date().getTime()) | 0).toString(16).substring(1); 29 | if (options.mask) { 30 | var maskTemplate = angular.element("
      "); 31 | maskTemplate.css('z-index',messageId); 32 | angular.element(document.body).append(maskTemplate); 33 | } 34 | var tipsTemplate = angular.element("
      " +options.message + '
      '); 35 | angular.element(document.body).append(tipsTemplate); 36 | var currenyItem = messageTypes[options.type || 0] || messageTypes[0]; 37 | $(tipsTemplate).css({ 38 | 'z-index': new Date().getTime(), 39 | 'marginLeft': -$(tipsTemplate).outerWidth() / 2 40 | }).addClass(currenyItem.type); 41 | if (options.time) { 42 | clearTimeout(timer); 43 | timer = setTimeout(function() { 44 | if (angular.isFunction(options.callback)) { 45 | options.callback(); 46 | } 47 | _this.slideUpMessage(); 48 | clearTimeout(timer); 49 | }, options.time); 50 | } 51 | }; 52 | return Message; 53 | }]); 54 | -------------------------------------------------------------------------------- /angular-message/src/sass/angular-message.scss: -------------------------------------------------------------------------------- 1 | @charset "utf-8"; 2 | /*蓝色*/ 3 | $primary-color:#337ab7; 4 | /*成功色*/ 5 | $success-color:#1ab394; 6 | /*危险色*/ 7 | $danger-color:#d9534f; 8 | /*警告色*/ 9 | $warning-color:#f0ad4e; 10 | 11 | .ui-message-mask{ 12 | position: fixed; 13 | top: 0; 14 | left: 0; 15 | right: 0; 16 | bottom: 0; 17 | } 18 | 19 | .ui-message { 20 | position: fixed; 21 | top: 0; 22 | padding: 6px 20px; 23 | left: 50%; 24 | background-color: $success-color; 25 | color: #fff; 26 | font-size: 16px; 27 | animation:ani-ui-message 0.3s; 28 | &.success{ 29 | background-color: $success-color; 30 | } 31 | &.error { 32 | background-color: $danger-color; 33 | } 34 | &.loading{ 35 | background-color: $primary-color; 36 | } 37 | &.warning{ 38 | background-color: $warning-color; 39 | } 40 | } 41 | 42 | 43 | @keyframes ani-ui-message { 44 | 0% { 45 | opacity:0; 46 | transform: translate(0, -100px); 47 | } 48 | 100% { 49 | opacity:1; 50 | transform: translate(0, 0); 51 | } 52 | } -------------------------------------------------------------------------------- /angular-permission/README.md: -------------------------------------------------------------------------------- 1 | ## angular-permission 2 | 3 | ### demo 4 | [click here](https://techjs.cn/demo/angular-components/angular-permission/) 5 | 6 | ### 说明 7 | 一个基于angular的视图权限指令 8 | ### 依赖 9 | - angular 10 | 11 | 12 | ### 使用方式 13 | 14 | **html代码** 15 | ```html 16 | 17 | 18 | 19 | ``` 20 | 21 | **angular代码** 22 | ```javascript 23 | var app = angular.module("app", ["ngPermission"]); 24 | var data = ["add", "edit"]; 25 | app.config(["ngPermissionProvider", function(ngPermissionProvider) { 26 | ngPermissionProvider.setData(data); 27 | }]); 28 | app.controller("ctrl", ["$scope", function($scope) { 29 | }]); 30 | ``` -------------------------------------------------------------------------------- /angular-permission/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "angular-components", 3 | "version": "1.0.0", 4 | "homepage": "https://github.com/linjinying/angular-components", 5 | "authors": [ 6 | "linjinying " 7 | ], 8 | "description": "", 9 | "main": "", 10 | "moduleType": [], 11 | "license": "MIT", 12 | "ignore": [ 13 | "**/.*", 14 | "node_modules", 15 | "bower_components", 16 | "test", 17 | "tests" 18 | ], 19 | "dependencies": { 20 | "angular": "1.3.0" 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /angular-permission/demo/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | demo 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /angular-permission/dist/js/angular-permission.js: -------------------------------------------------------------------------------- 1 | /* 2 | - @Component Name:用于根据权限数据是否显示按钮的指令,调用方式很简单:has-permission="edit" 3 | - @Author: jinying.lin 4 | - @DateTime: 2016-06-14 5 | - @Version 1.0.0 6 | */ 7 | angular.module("ngPermission",[]) 8 | .provider('ngPermission', function () { 9 | var service = {}; 10 | this.setData = function(data){ 11 | service.data = data; 12 | }; 13 | this.$get = function () { 14 | return service; 15 | } 16 | }) 17 | .directive('hasPermission', ["ngPermission",function(ngPermission) { 18 | return { 19 | restrict: "EA", 20 | link: function(scope, element, attr) { 21 | var permissionName = attr.hasPermission; 22 | var isPermission = false; 23 | for (var i = 0; i < ngPermission.data.length; i++) { 24 | if (permissionName === ngPermission.data[i]) { 25 | isPermission = true; 26 | } 27 | } 28 | if (!isPermission) { 29 | element.remove(); 30 | } 31 | } 32 | }; 33 | }]); 34 | -------------------------------------------------------------------------------- /angular-permission/dist/js/angular-permission.min.js: -------------------------------------------------------------------------------- 1 | angular.module("ngPermission",[]).provider("ngPermission",function(){var n={};this.setData=function(i){n.data=i},this.$get=function(){return n}}).directive("hasPermission",["ngPermission",function(n){return{restrict:"EA",link:function(i,r,t){for(var e=t.hasPermission,s=!1,a=0;a