├── .idea
├── .name
├── watcherTasks.xml
├── encodings.xml
├── vcs.xml
├── modules.xml
├── jsLibraryMappings.xml
├── play-chat.iml
├── webResources.xml
├── libraries
│ └── play_chat_node_modules.xml
└── misc.xml
├── .bowerrc
├── public
├── bower
│ ├── jquery
│ │ ├── src
│ │ │ ├── outro.js
│ │ │ ├── var
│ │ │ │ ├── arr.js
│ │ │ │ ├── deletedIds.js
│ │ │ │ ├── rnotwhite.js
│ │ │ │ ├── document.js
│ │ │ │ ├── push.js
│ │ │ │ ├── concat.js
│ │ │ │ ├── slice.js
│ │ │ │ ├── class2type.js
│ │ │ │ ├── indexOf.js
│ │ │ │ ├── pnum.js
│ │ │ │ ├── toString.js
│ │ │ │ ├── hasOwn.js
│ │ │ │ ├── documentElement.js
│ │ │ │ ├── support.js
│ │ │ │ └── rcssNum.js
│ │ │ ├── selector.js
│ │ │ ├── ajax
│ │ │ │ ├── var
│ │ │ │ │ ├── rquery.js
│ │ │ │ │ ├── location.js
│ │ │ │ │ └── nonce.js
│ │ │ │ ├── parseJSON.js
│ │ │ │ ├── parseXML.js
│ │ │ │ └── script.js
│ │ │ ├── css
│ │ │ │ ├── var
│ │ │ │ │ ├── rmargin.js
│ │ │ │ │ ├── cssExpand.js
│ │ │ │ │ ├── rnumnonpx.js
│ │ │ │ │ ├── isHidden.js
│ │ │ │ │ ├── getStyles.js
│ │ │ │ │ └── swap.js
│ │ │ │ ├── hiddenVisibleSelectors.js
│ │ │ │ ├── addGetHookIf.js
│ │ │ │ └── showHide.js
│ │ │ ├── manipulation
│ │ │ │ ├── var
│ │ │ │ │ ├── rtagName.js
│ │ │ │ │ ├── rleadingWhitespace.js
│ │ │ │ │ ├── rcheckableType.js
│ │ │ │ │ ├── rscriptType.js
│ │ │ │ │ └── nodeNames.js
│ │ │ │ ├── _evalUrl.js
│ │ │ │ ├── createSafeFragment.js
│ │ │ │ ├── setGlobalEval.js
│ │ │ │ ├── getAll.js
│ │ │ │ ├── wrapMap.js
│ │ │ │ └── support.js
│ │ │ ├── data
│ │ │ │ ├── var
│ │ │ │ │ ├── dataPriv.js
│ │ │ │ │ ├── dataUser.js
│ │ │ │ │ └── acceptData.js
│ │ │ │ ├── support.js
│ │ │ │ └── accepts.js
│ │ │ ├── core
│ │ │ │ ├── var
│ │ │ │ │ └── rsingleTag.js
│ │ │ │ ├── DOMEval.js
│ │ │ │ ├── support.js
│ │ │ │ ├── parseHTML.js
│ │ │ │ └── access.js
│ │ │ ├── traversing
│ │ │ │ └── var
│ │ │ │ │ ├── rneedsContext.js
│ │ │ │ │ ├── siblings.js
│ │ │ │ │ └── dir.js
│ │ │ ├── event
│ │ │ │ ├── support.js
│ │ │ │ ├── ajax.js
│ │ │ │ ├── alias.js
│ │ │ │ └── focusin.js
│ │ │ ├── attributes.js
│ │ │ ├── effects
│ │ │ │ ├── animatedSelector.js
│ │ │ │ └── support.js
│ │ │ ├── selector-sizzle.js
│ │ │ ├── .jshintrc
│ │ │ ├── exports
│ │ │ │ ├── global.js
│ │ │ │ └── amd.js
│ │ │ ├── deferred
│ │ │ │ └── exceptionHook.js
│ │ │ ├── queue
│ │ │ │ └── delay.js
│ │ │ ├── jquery.js
│ │ │ ├── deprecated.js
│ │ │ ├── attributes
│ │ │ │ └── support.js
│ │ │ └── intro.js
│ │ ├── bower.json
│ │ ├── .bower.json
│ │ └── LICENSE.txt
│ ├── angular
│ │ ├── index.js
│ │ ├── angular.min.js.gzip
│ │ ├── bower.json
│ │ ├── angular-csp.css
│ │ ├── .bower.json
│ │ └── package.json
│ ├── moment
│ │ ├── src
│ │ │ ├── lib
│ │ │ │ ├── locale
│ │ │ │ │ ├── constructor.js
│ │ │ │ │ ├── pre-post-format.js
│ │ │ │ │ ├── invalid.js
│ │ │ │ │ ├── ordinal.js
│ │ │ │ │ ├── calendar.js
│ │ │ │ │ ├── en.js
│ │ │ │ │ ├── set.js
│ │ │ │ │ ├── formats.js
│ │ │ │ │ ├── locale.js
│ │ │ │ │ ├── relative.js
│ │ │ │ │ └── lists.js
│ │ │ │ ├── moment
│ │ │ │ │ ├── now.js
│ │ │ │ │ ├── clone.js
│ │ │ │ │ ├── creation-data.js
│ │ │ │ │ ├── valid.js
│ │ │ │ │ ├── to.js
│ │ │ │ │ ├── from.js
│ │ │ │ │ ├── moment.js
│ │ │ │ │ ├── to-type.js
│ │ │ │ │ ├── calendar.js
│ │ │ │ │ ├── format.js
│ │ │ │ │ ├── locale.js
│ │ │ │ │ ├── get-set.js
│ │ │ │ │ ├── start-end-of.js
│ │ │ │ │ └── add-subtract.js
│ │ │ │ ├── utils
│ │ │ │ │ ├── is-undefined.js
│ │ │ │ │ ├── has-own-prop.js
│ │ │ │ │ ├── is-array.js
│ │ │ │ │ ├── is-date.js
│ │ │ │ │ ├── is-function.js
│ │ │ │ │ ├── abs-ceil.js
│ │ │ │ │ ├── map.js
│ │ │ │ │ ├── abs-floor.js
│ │ │ │ │ ├── defaults.js
│ │ │ │ │ ├── to-int.js
│ │ │ │ │ ├── zero-fill.js
│ │ │ │ │ ├── hooks.js
│ │ │ │ │ ├── extend.js
│ │ │ │ │ ├── compare-arrays.js
│ │ │ │ │ └── deprecate.js
│ │ │ │ ├── create
│ │ │ │ │ ├── local.js
│ │ │ │ │ ├── utc.js
│ │ │ │ │ ├── from-object.js
│ │ │ │ │ ├── parsing-flags.js
│ │ │ │ │ ├── date-from-array.js
│ │ │ │ │ ├── valid.js
│ │ │ │ │ ├── check-overflow.js
│ │ │ │ │ └── from-string-and-array.js
│ │ │ │ ├── units
│ │ │ │ │ ├── constants.js
│ │ │ │ │ ├── timezone.js
│ │ │ │ │ ├── units.js
│ │ │ │ │ ├── timestamp.js
│ │ │ │ │ ├── minute.js
│ │ │ │ │ ├── second.js
│ │ │ │ │ ├── quarter.js
│ │ │ │ │ ├── aliases.js
│ │ │ │ │ ├── day-of-month.js
│ │ │ │ │ └── day-of-year.js
│ │ │ │ ├── duration
│ │ │ │ │ ├── duration.js
│ │ │ │ │ ├── abs.js
│ │ │ │ │ ├── add-subtract.js
│ │ │ │ │ ├── get.js
│ │ │ │ │ ├── constructor.js
│ │ │ │ │ └── iso-string.js
│ │ │ │ └── parse
│ │ │ │ │ └── token.js
│ │ │ └── locale
│ │ │ │ ├── ja.js
│ │ │ │ ├── ar-tn.js
│ │ │ │ ├── fr-ca.js
│ │ │ │ ├── km.js
│ │ │ │ ├── ko.js
│ │ │ │ ├── uz.js
│ │ │ │ ├── sw.js
│ │ │ │ ├── tzm.js
│ │ │ │ ├── da.js
│ │ │ │ ├── ar-ma.js
│ │ │ │ ├── nn.js
│ │ │ │ └── tzm-latn.js
│ │ ├── templates
│ │ │ ├── globals.js
│ │ │ ├── amd.js
│ │ │ ├── amd-named.js
│ │ │ ├── default.js
│ │ │ ├── locale-header.js
│ │ │ └── test-header.js
│ │ ├── bower.json
│ │ ├── .bower.json
│ │ └── LICENSE
│ ├── ui-select
│ │ ├── index.js
│ │ ├── bower.json
│ │ ├── composer.json
│ │ ├── .bower.json
│ │ ├── LICENSE
│ │ └── package.json
│ ├── angular-sanitize
│ │ ├── index.js
│ │ ├── bower.json
│ │ ├── .bower.json
│ │ └── package.json
│ ├── bootstrap
│ │ ├── fonts
│ │ │ ├── glyphicons-halflings-regular.eot
│ │ │ ├── glyphicons-halflings-regular.ttf
│ │ │ ├── glyphicons-halflings-regular.woff
│ │ │ └── glyphicons-halflings-regular.woff2
│ │ ├── grunt
│ │ │ ├── .jshintrc
│ │ │ ├── bs-commonjs-generator.js
│ │ │ ├── bs-raw-files-generator.js
│ │ │ ├── configBridge.json
│ │ │ ├── bs-glyphicons-data-generator.js
│ │ │ └── sauce_browsers.yml
│ │ ├── dist
│ │ │ ├── fonts
│ │ │ │ ├── glyphicons-halflings-regular.eot
│ │ │ │ ├── glyphicons-halflings-regular.ttf
│ │ │ │ ├── glyphicons-halflings-regular.woff
│ │ │ │ └── glyphicons-halflings-regular.woff2
│ │ │ └── js
│ │ │ │ └── npm.js
│ │ ├── less
│ │ │ ├── mixins
│ │ │ │ ├── center-block.less
│ │ │ │ ├── size.less
│ │ │ │ ├── opacity.less
│ │ │ │ ├── text-emphasis.less
│ │ │ │ ├── text-overflow.less
│ │ │ │ ├── background-variant.less
│ │ │ │ ├── tab-focus.less
│ │ │ │ ├── labels.less
│ │ │ │ ├── resize.less
│ │ │ │ ├── progress-bar.less
│ │ │ │ ├── reset-filter.less
│ │ │ │ ├── nav-divider.less
│ │ │ │ ├── alerts.less
│ │ │ │ ├── nav-vertical-align.less
│ │ │ │ ├── responsive-visibility.less
│ │ │ │ ├── border-radius.less
│ │ │ │ ├── reset-text.less
│ │ │ │ ├── pagination.less
│ │ │ │ ├── panels.less
│ │ │ │ ├── hide-text.less
│ │ │ │ ├── list-group.less
│ │ │ │ ├── clearfix.less
│ │ │ │ ├── table-row.less
│ │ │ │ ├── image.less
│ │ │ │ └── buttons.less
│ │ │ ├── .csslintrc
│ │ │ ├── wells.less
│ │ │ ├── breadcrumbs.less
│ │ │ ├── responsive-embed.less
│ │ │ ├── component-animations.less
│ │ │ ├── close.less
│ │ │ ├── thumbnails.less
│ │ │ ├── utilities.less
│ │ │ ├── pager.less
│ │ │ ├── media.less
│ │ │ ├── mixins.less
│ │ │ ├── labels.less
│ │ │ ├── jumbotron.less
│ │ │ ├── badges.less
│ │ │ ├── bootstrap.less
│ │ │ ├── code.less
│ │ │ ├── grid.less
│ │ │ └── alerts.less
│ │ ├── js
│ │ │ └── .jshintrc
│ │ ├── CHANGELOG.md
│ │ ├── nuget
│ │ │ ├── MyGet.ps1
│ │ │ ├── bootstrap.nuspec
│ │ │ └── bootstrap.less.nuspec
│ │ ├── bower.json
│ │ ├── package.js
│ │ ├── .bower.json
│ │ └── LICENSE
│ ├── ngprogress
│ │ ├── bower.json
│ │ ├── ngProgress.css
│ │ ├── .bower.json
│ │ └── LICENSE
│ └── angular-ui-router
│ │ ├── bower.json
│ │ ├── .bower.json
│ │ ├── LICENSE
│ │ └── src
│ │ ├── stateFilters.js
│ │ ├── view.js
│ │ └── viewScroll.js
└── css
│ ├── style.css
│ └── style.scss
├── views
├── error.jade
└── layout.jade
├── libs
├── models
│ ├── user.js
│ └── message.js
└── database.js
├── README.md
├── .gitignore
├── gulpfile.js
└── package.json
/.idea/.name:
--------------------------------------------------------------------------------
1 | play-chat
--------------------------------------------------------------------------------
/.bowerrc:
--------------------------------------------------------------------------------
1 | {
2 | "directory": "public/bower"
3 | }
--------------------------------------------------------------------------------
/public/bower/jquery/src/outro.js:
--------------------------------------------------------------------------------
1 | return jQuery;
2 | }));
3 |
--------------------------------------------------------------------------------
/public/bower/angular/index.js:
--------------------------------------------------------------------------------
1 | require('./angular');
2 | module.exports = angular;
3 |
--------------------------------------------------------------------------------
/public/bower/jquery/src/var/arr.js:
--------------------------------------------------------------------------------
1 | define( function() {
2 | return [];
3 | } );
4 |
--------------------------------------------------------------------------------
/public/bower/moment/src/lib/locale/constructor.js:
--------------------------------------------------------------------------------
1 | export function Locale() {
2 | }
3 |
--------------------------------------------------------------------------------
/public/bower/jquery/src/selector.js:
--------------------------------------------------------------------------------
1 | define( [ "./selector-sizzle" ], function() {} );
2 |
--------------------------------------------------------------------------------
/public/bower/jquery/src/var/deletedIds.js:
--------------------------------------------------------------------------------
1 | define( function() {
2 | return [];
3 | } );
4 |
--------------------------------------------------------------------------------
/public/bower/jquery/src/ajax/var/rquery.js:
--------------------------------------------------------------------------------
1 | define( function() {
2 | return ( /\?/ );
3 | } );
4 |
--------------------------------------------------------------------------------
/public/bower/jquery/src/var/rnotwhite.js:
--------------------------------------------------------------------------------
1 | define( function() {
2 | return ( /\S+/g );
3 | } );
4 |
--------------------------------------------------------------------------------
/public/bower/ui-select/index.js:
--------------------------------------------------------------------------------
1 | require('./dist/select.js');
2 | module.exports = 'ui.select';
3 |
--------------------------------------------------------------------------------
/public/bower/jquery/src/css/var/rmargin.js:
--------------------------------------------------------------------------------
1 | define( function() {
2 | return ( /^margin/ );
3 | } );
4 |
--------------------------------------------------------------------------------
/public/bower/jquery/src/var/document.js:
--------------------------------------------------------------------------------
1 | define( function() {
2 | return window.document;
3 | } );
4 |
--------------------------------------------------------------------------------
/public/bower/angular-sanitize/index.js:
--------------------------------------------------------------------------------
1 | require('./angular-sanitize');
2 | module.exports = 'ngSanitize';
3 |
--------------------------------------------------------------------------------
/public/bower/jquery/src/ajax/var/location.js:
--------------------------------------------------------------------------------
1 | define( function() {
2 | return window.location;
3 | } );
4 |
--------------------------------------------------------------------------------
/public/bower/jquery/src/manipulation/var/rtagName.js:
--------------------------------------------------------------------------------
1 | define( function() {
2 | return ( /<([\w:-]+)/ );
3 | } );
4 |
--------------------------------------------------------------------------------
/public/bower/jquery/src/var/push.js:
--------------------------------------------------------------------------------
1 | define( [
2 | "./arr"
3 | ], function( arr ) {
4 | return arr.push;
5 | } );
6 |
--------------------------------------------------------------------------------
/public/bower/jquery/src/manipulation/var/rleadingWhitespace.js:
--------------------------------------------------------------------------------
1 | define( function() {
2 | return ( /^\s+/ );
3 | } );
4 |
--------------------------------------------------------------------------------
/public/bower/jquery/src/var/concat.js:
--------------------------------------------------------------------------------
1 | define( [
2 | "./arr"
3 | ], function( arr ) {
4 | return arr.concat;
5 | } );
6 |
--------------------------------------------------------------------------------
/public/bower/jquery/src/var/slice.js:
--------------------------------------------------------------------------------
1 | define( [
2 | "./arr"
3 | ], function( arr ) {
4 | return arr.slice;
5 | } );
6 |
--------------------------------------------------------------------------------
/public/bower/jquery/src/css/var/cssExpand.js:
--------------------------------------------------------------------------------
1 | define( function() {
2 | return [ "Top", "Right", "Bottom", "Left" ];
3 | } );
4 |
--------------------------------------------------------------------------------
/public/bower/jquery/src/var/class2type.js:
--------------------------------------------------------------------------------
1 | define( function() {
2 |
3 | // [[Class]] -> type pairs
4 | return {};
5 | } );
6 |
--------------------------------------------------------------------------------
/public/bower/jquery/src/var/indexOf.js:
--------------------------------------------------------------------------------
1 | define( [
2 | "./arr"
3 | ], function( arr ) {
4 | return arr.indexOf;
5 | } );
6 |
--------------------------------------------------------------------------------
/views/error.jade:
--------------------------------------------------------------------------------
1 | extends layout
2 |
3 | block content
4 | h1= message
5 | h2= error.status
6 | pre #{error.stack}
7 |
--------------------------------------------------------------------------------
/public/bower/jquery/src/data/var/dataPriv.js:
--------------------------------------------------------------------------------
1 | define( [
2 | "../Data"
3 | ], function( Data ) {
4 | return new Data();
5 | } );
6 |
--------------------------------------------------------------------------------
/public/bower/jquery/src/data/var/dataUser.js:
--------------------------------------------------------------------------------
1 | define( [
2 | "../Data"
3 | ], function( Data ) {
4 | return new Data();
5 | } );
6 |
--------------------------------------------------------------------------------
/public/bower/jquery/src/manipulation/var/rcheckableType.js:
--------------------------------------------------------------------------------
1 | define( function() {
2 | return ( /^(?:checkbox|radio)$/i );
3 | } );
4 |
--------------------------------------------------------------------------------
/public/bower/jquery/src/var/pnum.js:
--------------------------------------------------------------------------------
1 | define( function() {
2 | return ( /[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/ ).source;
3 | } );
4 |
--------------------------------------------------------------------------------
/public/bower/moment/src/lib/locale/pre-post-format.js:
--------------------------------------------------------------------------------
1 | export function preParsePostFormat (string) {
2 | return string;
3 | }
4 |
--------------------------------------------------------------------------------
/public/bower/jquery/src/ajax/var/nonce.js:
--------------------------------------------------------------------------------
1 | define( [
2 | "../../core"
3 | ], function( jQuery ) {
4 | return jQuery.now();
5 | } );
6 |
--------------------------------------------------------------------------------
/public/bower/jquery/src/manipulation/var/rscriptType.js:
--------------------------------------------------------------------------------
1 | define( function() {
2 | return ( /^$|\/(?:java|ecma)script/i );
3 | } );
4 |
--------------------------------------------------------------------------------
/public/bower/moment/src/lib/moment/now.js:
--------------------------------------------------------------------------------
1 | export var now = function () {
2 | return Date.now ? Date.now() : +(new Date());
3 | };
4 |
--------------------------------------------------------------------------------
/public/bower/moment/src/lib/utils/is-undefined.js:
--------------------------------------------------------------------------------
1 | export default function isUndefined(input) {
2 | return input === void 0;
3 | }
4 |
--------------------------------------------------------------------------------
/public/bower/moment/templates/globals.js:
--------------------------------------------------------------------------------
1 | /*global window:false*/
2 |
3 | import moment from "./moment";
4 |
5 | window.moment = moment;
6 |
--------------------------------------------------------------------------------
/public/bower/angular/angular.min.js.gzip:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mosluce/realtime-chat-practice/HEAD/public/bower/angular/angular.min.js.gzip
--------------------------------------------------------------------------------
/public/bower/jquery/src/var/toString.js:
--------------------------------------------------------------------------------
1 | define( [
2 | "./class2type"
3 | ], function( class2type ) {
4 | return class2type.toString;
5 | } );
6 |
--------------------------------------------------------------------------------
/public/bower/jquery/src/var/hasOwn.js:
--------------------------------------------------------------------------------
1 | define( [
2 | "./class2type"
3 | ], function( class2type ) {
4 | return class2type.hasOwnProperty;
5 | } );
6 |
--------------------------------------------------------------------------------
/public/bower/jquery/src/var/documentElement.js:
--------------------------------------------------------------------------------
1 | define( [
2 | "./document"
3 | ], function( document ) {
4 | return document.documentElement;
5 | } );
6 |
--------------------------------------------------------------------------------
/public/bower/jquery/src/var/support.js:
--------------------------------------------------------------------------------
1 | define( function() {
2 |
3 | // All support tests are defined in their respective modules.
4 | return {};
5 | } );
6 |
--------------------------------------------------------------------------------
/public/bower/moment/src/lib/moment/clone.js:
--------------------------------------------------------------------------------
1 | import { Moment } from './constructor';
2 |
3 | export function clone () {
4 | return new Moment(this);
5 | }
6 |
--------------------------------------------------------------------------------
/public/bower/moment/src/lib/utils/has-own-prop.js:
--------------------------------------------------------------------------------
1 | export default function hasOwnProp(a, b) {
2 | return Object.prototype.hasOwnProperty.call(a, b);
3 | }
4 |
--------------------------------------------------------------------------------
/public/bower/jquery/src/core/var/rsingleTag.js:
--------------------------------------------------------------------------------
1 | define( function() {
2 |
3 | // Match a standalone tag
4 | return ( /^<([\w-]+)\s*\/?>(?:<\/\1>|)$/ );
5 | } );
6 |
--------------------------------------------------------------------------------
/public/bower/moment/src/lib/utils/is-array.js:
--------------------------------------------------------------------------------
1 | export default function isArray(input) {
2 | return Object.prototype.toString.call(input) === '[object Array]';
3 | }
4 |
--------------------------------------------------------------------------------
/public/bower/moment/templates/amd.js:
--------------------------------------------------------------------------------
1 | /*global define:false*/
2 |
3 | import moment from "./moment";
4 |
5 | define([], function () {
6 | return moment;
7 | });
8 |
--------------------------------------------------------------------------------
/.idea/watcherTasks.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/public/bower/jquery/src/css/var/rnumnonpx.js:
--------------------------------------------------------------------------------
1 | define( [
2 | "../../var/pnum"
3 | ], function( pnum ) {
4 | return new RegExp( "^(" + pnum + ")(?!px)[a-z%]+$", "i" );
5 | } );
6 |
--------------------------------------------------------------------------------
/public/bower/moment/src/lib/locale/invalid.js:
--------------------------------------------------------------------------------
1 | export var defaultInvalidDate = 'Invalid date';
2 |
3 | export function invalidDate () {
4 | return this._invalidDate;
5 | }
6 |
--------------------------------------------------------------------------------
/public/bower/bootstrap/fonts/glyphicons-halflings-regular.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mosluce/realtime-chat-practice/HEAD/public/bower/bootstrap/fonts/glyphicons-halflings-regular.eot
--------------------------------------------------------------------------------
/public/bower/bootstrap/fonts/glyphicons-halflings-regular.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mosluce/realtime-chat-practice/HEAD/public/bower/bootstrap/fonts/glyphicons-halflings-regular.ttf
--------------------------------------------------------------------------------
/public/bower/bootstrap/grunt/.jshintrc:
--------------------------------------------------------------------------------
1 | {
2 | "extends" : "../js/.jshintrc",
3 | "asi" : false,
4 | "browser" : false,
5 | "es3" : false,
6 | "node" : true
7 | }
8 |
--------------------------------------------------------------------------------
/public/bower/jquery/src/var/rcssNum.js:
--------------------------------------------------------------------------------
1 | define( [
2 | "../var/pnum"
3 | ], function( pnum ) {
4 |
5 | return new RegExp( "^(?:([+-])=|)(" + pnum + ")([a-z%]*)$", "i" );
6 |
7 | } );
8 |
--------------------------------------------------------------------------------
/public/bower/moment/templates/amd-named.js:
--------------------------------------------------------------------------------
1 | /*global define:false*/
2 |
3 | import moment from "./moment";
4 |
5 | define("moment", [], function () {
6 | return moment;
7 | });
8 |
--------------------------------------------------------------------------------
/public/bower/bootstrap/fonts/glyphicons-halflings-regular.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mosluce/realtime-chat-practice/HEAD/public/bower/bootstrap/fonts/glyphicons-halflings-regular.woff
--------------------------------------------------------------------------------
/public/bower/bootstrap/fonts/glyphicons-halflings-regular.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mosluce/realtime-chat-practice/HEAD/public/bower/bootstrap/fonts/glyphicons-halflings-regular.woff2
--------------------------------------------------------------------------------
/public/bower/jquery/src/traversing/var/rneedsContext.js:
--------------------------------------------------------------------------------
1 | define( [
2 | "../../core",
3 | "../../selector"
4 | ], function( jQuery ) {
5 | return jQuery.expr.match.needsContext;
6 | } );
7 |
--------------------------------------------------------------------------------
/public/bower/moment/src/lib/utils/is-date.js:
--------------------------------------------------------------------------------
1 | export default function isDate(input) {
2 | return input instanceof Date || Object.prototype.toString.call(input) === '[object Date]';
3 | }
4 |
--------------------------------------------------------------------------------
/.idea/encodings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/public/bower/bootstrap/dist/fonts/glyphicons-halflings-regular.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mosluce/realtime-chat-practice/HEAD/public/bower/bootstrap/dist/fonts/glyphicons-halflings-regular.eot
--------------------------------------------------------------------------------
/public/bower/bootstrap/dist/fonts/glyphicons-halflings-regular.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mosluce/realtime-chat-practice/HEAD/public/bower/bootstrap/dist/fonts/glyphicons-halflings-regular.ttf
--------------------------------------------------------------------------------
/public/bower/bootstrap/dist/fonts/glyphicons-halflings-regular.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mosluce/realtime-chat-practice/HEAD/public/bower/bootstrap/dist/fonts/glyphicons-halflings-regular.woff
--------------------------------------------------------------------------------
/public/bower/bootstrap/dist/fonts/glyphicons-halflings-regular.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mosluce/realtime-chat-practice/HEAD/public/bower/bootstrap/dist/fonts/glyphicons-halflings-regular.woff2
--------------------------------------------------------------------------------
/public/bower/bootstrap/less/mixins/center-block.less:
--------------------------------------------------------------------------------
1 | // Center-align a block level element
2 |
3 | .center-block() {
4 | display: block;
5 | margin-left: auto;
6 | margin-right: auto;
7 | }
8 |
--------------------------------------------------------------------------------
/public/bower/jquery/src/event/support.js:
--------------------------------------------------------------------------------
1 | define( [
2 | "../var/support"
3 | ], function( support ) {
4 |
5 | support.focusin = "onfocusin" in window;
6 |
7 | return support;
8 |
9 | } );
10 |
--------------------------------------------------------------------------------
/.idea/vcs.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/public/bower/angular/bower.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "angular",
3 | "version": "1.5.0",
4 | "license": "MIT",
5 | "main": "./angular.js",
6 | "ignore": [],
7 | "dependencies": {
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/public/bower/moment/src/lib/utils/is-function.js:
--------------------------------------------------------------------------------
1 | export default function isFunction(input) {
2 | return input instanceof Function || Object.prototype.toString.call(input) === '[object Function]';
3 | }
4 |
--------------------------------------------------------------------------------
/public/bower/bootstrap/less/mixins/size.less:
--------------------------------------------------------------------------------
1 | // Sizing shortcuts
2 |
3 | .size(@width; @height) {
4 | width: @width;
5 | height: @height;
6 | }
7 |
8 | .square(@size) {
9 | .size(@size; @size);
10 | }
11 |
--------------------------------------------------------------------------------
/public/bower/bootstrap/less/mixins/opacity.less:
--------------------------------------------------------------------------------
1 | // Opacity
2 |
3 | .opacity(@opacity) {
4 | opacity: @opacity;
5 | // IE8 filter
6 | @opacity-ie: (@opacity * 100);
7 | filter: ~"alpha(opacity=@{opacity-ie})";
8 | }
9 |
--------------------------------------------------------------------------------
/public/bower/bootstrap/less/mixins/text-emphasis.less:
--------------------------------------------------------------------------------
1 | // Typography
2 |
3 | .text-emphasis-variant(@color) {
4 | color: @color;
5 | a&:hover,
6 | a&:focus {
7 | color: darken(@color, 10%);
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/public/bower/moment/src/lib/utils/abs-ceil.js:
--------------------------------------------------------------------------------
1 | export default function absCeil (number) {
2 | if (number < 0) {
3 | return Math.floor(number);
4 | } else {
5 | return Math.ceil(number);
6 | }
7 | }
8 |
--------------------------------------------------------------------------------
/public/bower/moment/src/lib/utils/map.js:
--------------------------------------------------------------------------------
1 | export default function map(arr, fn) {
2 | var res = [], i;
3 | for (i = 0; i < arr.length; ++i) {
4 | res.push(fn(arr[i], i));
5 | }
6 | return res;
7 | }
8 |
--------------------------------------------------------------------------------
/public/bower/moment/src/lib/utils/abs-floor.js:
--------------------------------------------------------------------------------
1 | export default function absFloor (number) {
2 | if (number < 0) {
3 | return Math.ceil(number);
4 | } else {
5 | return Math.floor(number);
6 | }
7 | }
8 |
--------------------------------------------------------------------------------
/public/bower/moment/src/lib/locale/ordinal.js:
--------------------------------------------------------------------------------
1 | export var defaultOrdinal = '%d';
2 | export var defaultOrdinalParse = /\d{1,2}/;
3 |
4 | export function ordinal (number) {
5 | return this._ordinal.replace('%d', number);
6 | }
7 |
8 |
--------------------------------------------------------------------------------
/public/bower/bootstrap/less/mixins/text-overflow.less:
--------------------------------------------------------------------------------
1 | // Text overflow
2 | // Requires inline-block or block for proper styling
3 |
4 | .text-overflow() {
5 | overflow: hidden;
6 | text-overflow: ellipsis;
7 | white-space: nowrap;
8 | }
9 |
--------------------------------------------------------------------------------
/public/bower/moment/src/lib/create/local.js:
--------------------------------------------------------------------------------
1 | import { createLocalOrUTC } from './from-anything';
2 |
3 | export function createLocal (input, format, locale, strict) {
4 | return createLocalOrUTC(input, format, locale, strict, false);
5 | }
6 |
--------------------------------------------------------------------------------
/public/bower/moment/src/lib/create/utc.js:
--------------------------------------------------------------------------------
1 | import { createLocalOrUTC } from './from-anything';
2 |
3 | export function createUTC (input, format, locale, strict) {
4 | return createLocalOrUTC(input, format, locale, strict, true).utc();
5 | }
6 |
--------------------------------------------------------------------------------
/public/bower/bootstrap/less/mixins/background-variant.less:
--------------------------------------------------------------------------------
1 | // Contextual backgrounds
2 |
3 | .bg-variant(@color) {
4 | background-color: @color;
5 | a&:hover,
6 | a&:focus {
7 | background-color: darken(@color, 10%);
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/public/bower/bootstrap/less/mixins/tab-focus.less:
--------------------------------------------------------------------------------
1 | // WebKit-style focus
2 |
3 | .tab-focus() {
4 | // Default
5 | outline: thin dotted;
6 | // WebKit
7 | outline: 5px auto -webkit-focus-ring-color;
8 | outline-offset: -2px;
9 | }
10 |
--------------------------------------------------------------------------------
/public/bower/angular-sanitize/bower.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "angular-sanitize",
3 | "version": "1.5.0",
4 | "license": "MIT",
5 | "main": "./angular-sanitize.js",
6 | "ignore": [],
7 | "dependencies": {
8 | "angular": "1.5.0"
9 | }
10 | }
11 |
--------------------------------------------------------------------------------
/public/bower/bootstrap/less/mixins/labels.less:
--------------------------------------------------------------------------------
1 | // Labels
2 |
3 | .label-variant(@color) {
4 | background-color: @color;
5 |
6 | &[href] {
7 | &:hover,
8 | &:focus {
9 | background-color: darken(@color, 10%);
10 | }
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/public/bower/bootstrap/less/mixins/resize.less:
--------------------------------------------------------------------------------
1 | // Resize anything
2 |
3 | .resizable(@direction) {
4 | resize: @direction; // Options: horizontal, vertical, both
5 | overflow: auto; // Per CSS3 UI, `resize` only applies when `overflow` isn't `visible`
6 | }
7 |
--------------------------------------------------------------------------------
/public/bower/jquery/bower.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "jquery",
3 | "main": "dist/jquery.js",
4 | "license": "MIT",
5 | "ignore": [
6 | "package.json"
7 | ],
8 | "keywords": [
9 | "jquery",
10 | "javascript",
11 | "browser",
12 | "library"
13 | ]
14 | }
--------------------------------------------------------------------------------
/public/bower/moment/src/lib/moment/creation-data.js:
--------------------------------------------------------------------------------
1 | export function creationData() {
2 | return {
3 | input: this._i,
4 | format: this._f,
5 | locale: this._locale,
6 | isUTC: this._isUTC,
7 | strict: this._strict
8 | };
9 | }
10 |
--------------------------------------------------------------------------------
/public/bower/bootstrap/less/mixins/progress-bar.less:
--------------------------------------------------------------------------------
1 | // Progress bars
2 |
3 | .progress-bar-variant(@color) {
4 | background-color: @color;
5 |
6 | // Deprecated parent class requirement as of v3.2.0
7 | .progress-striped & {
8 | #gradient > .striped();
9 | }
10 | }
11 |
--------------------------------------------------------------------------------
/public/bower/jquery/src/attributes.js:
--------------------------------------------------------------------------------
1 | define( [
2 | "./core",
3 | "./attributes/attr",
4 | "./attributes/prop",
5 | "./attributes/classes",
6 | "./attributes/val"
7 | ], function( jQuery ) {
8 |
9 | // Return jQuery for attributes-only inclusion
10 | return jQuery;
11 | } );
12 |
--------------------------------------------------------------------------------
/public/bower/moment/src/lib/units/constants.js:
--------------------------------------------------------------------------------
1 | export var YEAR = 0;
2 | export var MONTH = 1;
3 | export var DATE = 2;
4 | export var HOUR = 3;
5 | export var MINUTE = 4;
6 | export var SECOND = 5;
7 | export var MILLISECOND = 6;
8 | export var WEEK = 7;
9 | export var WEEKDAY = 8;
10 |
--------------------------------------------------------------------------------
/public/bower/moment/src/lib/utils/defaults.js:
--------------------------------------------------------------------------------
1 | // Pick the first defined of two or three arguments.
2 | export default function defaults(a, b, c) {
3 | if (a != null) {
4 | return a;
5 | }
6 | if (b != null) {
7 | return b;
8 | }
9 | return c;
10 | }
11 |
--------------------------------------------------------------------------------
/public/bower/jquery/src/manipulation/var/nodeNames.js:
--------------------------------------------------------------------------------
1 | define( function() {
2 | return "abbr|article|aside|audio|bdi|canvas|data|datalist|" +
3 | "details|dialog|figcaption|figure|footer|header|hgroup|main|" +
4 | "mark|meter|nav|output|picture|progress|section|summary|template|time|video";
5 | } );
6 |
--------------------------------------------------------------------------------
/.idea/modules.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/public/bower/moment/templates/default.js:
--------------------------------------------------------------------------------
1 | ;(function (global, factory) {
2 | typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
3 | typeof define === 'function' && define.amd ? define(factory) :
4 | global.moment = factory()
5 | }(this, function () { 'use strict';
6 |
--------------------------------------------------------------------------------
/public/bower/bootstrap/less/mixins/reset-filter.less:
--------------------------------------------------------------------------------
1 | // Reset filters for IE
2 | //
3 | // When you need to remove a gradient background, do not forget to use this to reset
4 | // the IE filter for IE9 and below.
5 |
6 | .reset-filter() {
7 | filter: e(%("progid:DXImageTransform.Microsoft.gradient(enabled = false)"));
8 | }
9 |
--------------------------------------------------------------------------------
/public/bower/jquery/src/ajax/parseJSON.js:
--------------------------------------------------------------------------------
1 | define( [
2 | "../core"
3 | ], function( jQuery ) {
4 |
5 | // Support: Android 2.3
6 | // Workaround failure to string-cast null input
7 | jQuery.parseJSON = function( data ) {
8 | return JSON.parse( data + "" );
9 | };
10 |
11 | return jQuery.parseJSON;
12 |
13 | } );
14 |
--------------------------------------------------------------------------------
/public/bower/jquery/src/traversing/var/siblings.js:
--------------------------------------------------------------------------------
1 | define( function() {
2 |
3 | return function( n, elem ) {
4 | var matched = [];
5 |
6 | for ( ; n; n = n.nextSibling ) {
7 | if ( n.nodeType === 1 && n !== elem ) {
8 | matched.push( n );
9 | }
10 | }
11 |
12 | return matched;
13 | };
14 |
15 | } );
16 |
--------------------------------------------------------------------------------
/public/bower/bootstrap/less/mixins/nav-divider.less:
--------------------------------------------------------------------------------
1 | // Horizontal dividers
2 | //
3 | // Dividers (basically an hr) within dropdowns and nav lists
4 |
5 | .nav-divider(@color: #e5e5e5) {
6 | height: 1px;
7 | margin: ((@line-height-computed / 2) - 1) 0;
8 | overflow: hidden;
9 | background-color: @color;
10 | }
11 |
--------------------------------------------------------------------------------
/public/bower/jquery/src/effects/animatedSelector.js:
--------------------------------------------------------------------------------
1 | define( [
2 | "../core",
3 | "../selector",
4 | "../effects"
5 | ], function( jQuery ) {
6 |
7 | jQuery.expr.filters.animated = function( elem ) {
8 | return jQuery.grep( jQuery.timers, function( fn ) {
9 | return elem === fn.elem;
10 | } ).length;
11 | };
12 |
13 | } );
14 |
--------------------------------------------------------------------------------
/.idea/jsLibraryMappings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/public/bower/bootstrap/less/mixins/alerts.less:
--------------------------------------------------------------------------------
1 | // Alerts
2 |
3 | .alert-variant(@background; @border; @text-color) {
4 | background-color: @background;
5 | border-color: @border;
6 | color: @text-color;
7 |
8 | hr {
9 | border-top-color: darken(@border, 5%);
10 | }
11 | .alert-link {
12 | color: darken(@text-color, 10%);
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/public/bower/moment/src/lib/duration/duration.js:
--------------------------------------------------------------------------------
1 | // Side effect imports
2 | import './prototype';
3 |
4 | import { createDuration } from './create';
5 | import { isDuration } from './constructor';
6 | import { getSetRelativeTimeThreshold } from './humanize';
7 |
8 | export {
9 | createDuration,
10 | isDuration,
11 | getSetRelativeTimeThreshold
12 | };
13 |
--------------------------------------------------------------------------------
/public/bower/bootstrap/js/.jshintrc:
--------------------------------------------------------------------------------
1 | {
2 | "asi" : true,
3 | "browser" : true,
4 | "eqeqeq" : false,
5 | "eqnull" : true,
6 | "es3" : true,
7 | "expr" : true,
8 | "jquery" : true,
9 | "latedef" : true,
10 | "laxbreak" : true,
11 | "nonbsp" : true,
12 | "strict" : true,
13 | "undef" : true,
14 | "unused" : true
15 | }
16 |
--------------------------------------------------------------------------------
/public/bower/jquery/src/core/DOMEval.js:
--------------------------------------------------------------------------------
1 | define( [
2 | "../var/document"
3 | ], function( document ) {
4 | function DOMEval( code, doc ) {
5 | doc = doc || document;
6 |
7 | var script = doc.createElement( "script" );
8 |
9 | script.text = code;
10 | doc.head.appendChild( script ).parentNode.removeChild( script );
11 | }
12 |
13 | return DOMEval;
14 | } );
15 |
--------------------------------------------------------------------------------
/public/bower/moment/src/lib/utils/to-int.js:
--------------------------------------------------------------------------------
1 | import absFloor from './abs-floor';
2 |
3 | export default function toInt(argumentForCoercion) {
4 | var coercedNumber = +argumentForCoercion,
5 | value = 0;
6 |
7 | if (coercedNumber !== 0 && isFinite(coercedNumber)) {
8 | value = absFloor(coercedNumber);
9 | }
10 |
11 | return value;
12 | }
13 |
--------------------------------------------------------------------------------
/public/bower/moment/templates/locale-header.js:
--------------------------------------------------------------------------------
1 | ;(function (global, factory) {
2 | typeof exports === 'object' && typeof module !== 'undefined'
3 | && typeof require === 'function' ? factory(require('../moment')) :
4 | typeof define === 'function' && define.amd ? define(['moment'], factory) :
5 | factory(global.moment)
6 | }(this, function (moment) { 'use strict';
7 |
--------------------------------------------------------------------------------
/public/bower/moment/templates/test-header.js:
--------------------------------------------------------------------------------
1 | ;(function (global, factory) {
2 | typeof exports === 'object' && typeof module !== 'undefined'
3 | && typeof require === 'function' ? factory(require('../../moment')) :
4 | typeof define === 'function' && define.amd ? define(['../../moment'], factory) :
5 | factory(global.moment)
6 | }(this, function (moment) { 'use strict';
7 |
--------------------------------------------------------------------------------
/public/bower/moment/src/lib/utils/zero-fill.js:
--------------------------------------------------------------------------------
1 | export default function zeroFill(number, targetLength, forceSign) {
2 | var absNumber = '' + Math.abs(number),
3 | zerosToFill = targetLength - absNumber.length,
4 | sign = number >= 0;
5 | return (sign ? (forceSign ? '+' : '') : '-') +
6 | Math.pow(10, Math.max(0, zerosToFill)).toString().substr(1) + absNumber;
7 | }
8 |
--------------------------------------------------------------------------------
/public/bower/moment/src/lib/utils/hooks.js:
--------------------------------------------------------------------------------
1 | export { hooks, setHookCallback };
2 |
3 | var hookCallback;
4 |
5 | function hooks () {
6 | return hookCallback.apply(null, arguments);
7 | }
8 |
9 | // This is done to register the method called with moment()
10 | // without creating circular dependencies.
11 | function setHookCallback (callback) {
12 | hookCallback = callback;
13 | }
14 |
--------------------------------------------------------------------------------
/.idea/play-chat.iml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/public/bower/ngprogress/bower.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "ngprogress",
3 | "version": "1.1.2",
4 | "main": [
5 | "build/ngProgress.js",
6 | "ngProgress.css"
7 | ],
8 | "ignore": [
9 | "**/.*",
10 | "node_modules",
11 | "bower_components",
12 | "test",
13 | "tests",
14 | "src",
15 | "Gruntfile.js",
16 | "package.json",
17 | "karma.conf.js",
18 | "index.html"
19 | ]
20 | }
21 |
--------------------------------------------------------------------------------
/libs/models/user.js:
--------------------------------------------------------------------------------
1 | var mongoose = require('mongoose');
2 | var timestamps = require('mongoose-timestamp');
3 | var Schema = mongoose.Schema;
4 |
5 | var schema = new Schema({
6 | username: String,
7 | password: String,
8 | online: Boolean,
9 | sid: String
10 | }, {/*options*/});
11 |
12 | schema.plugin(timestamps);
13 |
14 | module.exports = function (conn) {
15 | global.User = conn.model('User', schema);
16 | };
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # 即時聊天系統練習
2 |
3 | ## Frameworks
4 | Backend: Node.js + Socket.io
5 | Frontend: AngularJS + Jade
6 |
7 | ## TODOs
8 | 1. 基本傳送訊息 (√)
9 | 2. 傳送私訊 (√)
10 | 3. 體驗微升級
11 | - 留言加入日期 (√)
12 | - 重新整理不用重新登入 (√)
13 | - 保留一個小時以內的聊天記錄 (√)
14 | - 自己發的訊息靠右 (√)
15 | - 在Tab中顯示未讀訊息 (√)
16 | 4. 傳檔案
17 | 5. 群組聊天
18 | 6. HTML5 Notification
19 | 7.
20 |
21 | ## BUGs
22 | 1. 如果由伺服器斷線會造成幽靈殘留在線上使用者清單
23 |
24 | ## 許願池
25 | 1. 聊天記錄 (√)
--------------------------------------------------------------------------------
/public/bower/jquery/src/selector-sizzle.js:
--------------------------------------------------------------------------------
1 | define( [
2 | "./core",
3 | "../external/sizzle/dist/sizzle"
4 | ], function( jQuery, Sizzle ) {
5 |
6 | jQuery.find = Sizzle;
7 | jQuery.expr = Sizzle.selectors;
8 | jQuery.expr[ ":" ] = jQuery.expr.pseudos;
9 | jQuery.uniqueSort = jQuery.unique = Sizzle.uniqueSort;
10 | jQuery.text = Sizzle.getText;
11 | jQuery.isXMLDoc = Sizzle.isXML;
12 | jQuery.contains = Sizzle.contains;
13 |
14 | } );
15 |
--------------------------------------------------------------------------------
/public/bower/moment/src/lib/units/timezone.js:
--------------------------------------------------------------------------------
1 | import { addFormatToken } from '../format/format';
2 |
3 | // FORMATTING
4 |
5 | addFormatToken('z', 0, 0, 'zoneAbbr');
6 | addFormatToken('zz', 0, 0, 'zoneName');
7 |
8 | // MOMENTS
9 |
10 | export function getZoneAbbr () {
11 | return this._isUTC ? 'UTC' : '';
12 | }
13 |
14 | export function getZoneName () {
15 | return this._isUTC ? 'Coordinated Universal Time' : '';
16 | }
17 |
--------------------------------------------------------------------------------
/.idea/webResources.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
--------------------------------------------------------------------------------
/public/bower/jquery/src/data/var/acceptData.js:
--------------------------------------------------------------------------------
1 | define( function() {
2 |
3 | /**
4 | * Determines whether an object can have data
5 | */
6 | return function( owner ) {
7 |
8 | // Accepts only:
9 | // - Node
10 | // - Node.ELEMENT_NODE
11 | // - Node.DOCUMENT_NODE
12 | // - Object
13 | // - Any
14 | /* jshint -W018 */
15 | return owner.nodeType === 1 || owner.nodeType === 9 || !( +owner.nodeType );
16 | };
17 |
18 | } );
19 |
--------------------------------------------------------------------------------
/public/bower/bootstrap/less/mixins/nav-vertical-align.less:
--------------------------------------------------------------------------------
1 | // Navbar vertical align
2 | //
3 | // Vertically center elements in the navbar.
4 | // Example: an element has a height of 30px, so write out `.navbar-vertical-align(30px);` to calculate the appropriate top margin.
5 |
6 | .navbar-vertical-align(@element-height) {
7 | margin-top: ((@navbar-height - @element-height) / 2);
8 | margin-bottom: ((@navbar-height - @element-height) / 2);
9 | }
10 |
--------------------------------------------------------------------------------
/public/bower/jquery/src/event/ajax.js:
--------------------------------------------------------------------------------
1 | define( [
2 | "../core",
3 | "../event"
4 | ], function( jQuery ) {
5 |
6 | // Attach a bunch of functions for handling common AJAX events
7 | jQuery.each( [
8 | "ajaxStart",
9 | "ajaxStop",
10 | "ajaxComplete",
11 | "ajaxError",
12 | "ajaxSuccess",
13 | "ajaxSend"
14 | ], function( i, type ) {
15 | jQuery.fn[ type ] = function( fn ) {
16 | return this.on( type, fn );
17 | };
18 | } );
19 |
20 | } );
21 |
--------------------------------------------------------------------------------
/public/bower/jquery/src/manipulation/_evalUrl.js:
--------------------------------------------------------------------------------
1 | define( [
2 | "../ajax"
3 | ], function( jQuery ) {
4 |
5 | jQuery._evalUrl = function( url ) {
6 | return jQuery.ajax( {
7 | url: url,
8 |
9 | // Make this explicit, since user can override this through ajaxSetup (#11264)
10 | type: "GET",
11 | dataType: "script",
12 | async: false,
13 | global: false,
14 | "throws": true
15 | } );
16 | };
17 |
18 | return jQuery._evalUrl;
19 |
20 | } );
21 |
--------------------------------------------------------------------------------
/public/bower/bootstrap/CHANGELOG.md:
--------------------------------------------------------------------------------
1 | Bootstrap uses [GitHub's Releases feature](https://github.com/blog/1547-release-your-software) for its changelogs.
2 |
3 | See [the Releases section of our GitHub project](https://github.com/twbs/bootstrap/releases) for changelogs for each release version of Bootstrap.
4 |
5 | Release announcement posts on [the official Bootstrap blog](http://blog.getbootstrap.com) contain summaries of the most noteworthy changes made in each release.
6 |
--------------------------------------------------------------------------------
/public/bower/angular/angular-csp.css:
--------------------------------------------------------------------------------
1 | /* Include this file in your html if you are using the CSP mode. */
2 |
3 | @charset "UTF-8";
4 |
5 | [ng\:cloak], [ng-cloak], [data-ng-cloak], [x-ng-cloak],
6 | .ng-cloak, .x-ng-cloak,
7 | .ng-hide:not(.ng-hide-animate) {
8 | display: none !important;
9 | }
10 |
11 | ng\:form {
12 | display: block;
13 | }
14 |
15 | .ng-animate-shim {
16 | visibility:hidden;
17 | }
18 |
19 | .ng-anchor {
20 | position:absolute;
21 | }
22 |
--------------------------------------------------------------------------------
/public/bower/jquery/src/css/var/isHidden.js:
--------------------------------------------------------------------------------
1 | define( [
2 | "../../core",
3 | "../../selector"
4 |
5 | // css is assumed
6 | ], function( jQuery ) {
7 |
8 | return function( elem, el ) {
9 |
10 | // isHidden might be called from jQuery#filter function;
11 | // in that case, element will be second argument
12 | elem = el || elem;
13 | return jQuery.css( elem, "display" ) === "none" ||
14 | !jQuery.contains( elem.ownerDocument, elem );
15 | };
16 | } );
17 |
--------------------------------------------------------------------------------
/public/bower/moment/src/lib/moment/valid.js:
--------------------------------------------------------------------------------
1 | import { isValid as _isValid } from '../create/valid';
2 | import extend from '../utils/extend';
3 | import getParsingFlags from '../create/parsing-flags';
4 |
5 | export function isValid () {
6 | return _isValid(this);
7 | }
8 |
9 | export function parsingFlags () {
10 | return extend({}, getParsingFlags(this));
11 | }
12 |
13 | export function invalidAt () {
14 | return getParsingFlags(this).overflow;
15 | }
16 |
--------------------------------------------------------------------------------
/public/bower/moment/src/lib/utils/extend.js:
--------------------------------------------------------------------------------
1 | import hasOwnProp from './has-own-prop';
2 |
3 | export default function extend(a, b) {
4 | for (var i in b) {
5 | if (hasOwnProp(b, i)) {
6 | a[i] = b[i];
7 | }
8 | }
9 |
10 | if (hasOwnProp(b, 'toString')) {
11 | a.toString = b.toString;
12 | }
13 |
14 | if (hasOwnProp(b, 'valueOf')) {
15 | a.valueOf = b.valueOf;
16 | }
17 |
18 | return a;
19 | }
20 |
--------------------------------------------------------------------------------
/public/bower/bootstrap/less/mixins/responsive-visibility.less:
--------------------------------------------------------------------------------
1 | // Responsive utilities
2 |
3 | //
4 | // More easily include all the states for responsive-utilities.less.
5 | .responsive-visibility() {
6 | display: block !important;
7 | table& { display: table !important; }
8 | tr& { display: table-row !important; }
9 | th&,
10 | td& { display: table-cell !important; }
11 | }
12 |
13 | .responsive-invisibility() {
14 | display: none !important;
15 | }
16 |
--------------------------------------------------------------------------------
/public/bower/moment/bower.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "moment",
3 | "main": "moment.js",
4 | "ignore": [
5 | "**/.*",
6 | "benchmarks",
7 | "bower_components",
8 | "meteor",
9 | "node_modules",
10 | "scripts",
11 | "tasks",
12 | "test",
13 | "component.json",
14 | "composer.json",
15 | "CONTRIBUTING.md",
16 | "ender.js",
17 | "Gruntfile.js",
18 | "Moment.js.nuspec",
19 | "package.js",
20 | "package.json"
21 | ]
22 | }
23 |
--------------------------------------------------------------------------------
/public/bower/jquery/src/css/var/getStyles.js:
--------------------------------------------------------------------------------
1 | define( function() {
2 | return function( elem ) {
3 |
4 | // Support: IE<=11+, Firefox<=30+ (#15098, #14150)
5 | // IE throws on elements created in popups
6 | // FF meanwhile throws on frame elements through "defaultView.getComputedStyle"
7 | var view = elem.ownerDocument.defaultView;
8 |
9 | if ( !view || !view.opener ) {
10 | view = window;
11 | }
12 |
13 | return view.getComputedStyle( elem );
14 | };
15 | } );
16 |
--------------------------------------------------------------------------------
/public/bower/jquery/src/traversing/var/dir.js:
--------------------------------------------------------------------------------
1 | define( [
2 | "../../core"
3 | ], function( jQuery ) {
4 |
5 | return function( elem, dir, until ) {
6 | var matched = [],
7 | truncate = until !== undefined;
8 |
9 | while ( ( elem = elem[ dir ] ) && elem.nodeType !== 9 ) {
10 | if ( elem.nodeType === 1 ) {
11 | if ( truncate && jQuery( elem ).is( until ) ) {
12 | break;
13 | }
14 | matched.push( elem );
15 | }
16 | }
17 | return matched;
18 | };
19 |
20 | } );
21 |
--------------------------------------------------------------------------------
/public/bower/jquery/src/data/support.js:
--------------------------------------------------------------------------------
1 | define( [
2 | "../var/document",
3 | "../var/support"
4 | ], function( document, support ) {
5 |
6 | ( function() {
7 | var div = document.createElement( "div" );
8 |
9 | // Support: IE<9
10 | support.deleteExpando = true;
11 | try {
12 | delete div.test;
13 | } catch ( e ) {
14 | support.deleteExpando = false;
15 | }
16 |
17 | // Null elements to avoid leaks in IE.
18 | div = null;
19 | } )();
20 |
21 | return support;
22 |
23 | } );
24 |
--------------------------------------------------------------------------------
/public/bower/jquery/src/manipulation/createSafeFragment.js:
--------------------------------------------------------------------------------
1 | define( [
2 | "./var/nodeNames"
3 | ], function( nodeNames ) {
4 |
5 | function createSafeFragment( document ) {
6 | var list = nodeNames.split( "|" ),
7 | safeFrag = document.createDocumentFragment();
8 |
9 | if ( safeFrag.createElement ) {
10 | while ( list.length ) {
11 | safeFrag.createElement(
12 | list.pop()
13 | );
14 | }
15 | }
16 | return safeFrag;
17 | }
18 |
19 | return createSafeFragment;
20 | } );
21 |
--------------------------------------------------------------------------------
/public/bower/jquery/src/data/accepts.js:
--------------------------------------------------------------------------------
1 | define([
2 | "../core"
3 | ], function( jQuery ) {
4 |
5 | /**
6 | * Determines whether an object can have data
7 | */
8 | jQuery.acceptData = function( owner ) {
9 | // Accepts only:
10 | // - Node
11 | // - Node.ELEMENT_NODE
12 | // - Node.DOCUMENT_NODE
13 | // - Object
14 | // - Any
15 | /* jshint -W018 */
16 | return owner.nodeType === 1 || owner.nodeType === 9 || !( +owner.nodeType );
17 | };
18 |
19 | return jQuery.acceptData;
20 | });
21 |
--------------------------------------------------------------------------------
/public/bower/jquery/src/manipulation/setGlobalEval.js:
--------------------------------------------------------------------------------
1 | define( [
2 | "../data/var/dataPriv"
3 | ], function( dataPriv ) {
4 |
5 | // Mark scripts as having already been evaluated
6 | function setGlobalEval( elems, refElements ) {
7 | var i = 0,
8 | l = elems.length;
9 |
10 | for ( ; i < l; i++ ) {
11 | dataPriv.set(
12 | elems[ i ],
13 | "globalEval",
14 | !refElements || dataPriv.get( refElements[ i ], "globalEval" )
15 | );
16 | }
17 | }
18 |
19 | return setGlobalEval;
20 | } );
21 |
--------------------------------------------------------------------------------
/.idea/libraries/play_chat_node_modules.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
--------------------------------------------------------------------------------
/public/bower/bootstrap/nuget/MyGet.ps1:
--------------------------------------------------------------------------------
1 | $nuget = $env:NuGet
2 |
3 | #parse the version number out of package.json
4 | $bsversion = ((Get-Content $env:SourcesPath\package.json) -join "`n" | ConvertFrom-Json).version
5 |
6 | #create packages
7 | & $nuget pack "nuget\bootstrap.nuspec" -Verbosity detailed -NonInteractive -NoPackageAnalysis -BasePath $env:SourcesPath -Version $bsversion
8 | & $nuget pack "nuget\bootstrap.less.nuspec" -Verbosity detailed -NonInteractive -NoPackageAnalysis -BasePath $env:SourcesPath -Version $bsversion
--------------------------------------------------------------------------------
/public/bower/moment/src/lib/locale/calendar.js:
--------------------------------------------------------------------------------
1 | export var defaultCalendar = {
2 | sameDay : '[Today at] LT',
3 | nextDay : '[Tomorrow at] LT',
4 | nextWeek : 'dddd [at] LT',
5 | lastDay : '[Yesterday at] LT',
6 | lastWeek : '[Last] dddd [at] LT',
7 | sameElse : 'L'
8 | };
9 |
10 | import isFunction from '../utils/is-function';
11 |
12 | export function calendar (key, mom, now) {
13 | var output = this._calendar[key];
14 | return isFunction(output) ? output.call(mom, now) : output;
15 | }
16 |
--------------------------------------------------------------------------------
/public/bower/moment/src/lib/units/units.js:
--------------------------------------------------------------------------------
1 | // Side effect imports
2 | import './day-of-month';
3 | import './day-of-week';
4 | import './day-of-year';
5 | import './hour';
6 | import './millisecond';
7 | import './minute';
8 | import './month';
9 | import './offset';
10 | import './quarter';
11 | import './second';
12 | import './timestamp';
13 | import './timezone';
14 | import './week-year';
15 | import './week';
16 | import './year';
17 |
18 | import { normalizeUnits } from './aliases';
19 |
20 | export { normalizeUnits };
21 |
--------------------------------------------------------------------------------
/public/bower/moment/src/lib/locale/en.js:
--------------------------------------------------------------------------------
1 | import './prototype';
2 | import { getSetGlobalLocale } from './locales';
3 | import toInt from '../utils/to-int';
4 |
5 | getSetGlobalLocale('en', {
6 | ordinalParse: /\d{1,2}(th|st|nd|rd)/,
7 | ordinal : function (number) {
8 | var b = number % 10,
9 | output = (toInt(number % 100 / 10) === 1) ? 'th' :
10 | (b === 1) ? 'st' :
11 | (b === 2) ? 'nd' :
12 | (b === 3) ? 'rd' : 'th';
13 | return number + output;
14 | }
15 | });
16 |
--------------------------------------------------------------------------------
/public/bower/angular-ui-router/bower.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "angular-ui-router",
3 | "version": "0.2.18",
4 | "license" : "MIT",
5 | "main": "./release/angular-ui-router.js",
6 | "dependencies": {
7 | "angular": "^1.0.8"
8 | },
9 | "ignore": [
10 | "**/.*",
11 | "node_modules",
12 | "bower_components",
13 | "component.json",
14 | "package.json",
15 | "lib",
16 | "config",
17 | "sample",
18 | "test",
19 | "tests",
20 | "ngdoc_assets",
21 | "Gruntfile.js",
22 | "files.js"
23 | ]
24 | }
25 |
--------------------------------------------------------------------------------
/public/bower/bootstrap/dist/js/npm.js:
--------------------------------------------------------------------------------
1 | // This file is autogenerated via the `commonjs` Grunt task. You can require() this file in a CommonJS environment.
2 | require('../../js/transition.js')
3 | require('../../js/alert.js')
4 | require('../../js/button.js')
5 | require('../../js/carousel.js')
6 | require('../../js/collapse.js')
7 | require('../../js/dropdown.js')
8 | require('../../js/modal.js')
9 | require('../../js/tooltip.js')
10 | require('../../js/popover.js')
11 | require('../../js/scrollspy.js')
12 | require('../../js/tab.js')
13 | require('../../js/affix.js')
--------------------------------------------------------------------------------
/public/bower/angular/.bower.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "angular",
3 | "version": "1.5.0",
4 | "license": "MIT",
5 | "main": "./angular.js",
6 | "ignore": [],
7 | "dependencies": {},
8 | "homepage": "https://github.com/angular/bower-angular",
9 | "_release": "1.5.0",
10 | "_resolution": {
11 | "type": "version",
12 | "tag": "v1.5.0",
13 | "commit": "017a583b226a335740c5b50b3e9381a52d0bb260"
14 | },
15 | "_source": "git://github.com/angular/bower-angular.git",
16 | "_target": "^1.5.0",
17 | "_originalSource": "angular",
18 | "_direct": true
19 | }
--------------------------------------------------------------------------------
/public/bower/bootstrap/less/.csslintrc:
--------------------------------------------------------------------------------
1 | {
2 | "adjoining-classes": false,
3 | "box-sizing": false,
4 | "box-model": false,
5 | "compatible-vendor-prefixes": false,
6 | "floats": false,
7 | "font-sizes": false,
8 | "gradients": false,
9 | "important": false,
10 | "known-properties": false,
11 | "outline-none": false,
12 | "qualified-headings": false,
13 | "regex-selectors": false,
14 | "shorthand": false,
15 | "text-indent": false,
16 | "unique-headings": false,
17 | "universal-selector": false,
18 | "unqualified-attributes": false
19 | }
20 |
--------------------------------------------------------------------------------
/libs/models/message.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Created by mosluce on 2016/3/3.
3 | */
4 | var mongoose = require('mongoose');
5 | var timestamps = require('mongoose-timestamp');
6 | var Schema = mongoose.Schema;
7 |
8 | var schema = new Schema({
9 | content: String,
10 | username: String, //from username
11 | to: String, //to username
12 | sid: String, //to sid
13 | time: Date,
14 | private: Boolean
15 | }, {/*options*/});
16 |
17 | schema.plugin(timestamps);
18 |
19 | module.exports = function (conn) {
20 | global.Message = conn.model('Message', schema);
21 | };
--------------------------------------------------------------------------------
/public/bower/moment/src/lib/create/from-object.js:
--------------------------------------------------------------------------------
1 | import { normalizeObjectUnits } from '../units/aliases';
2 | import { configFromArray } from './from-array';
3 | import map from '../utils/map';
4 |
5 | export function configFromObject(config) {
6 | if (config._d) {
7 | return;
8 | }
9 |
10 | var i = normalizeObjectUnits(config._i);
11 | config._a = map([i.year, i.month, i.day || i.date, i.hour, i.minute, i.second, i.millisecond], function (obj) {
12 | return obj && parseInt(obj, 10);
13 | });
14 |
15 | configFromArray(config);
16 | }
17 |
--------------------------------------------------------------------------------
/public/bower/bootstrap/less/mixins/border-radius.less:
--------------------------------------------------------------------------------
1 | // Single side border-radius
2 |
3 | .border-top-radius(@radius) {
4 | border-top-right-radius: @radius;
5 | border-top-left-radius: @radius;
6 | }
7 | .border-right-radius(@radius) {
8 | border-bottom-right-radius: @radius;
9 | border-top-right-radius: @radius;
10 | }
11 | .border-bottom-radius(@radius) {
12 | border-bottom-right-radius: @radius;
13 | border-bottom-left-radius: @radius;
14 | }
15 | .border-left-radius(@radius) {
16 | border-bottom-left-radius: @radius;
17 | border-top-left-radius: @radius;
18 | }
19 |
--------------------------------------------------------------------------------
/public/bower/bootstrap/less/mixins/reset-text.less:
--------------------------------------------------------------------------------
1 | .reset-text() {
2 | font-family: @font-family-base;
3 | // We deliberately do NOT reset font-size.
4 | font-style: normal;
5 | font-weight: normal;
6 | letter-spacing: normal;
7 | line-break: auto;
8 | line-height: @line-height-base;
9 | text-align: left; // Fallback for where `start` is not supported
10 | text-align: start;
11 | text-decoration: none;
12 | text-shadow: none;
13 | text-transform: none;
14 | white-space: normal;
15 | word-break: normal;
16 | word-spacing: normal;
17 | word-wrap: normal;
18 | }
19 |
--------------------------------------------------------------------------------
/public/bower/moment/src/lib/locale/set.js:
--------------------------------------------------------------------------------
1 | import isFunction from '../utils/is-function';
2 |
3 | export function set (config) {
4 | var prop, i;
5 | for (i in config) {
6 | prop = config[i];
7 | if (isFunction(prop)) {
8 | this[i] = prop;
9 | } else {
10 | this['_' + i] = prop;
11 | }
12 | }
13 | // Lenient ordinal parsing accepts just a number in addition to
14 | // number + (possibly) stuff coming from _ordinalParseLenient.
15 | this._ordinalParseLenient = new RegExp(this._ordinalParse.source + '|' + (/\d{1,2}/).source);
16 | }
17 |
--------------------------------------------------------------------------------
/public/bower/bootstrap/less/mixins/pagination.less:
--------------------------------------------------------------------------------
1 | // Pagination
2 |
3 | .pagination-size(@padding-vertical; @padding-horizontal; @font-size; @line-height; @border-radius) {
4 | > li {
5 | > a,
6 | > span {
7 | padding: @padding-vertical @padding-horizontal;
8 | font-size: @font-size;
9 | line-height: @line-height;
10 | }
11 | &:first-child {
12 | > a,
13 | > span {
14 | .border-left-radius(@border-radius);
15 | }
16 | }
17 | &:last-child {
18 | > a,
19 | > span {
20 | .border-right-radius(@border-radius);
21 | }
22 | }
23 | }
24 | }
25 |
--------------------------------------------------------------------------------
/public/bower/jquery/src/.jshintrc:
--------------------------------------------------------------------------------
1 | {
2 | "boss": true,
3 | "curly": true,
4 | "eqeqeq": true,
5 | "eqnull": true,
6 | "expr": true,
7 | "immed": true,
8 | "noarg": true,
9 | "quotmark": "double",
10 | "undef": true,
11 | "unused": true,
12 |
13 | "sub": true,
14 |
15 | // Support: IE < 10, Android < 4.1
16 | // The above browsers are failing a lot of tests in the ES5
17 | // test suite at http://test262.ecmascript.org.
18 | "es3": true,
19 |
20 | "globals": {
21 | "window": true,
22 | "JSON": false,
23 |
24 | "jQuery": true,
25 | "define": true,
26 | "module": true,
27 | "noGlobal": true
28 | }
29 | }
30 |
--------------------------------------------------------------------------------
/public/bower/jquery/src/ajax/parseXML.js:
--------------------------------------------------------------------------------
1 | define( [
2 | "../core"
3 | ], function( jQuery ) {
4 |
5 | // Cross-browser xml parsing
6 | jQuery.parseXML = function( data ) {
7 | var xml;
8 | if ( !data || typeof data !== "string" ) {
9 | return null;
10 | }
11 |
12 | // Support: IE9
13 | try {
14 | xml = ( new window.DOMParser() ).parseFromString( data, "text/xml" );
15 | } catch ( e ) {
16 | xml = undefined;
17 | }
18 |
19 | if ( !xml || xml.getElementsByTagName( "parsererror" ).length ) {
20 | jQuery.error( "Invalid XML: " + data );
21 | }
22 | return xml;
23 | };
24 |
25 | return jQuery.parseXML;
26 |
27 | } );
28 |
--------------------------------------------------------------------------------
/public/bower/moment/src/lib/utils/compare-arrays.js:
--------------------------------------------------------------------------------
1 | import toInt from './to-int';
2 |
3 | // compare two arrays, return the number of differences
4 | export default function compareArrays(array1, array2, dontConvert) {
5 | var len = Math.min(array1.length, array2.length),
6 | lengthDiff = Math.abs(array1.length - array2.length),
7 | diffs = 0,
8 | i;
9 | for (i = 0; i < len; i++) {
10 | if ((dontConvert && array1[i] !== array2[i]) ||
11 | (!dontConvert && toInt(array1[i]) !== toInt(array2[i]))) {
12 | diffs++;
13 | }
14 | }
15 | return diffs + lengthDiff;
16 | }
17 |
--------------------------------------------------------------------------------
/public/bower/jquery/src/css/var/swap.js:
--------------------------------------------------------------------------------
1 | define( function() {
2 |
3 | // A method for quickly swapping in/out CSS properties to get correct calculations.
4 | return function( elem, options, callback, args ) {
5 | var ret, name,
6 | old = {};
7 |
8 | // Remember the old values, and insert the new ones
9 | for ( name in options ) {
10 | old[ name ] = elem.style[ name ];
11 | elem.style[ name ] = options[ name ];
12 | }
13 |
14 | ret = callback.apply( elem, args || [] );
15 |
16 | // Revert the old values
17 | for ( name in options ) {
18 | elem.style[ name ] = old[ name ];
19 | }
20 |
21 | return ret;
22 | };
23 |
24 | } );
25 |
--------------------------------------------------------------------------------
/public/bower/jquery/src/css/hiddenVisibleSelectors.js:
--------------------------------------------------------------------------------
1 | define( [
2 | "../core",
3 | "../selector"
4 | ], function( jQuery ) {
5 |
6 | jQuery.expr.filters.hidden = function( elem ) {
7 | return !jQuery.expr.filters.visible( elem );
8 | };
9 | jQuery.expr.filters.visible = function( elem ) {
10 |
11 | // Support: Opera <= 12.12
12 | // Opera reports offsetWidths and offsetHeights less than zero on some elements
13 | // Use OR instead of AND as the element is not visible if either is true
14 | // See tickets #10406 and #13132
15 | return elem.offsetWidth > 0 || elem.offsetHeight > 0 || elem.getClientRects().length > 0;
16 | };
17 |
18 | } );
19 |
--------------------------------------------------------------------------------
/public/bower/angular-sanitize/.bower.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "angular-sanitize",
3 | "version": "1.5.0",
4 | "license": "MIT",
5 | "main": "./angular-sanitize.js",
6 | "ignore": [],
7 | "dependencies": {
8 | "angular": "1.5.0"
9 | },
10 | "homepage": "https://github.com/angular/bower-angular-sanitize",
11 | "_release": "1.5.0",
12 | "_resolution": {
13 | "type": "version",
14 | "tag": "v1.5.0",
15 | "commit": "ba852e624a011a529197a53957063712094898bf"
16 | },
17 | "_source": "git://github.com/angular/bower-angular-sanitize.git",
18 | "_target": "^1.5.0",
19 | "_originalSource": "angular-sanitize",
20 | "_direct": true
21 | }
--------------------------------------------------------------------------------
/public/bower/jquery/.bower.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "jquery",
3 | "main": "dist/jquery.js",
4 | "license": "MIT",
5 | "ignore": [
6 | "package.json"
7 | ],
8 | "keywords": [
9 | "jquery",
10 | "javascript",
11 | "browser",
12 | "library"
13 | ],
14 | "homepage": "https://github.com/jquery/jquery-dist",
15 | "version": "2.2.1",
16 | "_release": "2.2.1",
17 | "_resolution": {
18 | "type": "version",
19 | "tag": "2.2.1",
20 | "commit": "788eaba2f83e7b7445c7a83a50c81c0704423874"
21 | },
22 | "_source": "git://github.com/jquery/jquery-dist.git",
23 | "_target": "1.9.1 - 2",
24 | "_originalSource": "jquery"
25 | }
--------------------------------------------------------------------------------
/public/bower/jquery/src/css/addGetHookIf.js:
--------------------------------------------------------------------------------
1 | define( function() {
2 |
3 | function addGetHookIf( conditionFn, hookFn ) {
4 |
5 | // Define the hook, we'll check on the first run if it's really needed.
6 | return {
7 | get: function() {
8 | if ( conditionFn() ) {
9 |
10 | // Hook not needed (or it's not possible to use it due
11 | // to missing dependency), remove it.
12 | delete this.get;
13 | return;
14 | }
15 |
16 | // Hook needed; redefine it so that the support test is not executed again.
17 | return ( this.get = hookFn ).apply( this, arguments );
18 | }
19 | };
20 | }
21 |
22 | return addGetHookIf;
23 |
24 | } );
25 |
--------------------------------------------------------------------------------
/public/bower/moment/src/lib/duration/abs.js:
--------------------------------------------------------------------------------
1 | var mathAbs = Math.abs;
2 |
3 | export function abs () {
4 | var data = this._data;
5 |
6 | this._milliseconds = mathAbs(this._milliseconds);
7 | this._days = mathAbs(this._days);
8 | this._months = mathAbs(this._months);
9 |
10 | data.milliseconds = mathAbs(data.milliseconds);
11 | data.seconds = mathAbs(data.seconds);
12 | data.minutes = mathAbs(data.minutes);
13 | data.hours = mathAbs(data.hours);
14 | data.months = mathAbs(data.months);
15 | data.years = mathAbs(data.years);
16 |
17 | return this;
18 | }
19 |
--------------------------------------------------------------------------------
/public/bower/jquery/src/manipulation/getAll.js:
--------------------------------------------------------------------------------
1 | define( [
2 | "../core"
3 | ], function( jQuery ) {
4 |
5 | function getAll( context, tag ) {
6 |
7 | // Support: IE9-11+
8 | // Use typeof to avoid zero-argument method invocation on host objects (#15151)
9 | var ret = typeof context.getElementsByTagName !== "undefined" ?
10 | context.getElementsByTagName( tag || "*" ) :
11 | typeof context.querySelectorAll !== "undefined" ?
12 | context.querySelectorAll( tag || "*" ) :
13 | [];
14 |
15 | return tag === undefined || tag && jQuery.nodeName( context, tag ) ?
16 | jQuery.merge( [ context ], ret ) :
17 | ret;
18 | }
19 |
20 | return getAll;
21 | } );
22 |
--------------------------------------------------------------------------------
/public/bower/jquery/src/exports/global.js:
--------------------------------------------------------------------------------
1 | var
2 |
3 | // Map over jQuery in case of overwrite
4 | _jQuery = window.jQuery,
5 |
6 | // Map over the $ in case of overwrite
7 | _$ = window.$;
8 |
9 | jQuery.noConflict = function( deep ) {
10 | if ( window.$ === jQuery ) {
11 | window.$ = _$;
12 | }
13 |
14 | if ( deep && window.jQuery === jQuery ) {
15 | window.jQuery = _jQuery;
16 | }
17 |
18 | return jQuery;
19 | };
20 |
21 | // Expose jQuery and $ identifiers, even in AMD
22 | // (#7102#comment:10, https://github.com/jquery/jquery/pull/557)
23 | // and CommonJS for browser emulators (#13566)
24 | if ( !noGlobal ) {
25 | window.jQuery = window.$ = jQuery;
26 | }
27 |
--------------------------------------------------------------------------------
/public/bower/bootstrap/less/mixins/panels.less:
--------------------------------------------------------------------------------
1 | // Panels
2 |
3 | .panel-variant(@border; @heading-text-color; @heading-bg-color; @heading-border) {
4 | border-color: @border;
5 |
6 | & > .panel-heading {
7 | color: @heading-text-color;
8 | background-color: @heading-bg-color;
9 | border-color: @heading-border;
10 |
11 | + .panel-collapse > .panel-body {
12 | border-top-color: @border;
13 | }
14 | .badge {
15 | color: @heading-bg-color;
16 | background-color: @heading-text-color;
17 | }
18 | }
19 | & > .panel-footer {
20 | + .panel-collapse > .panel-body {
21 | border-bottom-color: @border;
22 | }
23 | }
24 | }
25 |
--------------------------------------------------------------------------------
/public/bower/moment/src/lib/moment/to.js:
--------------------------------------------------------------------------------
1 | import { createDuration } from '../duration/create';
2 | import { createLocal } from '../create/local';
3 | import { isMoment } from '../moment/constructor';
4 |
5 | export function to (time, withoutSuffix) {
6 | if (this.isValid() &&
7 | ((isMoment(time) && time.isValid()) ||
8 | createLocal(time).isValid())) {
9 | return createDuration({from: this, to: time}).locale(this.locale()).humanize(!withoutSuffix);
10 | } else {
11 | return this.localeData().invalidDate();
12 | }
13 | }
14 |
15 | export function toNow (withoutSuffix) {
16 | return this.to(createLocal(), withoutSuffix);
17 | }
18 |
--------------------------------------------------------------------------------
/public/bower/bootstrap/less/wells.less:
--------------------------------------------------------------------------------
1 | //
2 | // Wells
3 | // --------------------------------------------------
4 |
5 |
6 | // Base class
7 | .well {
8 | min-height: 20px;
9 | padding: 19px;
10 | margin-bottom: 20px;
11 | background-color: @well-bg;
12 | border: 1px solid @well-border;
13 | border-radius: @border-radius-base;
14 | .box-shadow(inset 0 1px 1px rgba(0,0,0,.05));
15 | blockquote {
16 | border-color: #ddd;
17 | border-color: rgba(0,0,0,.15);
18 | }
19 | }
20 |
21 | // Sizes
22 | .well-lg {
23 | padding: 24px;
24 | border-radius: @border-radius-large;
25 | }
26 | .well-sm {
27 | padding: 9px;
28 | border-radius: @border-radius-small;
29 | }
30 |
--------------------------------------------------------------------------------
/public/bower/moment/src/lib/create/parsing-flags.js:
--------------------------------------------------------------------------------
1 | function defaultParsingFlags() {
2 | // We need to deep clone this object.
3 | return {
4 | empty : false,
5 | unusedTokens : [],
6 | unusedInput : [],
7 | overflow : -2,
8 | charsLeftOver : 0,
9 | nullInput : false,
10 | invalidMonth : null,
11 | invalidFormat : false,
12 | userInvalidated : false,
13 | iso : false
14 | };
15 | }
16 |
17 | export default function getParsingFlags(m) {
18 | if (m._pf == null) {
19 | m._pf = defaultParsingFlags();
20 | }
21 | return m._pf;
22 | }
23 |
--------------------------------------------------------------------------------
/public/bower/moment/src/lib/moment/from.js:
--------------------------------------------------------------------------------
1 | import { createDuration } from '../duration/create';
2 | import { createLocal } from '../create/local';
3 | import { isMoment } from '../moment/constructor';
4 |
5 | export function from (time, withoutSuffix) {
6 | if (this.isValid() &&
7 | ((isMoment(time) && time.isValid()) ||
8 | createLocal(time).isValid())) {
9 | return createDuration({to: this, from: time}).locale(this.locale()).humanize(!withoutSuffix);
10 | } else {
11 | return this.localeData().invalidDate();
12 | }
13 | }
14 |
15 | export function fromNow (withoutSuffix) {
16 | return this.from(createLocal(), withoutSuffix);
17 | }
18 |
--------------------------------------------------------------------------------
/public/bower/angular/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "angular",
3 | "version": "1.5.0",
4 | "description": "HTML enhanced for web apps",
5 | "main": "index.js",
6 | "scripts": {
7 | "test": "echo \"Error: no test specified\" && exit 1"
8 | },
9 | "repository": {
10 | "type": "git",
11 | "url": "https://github.com/angular/angular.js.git"
12 | },
13 | "keywords": [
14 | "angular",
15 | "framework",
16 | "browser",
17 | "client-side"
18 | ],
19 | "author": "Angular Core Team ",
20 | "license": "MIT",
21 | "bugs": {
22 | "url": "https://github.com/angular/angular.js/issues"
23 | },
24 | "homepage": "http://angularjs.org"
25 | }
26 |
--------------------------------------------------------------------------------
/public/bower/bootstrap/less/mixins/hide-text.less:
--------------------------------------------------------------------------------
1 | // CSS image replacement
2 | //
3 | // Heads up! v3 launched with only `.hide-text()`, but per our pattern for
4 | // mixins being reused as classes with the same name, this doesn't hold up. As
5 | // of v3.0.1 we have added `.text-hide()` and deprecated `.hide-text()`.
6 | //
7 | // Source: https://github.com/h5bp/html5-boilerplate/commit/aa0396eae757
8 |
9 | // Deprecated as of v3.0.1 (has been removed in v4)
10 | .hide-text() {
11 | font: ~"0/0" a;
12 | color: transparent;
13 | text-shadow: none;
14 | background-color: transparent;
15 | border: 0;
16 | }
17 |
18 | // New mixin to use as of v3.0.1
19 | .text-hide() {
20 | .hide-text();
21 | }
22 |
--------------------------------------------------------------------------------
/.idea/misc.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
--------------------------------------------------------------------------------
/public/bower/jquery/src/core/support.js:
--------------------------------------------------------------------------------
1 | define( [
2 | "../var/document",
3 | "../var/support"
4 | ], function( document, support ) {
5 |
6 | // Support: Safari 8+
7 | // In Safari 8 documents created via document.implementation.createHTMLDocument
8 | // collapse sibling forms: the second one becomes a child of the first one.
9 | // Because of that, this security measure has to be disabled in Safari 8.
10 | // https://bugs.webkit.org/show_bug.cgi?id=137337
11 | support.createHTMLDocument = ( function() {
12 | var body = document.implementation.createHTMLDocument( "" ).body;
13 | body.innerHTML = "";
14 | return body.childNodes.length === 2;
15 | } )();
16 |
17 | return support;
18 | } );
19 |
--------------------------------------------------------------------------------
/public/bower/moment/src/lib/units/timestamp.js:
--------------------------------------------------------------------------------
1 | import { addFormatToken } from '../format/format';
2 | import { addRegexToken, matchTimestamp, matchSigned } from '../parse/regex';
3 | import { addParseToken } from '../parse/token';
4 | import toInt from '../utils/to-int';
5 |
6 | // FORMATTING
7 |
8 | addFormatToken('X', 0, 0, 'unix');
9 | addFormatToken('x', 0, 0, 'valueOf');
10 |
11 | // PARSING
12 |
13 | addRegexToken('x', matchSigned);
14 | addRegexToken('X', matchTimestamp);
15 | addParseToken('X', function (input, array, config) {
16 | config._d = new Date(parseFloat(input, 10) * 1000);
17 | });
18 | addParseToken('x', function (input, array, config) {
19 | config._d = new Date(toInt(input));
20 | });
21 |
--------------------------------------------------------------------------------
/public/bower/bootstrap/less/mixins/list-group.less:
--------------------------------------------------------------------------------
1 | // List Groups
2 |
3 | .list-group-item-variant(@state; @background; @color) {
4 | .list-group-item-@{state} {
5 | color: @color;
6 | background-color: @background;
7 |
8 | a&,
9 | button& {
10 | color: @color;
11 |
12 | .list-group-item-heading {
13 | color: inherit;
14 | }
15 |
16 | &:hover,
17 | &:focus {
18 | color: @color;
19 | background-color: darken(@background, 5%);
20 | }
21 | &.active,
22 | &.active:hover,
23 | &.active:focus {
24 | color: #fff;
25 | background-color: @color;
26 | border-color: @color;
27 | }
28 | }
29 | }
30 | }
31 |
--------------------------------------------------------------------------------
/public/bower/jquery/src/deferred/exceptionHook.js:
--------------------------------------------------------------------------------
1 | define( [
2 | "../core",
3 | "../deferred"
4 | ], function( jQuery ) {
5 |
6 | // These usually indicate a programmer mistake during development,
7 | // warn about them ASAP rather than swallowing them by default.
8 | var rerrorNames = /^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;
9 |
10 | jQuery.Deferred.exceptionHook = function( error, stack ) {
11 |
12 | // Support: IE9
13 | // Console exists when dev tools are open, which can happen at any time
14 | if ( window.console && window.console.warn && error && rerrorNames.test( error.name ) ) {
15 | window.console.warn( "jQuery.Deferred exception: " + error.message, stack );
16 | }
17 | };
18 |
19 | } );
20 |
--------------------------------------------------------------------------------
/public/bower/moment/src/lib/locale/formats.js:
--------------------------------------------------------------------------------
1 | export var defaultLongDateFormat = {
2 | LTS : 'h:mm:ss A',
3 | LT : 'h:mm A',
4 | L : 'MM/DD/YYYY',
5 | LL : 'MMMM D, YYYY',
6 | LLL : 'MMMM D, YYYY h:mm A',
7 | LLLL : 'dddd, MMMM D, YYYY h:mm A'
8 | };
9 |
10 | export function longDateFormat (key) {
11 | var format = this._longDateFormat[key],
12 | formatUpper = this._longDateFormat[key.toUpperCase()];
13 |
14 | if (format || !formatUpper) {
15 | return format;
16 | }
17 |
18 | this._longDateFormat[key] = formatUpper.replace(/MMMM|MM|DD|dddd/g, function (val) {
19 | return val.slice(1);
20 | });
21 |
22 | return this._longDateFormat[key];
23 | }
24 |
--------------------------------------------------------------------------------
/public/bower/moment/src/lib/units/minute.js:
--------------------------------------------------------------------------------
1 | import { makeGetSet } from '../moment/get-set';
2 | import { addFormatToken } from '../format/format';
3 | import { addUnitAlias } from './aliases';
4 | import { addRegexToken, match1to2, match2 } from '../parse/regex';
5 | import { addParseToken } from '../parse/token';
6 | import { MINUTE } from './constants';
7 |
8 | // FORMATTING
9 |
10 | addFormatToken('m', ['mm', 2], 0, 'minute');
11 |
12 | // ALIASES
13 |
14 | addUnitAlias('minute', 'm');
15 |
16 | // PARSING
17 |
18 | addRegexToken('m', match1to2);
19 | addRegexToken('mm', match1to2, match2);
20 | addParseToken(['m', 'mm'], MINUTE);
21 |
22 | // MOMENTS
23 |
24 | export var getSetMinute = makeGetSet('Minutes', false);
25 |
--------------------------------------------------------------------------------
/public/bower/moment/src/lib/units/second.js:
--------------------------------------------------------------------------------
1 | import { makeGetSet } from '../moment/get-set';
2 | import { addFormatToken } from '../format/format';
3 | import { addUnitAlias } from './aliases';
4 | import { addRegexToken, match1to2, match2 } from '../parse/regex';
5 | import { addParseToken } from '../parse/token';
6 | import { SECOND } from './constants';
7 |
8 | // FORMATTING
9 |
10 | addFormatToken('s', ['ss', 2], 0, 'second');
11 |
12 | // ALIASES
13 |
14 | addUnitAlias('second', 's');
15 |
16 | // PARSING
17 |
18 | addRegexToken('s', match1to2);
19 | addRegexToken('ss', match1to2, match2);
20 | addParseToken(['s', 'ss'], SECOND);
21 |
22 | // MOMENTS
23 |
24 | export var getSetSecond = makeGetSet('Seconds', false);
25 |
--------------------------------------------------------------------------------
/public/bower/ui-select/bower.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "ui-select",
3 | "version": "0.13.2",
4 | "homepage": "https://github.com/angular-ui/ui-select",
5 | "authors": [
6 | "AngularUI"
7 | ],
8 | "description": "AngularJS ui-select",
9 | "main": ["dist/select.js", "dist/select.css"],
10 | "license": "MIT",
11 | "ignore": [
12 | "**/.*",
13 | "node_modules",
14 | "bower_components",
15 | "src",
16 | "test",
17 | "gulpfile.js",
18 | "karma.conf.js",
19 | "examples"
20 | ],
21 | "dependencies": {
22 | "angular": ">=1.2.18"
23 | },
24 | "devDependencies": {
25 | "jquery": "~1.11",
26 | "angular-sanitize": ">=1.2.18",
27 | "angular-mocks": ">=1.2.18"
28 | }
29 | }
30 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | ### Node template
2 | # Logs
3 | logs
4 | *.log
5 | npm-debug.log*
6 |
7 | # Runtime data
8 | pids
9 | *.pid
10 | *.seed
11 |
12 | # Directory for instrumented libs generated by jscoverage/JSCover
13 | lib-cov
14 |
15 | # Coverage directory used by tools like istanbul
16 | coverage
17 |
18 | # Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files)
19 | .grunt
20 |
21 | # node-waf configuration
22 | .lock-wscript
23 |
24 | # Compiled binary addons (http://nodejs.org/api/addons.html)
25 | build/Release
26 |
27 | # Dependency directory
28 | # https://docs.npmjs.com/misc/faq#should-i-check-my-node-modules-folder-into-git
29 | node_modules
30 |
31 | # Created by .ignore support plugin (hsz.mobi)
32 |
--------------------------------------------------------------------------------
/gulpfile.js:
--------------------------------------------------------------------------------
1 | var gulp = require('gulp');
2 | var sass = require('gulp-sass');
3 | var autoprefixer = require('gulp-autoprefixer');
4 | var plumber = require('gulp-plumber');
5 |
6 | gulp.task('sass', function () {
7 | gulp.src('public/css/*.scss')
8 | .pipe(plumber())
9 | .pipe(sass())
10 | .pipe(autoprefixer({
11 | browsers: ['last 2 version'],
12 | cascade: false
13 | }))
14 | .pipe(gulp.dest('public/css'));
15 | });
16 |
17 | gulp.task('watch', function () {
18 | gulp.run('sass');
19 |
20 | gulp.watch('public/css/*.scss', function () {
21 | gulp.run('sass');
22 | });
23 | });
24 |
25 | gulp.task('default', function () {
26 | gulp.run('watch');
27 | });
--------------------------------------------------------------------------------
/public/bower/bootstrap/less/mixins/clearfix.less:
--------------------------------------------------------------------------------
1 | // Clearfix
2 | //
3 | // For modern browsers
4 | // 1. The space content is one way to avoid an Opera bug when the
5 | // contenteditable attribute is included anywhere else in the document.
6 | // Otherwise it causes space to appear at the top and bottom of elements
7 | // that are clearfixed.
8 | // 2. The use of `table` rather than `block` is only necessary if using
9 | // `:before` to contain the top-margins of child elements.
10 | //
11 | // Source: http://nicolasgallagher.com/micro-clearfix-hack/
12 |
13 | .clearfix() {
14 | &:before,
15 | &:after {
16 | content: " "; // 1
17 | display: table; // 2
18 | }
19 | &:after {
20 | clear: both;
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/public/bower/bootstrap/less/breadcrumbs.less:
--------------------------------------------------------------------------------
1 | //
2 | // Breadcrumbs
3 | // --------------------------------------------------
4 |
5 |
6 | .breadcrumb {
7 | padding: @breadcrumb-padding-vertical @breadcrumb-padding-horizontal;
8 | margin-bottom: @line-height-computed;
9 | list-style: none;
10 | background-color: @breadcrumb-bg;
11 | border-radius: @border-radius-base;
12 |
13 | > li {
14 | display: inline-block;
15 |
16 | + li:before {
17 | content: "@{breadcrumb-separator}\00a0"; // Unicode space added since inline-block means non-collapsing white-space
18 | padding: 0 5px;
19 | color: @breadcrumb-color;
20 | }
21 | }
22 |
23 | > .active {
24 | color: @breadcrumb-active-color;
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/public/bower/bootstrap/less/responsive-embed.less:
--------------------------------------------------------------------------------
1 | // Embeds responsive
2 | //
3 | // Credit: Nicolas Gallagher and SUIT CSS.
4 |
5 | .embed-responsive {
6 | position: relative;
7 | display: block;
8 | height: 0;
9 | padding: 0;
10 | overflow: hidden;
11 |
12 | .embed-responsive-item,
13 | iframe,
14 | embed,
15 | object,
16 | video {
17 | position: absolute;
18 | top: 0;
19 | left: 0;
20 | bottom: 0;
21 | height: 100%;
22 | width: 100%;
23 | border: 0;
24 | }
25 | }
26 |
27 | // Modifier class for 16:9 aspect ratio
28 | .embed-responsive-16by9 {
29 | padding-bottom: 56.25%;
30 | }
31 |
32 | // Modifier class for 4:3 aspect ratio
33 | .embed-responsive-4by3 {
34 | padding-bottom: 75%;
35 | }
36 |
--------------------------------------------------------------------------------
/public/bower/jquery/src/queue/delay.js:
--------------------------------------------------------------------------------
1 | define( [
2 | "../core",
3 | "../queue",
4 | "../effects" // Delay is optional because of this dependency
5 | ], function( jQuery ) {
6 |
7 | // Based off of the plugin by Clint Helfers, with permission.
8 | // http://web.archive.org/web/20100324014747/http://blindsignals.com/index.php/2009/07/jquery-delay/
9 | jQuery.fn.delay = function( time, type ) {
10 | time = jQuery.fx ? jQuery.fx.speeds[ time ] || time : time;
11 | type = type || "fx";
12 |
13 | return this.queue( type, function( next, hooks ) {
14 | var timeout = window.setTimeout( next, time );
15 | hooks.stop = function() {
16 | window.clearTimeout( timeout );
17 | };
18 | } );
19 | };
20 |
21 | return jQuery.fn.delay;
22 | } );
23 |
--------------------------------------------------------------------------------
/public/bower/angular-sanitize/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "angular-sanitize",
3 | "version": "1.5.0",
4 | "description": "AngularJS module for sanitizing HTML",
5 | "main": "index.js",
6 | "scripts": {
7 | "test": "echo \"Error: no test specified\" && exit 1"
8 | },
9 | "repository": {
10 | "type": "git",
11 | "url": "https://github.com/angular/angular.js.git"
12 | },
13 | "keywords": [
14 | "angular",
15 | "framework",
16 | "browser",
17 | "html",
18 | "client-side"
19 | ],
20 | "author": "Angular Core Team ",
21 | "license": "MIT",
22 | "bugs": {
23 | "url": "https://github.com/angular/angular.js/issues"
24 | },
25 | "homepage": "http://angularjs.org"
26 | }
27 |
--------------------------------------------------------------------------------
/public/bower/moment/src/lib/moment/moment.js:
--------------------------------------------------------------------------------
1 | import { createLocal } from '../create/local';
2 | import { createUTC } from '../create/utc';
3 | import { createInvalid } from '../create/valid';
4 | import { isMoment } from './constructor';
5 | import { min, max } from './min-max';
6 | import { now } from './now';
7 | import momentPrototype from './prototype';
8 |
9 | function createUnix (input) {
10 | return createLocal(input * 1000);
11 | }
12 |
13 | function createInZone () {
14 | return createLocal.apply(null, arguments).parseZone();
15 | }
16 |
17 | export {
18 | now,
19 | min,
20 | max,
21 | isMoment,
22 | createUTC,
23 | createUnix,
24 | createLocal,
25 | createInZone,
26 | createInvalid,
27 | momentPrototype
28 | };
29 |
--------------------------------------------------------------------------------
/public/bower/moment/src/lib/duration/add-subtract.js:
--------------------------------------------------------------------------------
1 | import { createDuration } from './create';
2 |
3 | function addSubtract (duration, input, value, direction) {
4 | var other = createDuration(input, value);
5 |
6 | duration._milliseconds += direction * other._milliseconds;
7 | duration._days += direction * other._days;
8 | duration._months += direction * other._months;
9 |
10 | return duration._bubble();
11 | }
12 |
13 | // supports only 2.0-style add(1, 's') or add(duration)
14 | export function add (input, value) {
15 | return addSubtract(this, input, value, 1);
16 | }
17 |
18 | // supports only 2.0-style subtract(1, 's') or subtract(duration)
19 | export function subtract (input, value) {
20 | return addSubtract(this, input, value, -1);
21 | }
22 |
--------------------------------------------------------------------------------
/public/bower/jquery/src/event/alias.js:
--------------------------------------------------------------------------------
1 | define( [
2 | "../core",
3 |
4 | "../event",
5 | "./trigger"
6 | ], function( jQuery ) {
7 |
8 | jQuery.each( ( "blur focus focusin focusout load resize scroll unload click dblclick " +
9 | "mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave " +
10 | "change select submit keydown keypress keyup error contextmenu" ).split( " " ),
11 | function( i, name ) {
12 |
13 | // Handle event binding
14 | jQuery.fn[ name ] = function( data, fn ) {
15 | return arguments.length > 0 ?
16 | this.on( name, null, data, fn ) :
17 | this.trigger( name );
18 | };
19 | } );
20 |
21 | jQuery.fn.extend( {
22 | hover: function( fnOver, fnOut ) {
23 | return this.mouseenter( fnOver ).mouseleave( fnOut || fnOver );
24 | }
25 | } );
26 |
27 | } );
28 |
--------------------------------------------------------------------------------
/public/bower/jquery/src/jquery.js:
--------------------------------------------------------------------------------
1 | define( [
2 | "./core",
3 | "./selector",
4 | "./traversing",
5 | "./callbacks",
6 | "./deferred",
7 | "./core/ready",
8 | "./data",
9 | "./queue",
10 | "./queue/delay",
11 | "./attributes",
12 | "./event",
13 | "./event/alias",
14 | "./event/focusin",
15 | "./manipulation",
16 | "./manipulation/_evalUrl",
17 | "./wrap",
18 | "./css",
19 | "./css/hiddenVisibleSelectors",
20 | "./serialize",
21 | "./ajax",
22 | "./ajax/xhr",
23 | "./ajax/script",
24 | "./ajax/jsonp",
25 | "./ajax/load",
26 | "./event/ajax",
27 | "./effects",
28 | "./effects/animatedSelector",
29 | "./offset",
30 | "./dimensions",
31 | "./deprecated",
32 | "./exports/amd"
33 | ], function( jQuery ) {
34 |
35 | return ( window.jQuery = window.$ = jQuery );
36 |
37 | } );
38 |
--------------------------------------------------------------------------------
/public/bower/ngprogress/ngProgress.css:
--------------------------------------------------------------------------------
1 | /* Styling for the ngProgress itself */
2 | #ngProgress {
3 | margin: 0;
4 | padding: 0;
5 | z-index: 99998;
6 | background-color: green;
7 | color: green;
8 | box-shadow: 0 0 10px 0; /* Inherits the font color */
9 | height: 2px;
10 | opacity: 0;
11 |
12 | /* Add CSS3 styles for transition smoothing */
13 | -webkit-transition: all 0.5s ease-in-out;
14 | -moz-transition: all 0.5s ease-in-out;
15 | -o-transition: all 0.5s ease-in-out;
16 | transition: all 0.5s ease-in-out;
17 | }
18 |
19 | /* Styling for the ngProgress-container */
20 | #ngProgress-container {
21 | position: fixed;
22 | margin: 0;
23 | padding: 0;
24 | top: 0;
25 | left: 0;
26 | right: 0;
27 | z-index: 99999;
28 | }
29 |
--------------------------------------------------------------------------------
/public/bower/jquery/src/deprecated.js:
--------------------------------------------------------------------------------
1 | define( [
2 | "./core"
3 | ], function( jQuery ) {
4 |
5 | jQuery.fn.extend( {
6 |
7 | bind: function( types, data, fn ) {
8 | return this.on( types, null, data, fn );
9 | },
10 | unbind: function( types, fn ) {
11 | return this.off( types, null, fn );
12 | },
13 |
14 | delegate: function( selector, types, data, fn ) {
15 | return this.on( types, selector, data, fn );
16 | },
17 | undelegate: function( selector, types, fn ) {
18 |
19 | // ( namespace ) or ( selector, types [, fn] )
20 | return arguments.length === 1 ?
21 | this.off( selector, "**" ) :
22 | this.off( types, selector || "**", fn );
23 | },
24 | size: function() {
25 | return this.length;
26 | }
27 | } );
28 |
29 | jQuery.fn.andSelf = jQuery.fn.addBack;
30 |
31 | } );
32 |
33 |
--------------------------------------------------------------------------------
/public/bower/ngprogress/.bower.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "ngprogress",
3 | "version": "1.1.2",
4 | "main": [
5 | "build/ngProgress.js",
6 | "ngProgress.css"
7 | ],
8 | "ignore": [
9 | "**/.*",
10 | "node_modules",
11 | "bower_components",
12 | "test",
13 | "tests",
14 | "src",
15 | "Gruntfile.js",
16 | "package.json",
17 | "karma.conf.js",
18 | "index.html"
19 | ],
20 | "homepage": "https://github.com/VictorBjelkholm/ngProgress",
21 | "_release": "1.1.2",
22 | "_resolution": {
23 | "type": "version",
24 | "tag": "v1.1.2",
25 | "commit": "db88034a70943f6caa9232c025d9f4f3e04c5f27"
26 | },
27 | "_source": "git://github.com/VictorBjelkholm/ngProgress.git",
28 | "_target": "^1.1.2",
29 | "_originalSource": "ngprogress",
30 | "_direct": true
31 | }
--------------------------------------------------------------------------------
/public/bower/bootstrap/bower.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "bootstrap",
3 | "description": "The most popular front-end framework for developing responsive, mobile first projects on the web.",
4 | "keywords": [
5 | "css",
6 | "js",
7 | "less",
8 | "mobile-first",
9 | "responsive",
10 | "front-end",
11 | "framework",
12 | "web"
13 | ],
14 | "homepage": "http://getbootstrap.com",
15 | "license": "MIT",
16 | "moduleType": "globals",
17 | "main": [
18 | "less/bootstrap.less",
19 | "dist/js/bootstrap.js"
20 | ],
21 | "ignore": [
22 | "/.*",
23 | "_config.yml",
24 | "CNAME",
25 | "composer.json",
26 | "CONTRIBUTING.md",
27 | "docs",
28 | "js/tests",
29 | "test-infra"
30 | ],
31 | "dependencies": {
32 | "jquery": "1.9.1 - 2"
33 | }
34 | }
35 |
--------------------------------------------------------------------------------
/public/bower/moment/src/lib/units/quarter.js:
--------------------------------------------------------------------------------
1 | import { addFormatToken } from '../format/format';
2 | import { addUnitAlias } from './aliases';
3 | import { addRegexToken, match1 } from '../parse/regex';
4 | import { addParseToken } from '../parse/token';
5 | import { MONTH } from './constants';
6 | import toInt from '../utils/to-int';
7 |
8 | // FORMATTING
9 |
10 | addFormatToken('Q', 0, 'Qo', 'quarter');
11 |
12 | // ALIASES
13 |
14 | addUnitAlias('quarter', 'Q');
15 |
16 | // PARSING
17 |
18 | addRegexToken('Q', match1);
19 | addParseToken('Q', function (input, array) {
20 | array[MONTH] = (toInt(input) - 1) * 3;
21 | });
22 |
23 | // MOMENTS
24 |
25 | export function getSetQuarter (input) {
26 | return input == null ? Math.ceil((this.month() + 1) / 3) : this.month((input - 1) * 3 + this.month() % 3);
27 | }
28 |
--------------------------------------------------------------------------------
/public/bower/moment/src/lib/duration/get.js:
--------------------------------------------------------------------------------
1 | import { normalizeUnits } from '../units/aliases';
2 | import absFloor from '../utils/abs-floor';
3 |
4 | export function get (units) {
5 | units = normalizeUnits(units);
6 | return this[units + 's']();
7 | }
8 |
9 | function makeGetter(name) {
10 | return function () {
11 | return this._data[name];
12 | };
13 | }
14 |
15 | export var milliseconds = makeGetter('milliseconds');
16 | export var seconds = makeGetter('seconds');
17 | export var minutes = makeGetter('minutes');
18 | export var hours = makeGetter('hours');
19 | export var days = makeGetter('days');
20 | export var months = makeGetter('months');
21 | export var years = makeGetter('years');
22 |
23 | export function weeks () {
24 | return absFloor(this.days() / 7);
25 | }
26 |
--------------------------------------------------------------------------------
/public/bower/moment/src/lib/create/date-from-array.js:
--------------------------------------------------------------------------------
1 | export function createDate (y, m, d, h, M, s, ms) {
2 | //can't just apply() to create a date:
3 | //http://stackoverflow.com/questions/181348/instantiating-a-javascript-object-by-calling-prototype-constructor-apply
4 | var date = new Date(y, m, d, h, M, s, ms);
5 |
6 | //the date constructor remaps years 0-99 to 1900-1999
7 | if (y < 100 && y >= 0 && isFinite(date.getFullYear())) {
8 | date.setFullYear(y);
9 | }
10 | return date;
11 | }
12 |
13 | export function createUTCDate (y) {
14 | var date = new Date(Date.UTC.apply(null, arguments));
15 |
16 | //the Date.UTC function remaps years 0-99 to 1900-1999
17 | if (y < 100 && y >= 0 && isFinite(date.getUTCFullYear())) {
18 | date.setUTCFullYear(y);
19 | }
20 | return date;
21 | }
22 |
--------------------------------------------------------------------------------
/public/bower/bootstrap/less/component-animations.less:
--------------------------------------------------------------------------------
1 | //
2 | // Component animations
3 | // --------------------------------------------------
4 |
5 | // Heads up!
6 | //
7 | // We don't use the `.opacity()` mixin here since it causes a bug with text
8 | // fields in IE7-8. Source: https://github.com/twbs/bootstrap/pull/3552.
9 |
10 | .fade {
11 | opacity: 0;
12 | .transition(opacity .15s linear);
13 | &.in {
14 | opacity: 1;
15 | }
16 | }
17 |
18 | .collapse {
19 | display: none;
20 |
21 | &.in { display: block; }
22 | tr&.in { display: table-row; }
23 | tbody&.in { display: table-row-group; }
24 | }
25 |
26 | .collapsing {
27 | position: relative;
28 | height: 0;
29 | overflow: hidden;
30 | .transition-property(~"height, visibility");
31 | .transition-duration(.35s);
32 | .transition-timing-function(ease);
33 | }
34 |
--------------------------------------------------------------------------------
/public/bower/bootstrap/less/mixins/table-row.less:
--------------------------------------------------------------------------------
1 | // Tables
2 |
3 | .table-row-variant(@state; @background) {
4 | // Exact selectors below required to override `.table-striped` and prevent
5 | // inheritance to nested tables.
6 | .table > thead > tr,
7 | .table > tbody > tr,
8 | .table > tfoot > tr {
9 | > td.@{state},
10 | > th.@{state},
11 | &.@{state} > td,
12 | &.@{state} > th {
13 | background-color: @background;
14 | }
15 | }
16 |
17 | // Hover states for `.table-hover`
18 | // Note: this is not available for cells or rows within `thead` or `tfoot`.
19 | .table-hover > tbody > tr {
20 | > td.@{state}:hover,
21 | > th.@{state}:hover,
22 | &.@{state}:hover > td,
23 | &:hover > .@{state},
24 | &.@{state}:hover > th {
25 | background-color: darken(@background, 5%);
26 | }
27 | }
28 | }
29 |
--------------------------------------------------------------------------------
/public/bower/moment/.bower.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "moment",
3 | "main": "moment.js",
4 | "ignore": [
5 | "**/.*",
6 | "benchmarks",
7 | "bower_components",
8 | "meteor",
9 | "node_modules",
10 | "scripts",
11 | "tasks",
12 | "test",
13 | "component.json",
14 | "composer.json",
15 | "CONTRIBUTING.md",
16 | "ender.js",
17 | "Gruntfile.js",
18 | "Moment.js.nuspec",
19 | "package.js",
20 | "package.json"
21 | ],
22 | "homepage": "https://github.com/moment/moment",
23 | "version": "2.11.2",
24 | "_release": "2.11.2",
25 | "_resolution": {
26 | "type": "version",
27 | "tag": "2.11.2",
28 | "commit": "c9afcbd8c4e0177d03b220a89ab19f62c6cc7bcf"
29 | },
30 | "_source": "git://github.com/moment/moment.git",
31 | "_target": "^2.11.2",
32 | "_originalSource": "moment",
33 | "_direct": true
34 | }
--------------------------------------------------------------------------------
/public/css/style.css:
--------------------------------------------------------------------------------
1 | .chat-wall {
2 | position: relative; }
3 |
4 | .user-pool {
5 | width: 250px;
6 | position: absolute;
7 | right: 0;
8 | top: 0; }
9 |
10 | .message-pool {
11 | margin-right: 266px; }
12 | .message-pool .page-header {
13 | margin-top: 16px; }
14 |
15 | .message-box {
16 | border: 1px solid #c8c8c8;
17 | border-radius: 4px;
18 | height: 400px;
19 | overflow-y: auto; }
20 | .message-box .mine {
21 | text-align: right; }
22 | .message-box .mine .username {
23 | display: none; }
24 | .message-box .content {
25 | padding: 8px;
26 | border: 1px solid #888888;
27 | width: auto;
28 | border-bottom-left-radius: 8px;
29 | border-bottom-right-radius: 4px; }
30 | .message-box .time {
31 | margin-top: 4px;
32 | background-color: transparent;
33 | color: #999999;
34 | text-align: right;
35 | border-top: 1px solid #d8d8d8; }
36 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "play-chat",
3 | "version": "0.0.0",
4 | "private": true,
5 | "scripts": {
6 | "start": "node ./bin/www"
7 | },
8 | "dependencies": {
9 | "bcrypt": "^0.8.5",
10 | "bluebird": "^3.3.3",
11 | "body-parser": "~1.13.2",
12 | "connect-mongo": "^1.1.0",
13 | "cookie-parser": "~1.3.5",
14 | "debug": "~2.2.0",
15 | "express": "~4.13.1",
16 | "express-session": "^1.13.0",
17 | "jade": "~1.11.0",
18 | "moment": "^2.11.2",
19 | "mongoose": "^4.4.5",
20 | "mongoose-timestamp": "^0.5.0",
21 | "morgan": "~1.6.1",
22 | "serve-favicon": "~2.3.0",
23 | "socket.io": "^1.4.5",
24 | "socket.io-adapter-mongo": "^0.1.6",
25 | "socket.io-client": "^1.4.5"
26 | },
27 | "devDependencies": {
28 | "gulp": "^3.9.1",
29 | "gulp-autoprefixer": "^3.1.0",
30 | "gulp-plumber": "^1.1.0",
31 | "gulp-sass": "^2.2.0"
32 | }
33 | }
34 |
--------------------------------------------------------------------------------
/public/bower/jquery/src/manipulation/wrapMap.js:
--------------------------------------------------------------------------------
1 | define( function() {
2 |
3 | // We have to close these tags to support XHTML (#13200)
4 | var wrapMap = {
5 |
6 | // Support: IE9
7 | option: [ 1, "" ],
8 |
9 | // XHTML parsers do not magically insert elements in the
10 | // same way that tag soup parsers do. So we cannot shorten
11 | // this by omitting or other required elements.
12 | thead: [ 1, "" ],
13 | col: [ 2, "" ],
14 | tr: [ 2, "" ],
15 | td: [ 3, "" ],
16 |
17 | _default: [ 0, "", "" ]
18 | };
19 |
20 | // Support: IE9
21 | wrapMap.optgroup = wrapMap.option;
22 |
23 | wrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead;
24 | wrapMap.th = wrapMap.td;
25 |
26 | return wrapMap;
27 | } );
28 |
--------------------------------------------------------------------------------
/public/bower/moment/src/lib/locale/locale.js:
--------------------------------------------------------------------------------
1 | // Side effect imports
2 | import './prototype';
3 |
4 | import {
5 | getSetGlobalLocale,
6 | defineLocale,
7 | getLocale
8 | } from './locales';
9 |
10 | import {
11 | listMonths,
12 | listMonthsShort,
13 | listWeekdays,
14 | listWeekdaysShort,
15 | listWeekdaysMin
16 | } from './lists';
17 |
18 | export {
19 | getSetGlobalLocale,
20 | defineLocale,
21 | getLocale,
22 | listMonths,
23 | listMonthsShort,
24 | listWeekdays,
25 | listWeekdaysShort,
26 | listWeekdaysMin
27 | };
28 |
29 | import { deprecate } from '../utils/deprecate';
30 | import { hooks } from '../utils/hooks';
31 |
32 | hooks.lang = deprecate('moment.lang is deprecated. Use moment.locale instead.', getSetGlobalLocale);
33 | hooks.langData = deprecate('moment.langData is deprecated. Use moment.localeData instead.', getLocale);
34 |
35 | import './en';
36 |
--------------------------------------------------------------------------------
/public/bower/bootstrap/less/close.less:
--------------------------------------------------------------------------------
1 | //
2 | // Close icons
3 | // --------------------------------------------------
4 |
5 |
6 | .close {
7 | float: right;
8 | font-size: (@font-size-base * 1.5);
9 | font-weight: @close-font-weight;
10 | line-height: 1;
11 | color: @close-color;
12 | text-shadow: @close-text-shadow;
13 | .opacity(.2);
14 |
15 | &:hover,
16 | &:focus {
17 | color: @close-color;
18 | text-decoration: none;
19 | cursor: pointer;
20 | .opacity(.5);
21 | }
22 |
23 | // Additional properties for button version
24 | // iOS requires the button element instead of an anchor tag.
25 | // If you want the anchor version, it requires `href="#"`.
26 | // See https://developer.mozilla.org/en-US/docs/Web/Events/click#Safari_Mobile
27 | button& {
28 | padding: 0;
29 | cursor: pointer;
30 | background: transparent;
31 | border: 0;
32 | -webkit-appearance: none;
33 | }
34 | }
35 |
--------------------------------------------------------------------------------
/public/bower/bootstrap/less/thumbnails.less:
--------------------------------------------------------------------------------
1 | //
2 | // Thumbnails
3 | // --------------------------------------------------
4 |
5 |
6 | // Mixin and adjust the regular image class
7 | .thumbnail {
8 | display: block;
9 | padding: @thumbnail-padding;
10 | margin-bottom: @line-height-computed;
11 | line-height: @line-height-base;
12 | background-color: @thumbnail-bg;
13 | border: 1px solid @thumbnail-border;
14 | border-radius: @thumbnail-border-radius;
15 | .transition(border .2s ease-in-out);
16 |
17 | > img,
18 | a > img {
19 | &:extend(.img-responsive);
20 | margin-left: auto;
21 | margin-right: auto;
22 | }
23 |
24 | // Add a hover state for linked versions only
25 | a&:hover,
26 | a&:focus,
27 | a&.active {
28 | border-color: @link-color;
29 | }
30 |
31 | // Image captions
32 | .caption {
33 | padding: @thumbnail-caption-padding;
34 | color: @thumbnail-caption-color;
35 | }
36 | }
37 |
--------------------------------------------------------------------------------
/public/bower/moment/src/lib/units/aliases.js:
--------------------------------------------------------------------------------
1 | import hasOwnProp from '../utils/has-own-prop';
2 |
3 | var aliases = {};
4 |
5 | export function addUnitAlias (unit, shorthand) {
6 | var lowerCase = unit.toLowerCase();
7 | aliases[lowerCase] = aliases[lowerCase + 's'] = aliases[shorthand] = unit;
8 | }
9 |
10 | export function normalizeUnits(units) {
11 | return typeof units === 'string' ? aliases[units] || aliases[units.toLowerCase()] : undefined;
12 | }
13 |
14 | export function normalizeObjectUnits(inputObject) {
15 | var normalizedInput = {},
16 | normalizedProp,
17 | prop;
18 |
19 | for (prop in inputObject) {
20 | if (hasOwnProp(inputObject, prop)) {
21 | normalizedProp = normalizeUnits(prop);
22 | if (normalizedProp) {
23 | normalizedInput[normalizedProp] = inputObject[prop];
24 | }
25 | }
26 | }
27 |
28 | return normalizedInput;
29 | }
30 |
--------------------------------------------------------------------------------
/public/bower/angular-ui-router/.bower.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "angular-ui-router",
3 | "version": "0.2.18",
4 | "license": "MIT",
5 | "main": "./release/angular-ui-router.js",
6 | "dependencies": {
7 | "angular": "^1.0.8"
8 | },
9 | "ignore": [
10 | "**/.*",
11 | "node_modules",
12 | "bower_components",
13 | "component.json",
14 | "package.json",
15 | "lib",
16 | "config",
17 | "sample",
18 | "test",
19 | "tests",
20 | "ngdoc_assets",
21 | "Gruntfile.js",
22 | "files.js"
23 | ],
24 | "homepage": "https://github.com/angular-ui/angular-ui-router-bower",
25 | "_release": "0.2.18",
26 | "_resolution": {
27 | "type": "version",
28 | "tag": "0.2.18",
29 | "commit": "2b8d5241b4c631ca2aef079bb96690b213eff449"
30 | },
31 | "_source": "git://github.com/angular-ui/angular-ui-router-bower.git",
32 | "_target": "^0.2.18",
33 | "_originalSource": "angular-ui-router",
34 | "_direct": true
35 | }
--------------------------------------------------------------------------------
/public/bower/moment/src/lib/locale/relative.js:
--------------------------------------------------------------------------------
1 | export var defaultRelativeTime = {
2 | future : 'in %s',
3 | past : '%s ago',
4 | s : 'a few seconds',
5 | m : 'a minute',
6 | mm : '%d minutes',
7 | h : 'an hour',
8 | hh : '%d hours',
9 | d : 'a day',
10 | dd : '%d days',
11 | M : 'a month',
12 | MM : '%d months',
13 | y : 'a year',
14 | yy : '%d years'
15 | };
16 |
17 | import isFunction from '../utils/is-function';
18 |
19 | export function relativeTime (number, withoutSuffix, string, isFuture) {
20 | var output = this._relativeTime[string];
21 | return (isFunction(output)) ?
22 | output(number, withoutSuffix, string, isFuture) :
23 | output.replace(/%d/i, number);
24 | }
25 |
26 | export function pastFuture (diff, output) {
27 | var format = this._relativeTime[diff > 0 ? 'future' : 'past'];
28 | return isFunction(format) ? format(output) : format.replace(/%s/i, output);
29 | }
30 |
--------------------------------------------------------------------------------
/public/bower/moment/src/lib/moment/to-type.js:
--------------------------------------------------------------------------------
1 | export function valueOf () {
2 | return +this._d - ((this._offset || 0) * 60000);
3 | }
4 |
5 | export function unix () {
6 | return Math.floor(+this / 1000);
7 | }
8 |
9 | export function toDate () {
10 | return this._offset ? new Date(+this) : this._d;
11 | }
12 |
13 | export function toArray () {
14 | var m = this;
15 | return [m.year(), m.month(), m.date(), m.hour(), m.minute(), m.second(), m.millisecond()];
16 | }
17 |
18 | export function toObject () {
19 | var m = this;
20 | return {
21 | years: m.year(),
22 | months: m.month(),
23 | date: m.date(),
24 | hours: m.hours(),
25 | minutes: m.minutes(),
26 | seconds: m.seconds(),
27 | milliseconds: m.milliseconds()
28 | };
29 | }
30 |
31 | export function toJSON () {
32 | // JSON.stringify(new Date(NaN)) === 'null'
33 | return this.isValid() ? this.toISOString() : 'null';
34 | }
35 |
--------------------------------------------------------------------------------
/views/layout.jade:
--------------------------------------------------------------------------------
1 | doctype html
2 | html
3 | head
4 | title 無聊
5 | link(rel="stylesheet", href="/bower/bootstrap/dist/css/bootstrap.min.css")
6 | link(rel="stylesheet", href="/bower/ui-select/dist/select.css")
7 | link(rel="stylesheet", href="/bower/ngprogress/ngProgress.css")
8 | link(rel="stylesheet", href="/css/style.css")
9 | script(src="/socket.io/socket.io.js")
10 | script(src="/bower/angular/angular.min.js")
11 | script(src="/bower/angular-sanitize/angular-sanitize.min.js")
12 | script(src="/bower/ngprogress/build/ngprogress.min.js")
13 | script(src="/bower/moment/min/moment-with-locales.min.js")
14 | script(src="/bower/ui-select/dist/select.js")
15 | script.
16 | (function () {
17 | var app = angular.module('app', ['ui.select', 'ngSanitize', 'ngProgress']);
18 | })();
19 | body(ng-app="app")
20 | block content
21 |
22 | block scripts
23 |
--------------------------------------------------------------------------------
/public/bower/ui-select/composer.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "components/ui-select",
3 | "description": "AngularJS UI Select",
4 | "keywords": ["angular", "angular-ui", "select", "select2", "angularjs"],
5 | "type": "component",
6 | "homepage": "https://github.com/angular-ui/ui-select",
7 | "license": "MIT",
8 | "support": {
9 | "issues": "https://github.com/angular-ui/ui-select/issues",
10 | "wiki": "https://github.com/angular-ui/ui-select/wiki",
11 | "source": "https://github.com/angular-ui/ui-select"
12 | },
13 | "require": {
14 | "robloach/component-installer": "*"
15 | },
16 | "extra": {
17 | "component": {
18 | "scripts": [
19 | "dist/select.js"
20 | ],
21 | "files": [
22 | "dist/select.js",
23 | "dist/select.css",
24 | "dist/select.min.js",
25 | "dist/select.min.css"
26 | ]
27 | }
28 | }
29 | }
--------------------------------------------------------------------------------
/public/bower/moment/src/lib/moment/calendar.js:
--------------------------------------------------------------------------------
1 | import { createLocal } from '../create/local';
2 | import { cloneWithOffset } from '../units/offset';
3 | import isFunction from '../utils/is-function';
4 |
5 | export function calendar (time, formats) {
6 | // We want to compare the start of today, vs this.
7 | // Getting start-of-today depends on whether we're local/utc/offset or not.
8 | var now = time || createLocal(),
9 | sod = cloneWithOffset(now, this).startOf('day'),
10 | diff = this.diff(sod, 'days', true),
11 | format = diff < -6 ? 'sameElse' :
12 | diff < -1 ? 'lastWeek' :
13 | diff < 0 ? 'lastDay' :
14 | diff < 1 ? 'sameDay' :
15 | diff < 2 ? 'nextDay' :
16 | diff < 7 ? 'nextWeek' : 'sameElse';
17 |
18 | var output = formats && (isFunction(formats[format]) ? formats[format]() : formats[format]);
19 |
20 | return this.format(output || this.localeData().calendar(format, this, createLocal(now)));
21 | }
22 |
--------------------------------------------------------------------------------
/public/bower/bootstrap/less/utilities.less:
--------------------------------------------------------------------------------
1 | //
2 | // Utility classes
3 | // --------------------------------------------------
4 |
5 |
6 | // Floats
7 | // -------------------------
8 |
9 | .clearfix {
10 | .clearfix();
11 | }
12 | .center-block {
13 | .center-block();
14 | }
15 | .pull-right {
16 | float: right !important;
17 | }
18 | .pull-left {
19 | float: left !important;
20 | }
21 |
22 |
23 | // Toggling content
24 | // -------------------------
25 |
26 | // Note: Deprecated .hide in favor of .hidden or .sr-only (as appropriate) in v3.0.1
27 | .hide {
28 | display: none !important;
29 | }
30 | .show {
31 | display: block !important;
32 | }
33 | .invisible {
34 | visibility: hidden;
35 | }
36 | .text-hide {
37 | .text-hide();
38 | }
39 |
40 |
41 | // Hide from screenreaders and browsers
42 | //
43 | // Credit: HTML5 Boilerplate
44 |
45 | .hidden {
46 | display: none !important;
47 | }
48 |
49 |
50 | // For Affix plugin
51 | // -------------------------
52 |
53 | .affix {
54 | position: fixed;
55 | }
56 |
--------------------------------------------------------------------------------
/public/bower/moment/src/lib/units/day-of-month.js:
--------------------------------------------------------------------------------
1 | import { makeGetSet } from '../moment/get-set';
2 | import { addFormatToken } from '../format/format';
3 | import { addUnitAlias } from './aliases';
4 | import { addRegexToken, match1to2, match2 } from '../parse/regex';
5 | import { addParseToken } from '../parse/token';
6 | import { DATE } from './constants';
7 | import toInt from '../utils/to-int';
8 |
9 | // FORMATTING
10 |
11 | addFormatToken('D', ['DD', 2], 'Do', 'date');
12 |
13 | // ALIASES
14 |
15 | addUnitAlias('date', 'D');
16 |
17 | // PARSING
18 |
19 | addRegexToken('D', match1to2);
20 | addRegexToken('DD', match1to2, match2);
21 | addRegexToken('Do', function (isStrict, locale) {
22 | return isStrict ? locale._ordinalParse : locale._ordinalParseLenient;
23 | });
24 |
25 | addParseToken(['D', 'DD'], DATE);
26 | addParseToken('Do', function (input, array) {
27 | array[DATE] = toInt(input.match(match1to2)[0], 10);
28 | });
29 |
30 | // MOMENTS
31 |
32 | export var getSetDayOfMonth = makeGetSet('Date', true);
33 |
--------------------------------------------------------------------------------
/public/bower/moment/src/lib/utils/deprecate.js:
--------------------------------------------------------------------------------
1 | import extend from './extend';
2 | import { hooks } from './hooks';
3 | import isUndefined from './is-undefined';
4 |
5 | function warn(msg) {
6 | if (hooks.suppressDeprecationWarnings === false &&
7 | (typeof console !== 'undefined') && console.warn) {
8 | console.warn('Deprecation warning: ' + msg);
9 | }
10 | }
11 |
12 | export function deprecate(msg, fn) {
13 | var firstTime = true;
14 |
15 | return extend(function () {
16 | if (firstTime) {
17 | warn(msg + '\nArguments: ' + Array.prototype.slice.call(arguments).join(', ') + '\n' + (new Error()).stack);
18 | firstTime = false;
19 | }
20 | return fn.apply(this, arguments);
21 | }, fn);
22 | }
23 |
24 | var deprecations = {};
25 |
26 | export function deprecateSimple(name, msg) {
27 | if (!deprecations[name]) {
28 | warn(msg);
29 | deprecations[name] = true;
30 | }
31 | }
32 |
33 | hooks.suppressDeprecationWarnings = false;
34 |
--------------------------------------------------------------------------------
/public/bower/moment/src/lib/parse/token.js:
--------------------------------------------------------------------------------
1 | import hasOwnProp from '../utils/has-own-prop';
2 | import toInt from '../utils/to-int';
3 |
4 | var tokens = {};
5 |
6 | export function addParseToken (token, callback) {
7 | var i, func = callback;
8 | if (typeof token === 'string') {
9 | token = [token];
10 | }
11 | if (typeof callback === 'number') {
12 | func = function (input, array) {
13 | array[callback] = toInt(input);
14 | };
15 | }
16 | for (i = 0; i < token.length; i++) {
17 | tokens[token[i]] = func;
18 | }
19 | }
20 |
21 | export function addWeekParseToken (token, callback) {
22 | addParseToken(token, function (input, array, config, token) {
23 | config._w = config._w || {};
24 | callback(input, config._w, config, token);
25 | });
26 | }
27 |
28 | export function addTimeToArrayFromToken(token, input, config) {
29 | if (input != null && hasOwnProp(tokens, token)) {
30 | tokens[token](input, config._a, config, token);
31 | }
32 | }
33 |
--------------------------------------------------------------------------------
/public/bower/moment/src/lib/units/day-of-year.js:
--------------------------------------------------------------------------------
1 | import { addFormatToken } from '../format/format';
2 | import { addUnitAlias } from './aliases';
3 | import { addRegexToken, match3, match1to3 } from '../parse/regex';
4 | import { daysInYear } from './year';
5 | import { createUTCDate } from '../create/date-from-array';
6 | import { addParseToken } from '../parse/token';
7 | import toInt from '../utils/to-int';
8 |
9 | // FORMATTING
10 |
11 | addFormatToken('DDD', ['DDDD', 3], 'DDDo', 'dayOfYear');
12 |
13 | // ALIASES
14 |
15 | addUnitAlias('dayOfYear', 'DDD');
16 |
17 | // PARSING
18 |
19 | addRegexToken('DDD', match1to3);
20 | addRegexToken('DDDD', match3);
21 | addParseToken(['DDD', 'DDDD'], function (input, array, config) {
22 | config._dayOfYear = toInt(input);
23 | });
24 |
25 | // HELPERS
26 |
27 | // MOMENTS
28 |
29 | export function getSetDayOfYear (input) {
30 | var dayOfYear = Math.round((this.clone().startOf('day') - this.clone().startOf('year')) / 864e5) + 1;
31 | return input == null ? dayOfYear : this.add((input - dayOfYear), 'd');
32 | }
33 |
--------------------------------------------------------------------------------
/public/bower/moment/src/lib/moment/format.js:
--------------------------------------------------------------------------------
1 | import { formatMoment } from '../format/format';
2 | import { hooks } from '../utils/hooks';
3 | import isFunction from '../utils/is-function';
4 |
5 | hooks.defaultFormat = 'YYYY-MM-DDTHH:mm:ssZ';
6 |
7 | export function toString () {
8 | return this.clone().locale('en').format('ddd MMM DD YYYY HH:mm:ss [GMT]ZZ');
9 | }
10 |
11 | export function toISOString () {
12 | var m = this.clone().utc();
13 | if (0 < m.year() && m.year() <= 9999) {
14 | if (isFunction(Date.prototype.toISOString)) {
15 | // native implementation is ~50x faster, use it when we can
16 | return this.toDate().toISOString();
17 | } else {
18 | return formatMoment(m, 'YYYY-MM-DD[T]HH:mm:ss.SSS[Z]');
19 | }
20 | } else {
21 | return formatMoment(m, 'YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]');
22 | }
23 | }
24 |
25 | export function format (inputString) {
26 | var output = formatMoment(this, inputString || hooks.defaultFormat);
27 | return this.localeData().postformat(output);
28 | }
29 |
--------------------------------------------------------------------------------
/public/bower/ui-select/.bower.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "ui-select",
3 | "version": "0.14.9",
4 | "homepage": "https://github.com/angular-ui/ui-select",
5 | "authors": [
6 | "AngularUI"
7 | ],
8 | "description": "AngularJS ui-select",
9 | "main": [
10 | "dist/select.js",
11 | "dist/select.css"
12 | ],
13 | "license": "MIT",
14 | "ignore": [
15 | "**/.*",
16 | "node_modules",
17 | "bower_components",
18 | "src",
19 | "test",
20 | "gulpfile.js",
21 | "karma.conf.js",
22 | "examples"
23 | ],
24 | "dependencies": {
25 | "angular": ">=1.2.18"
26 | },
27 | "devDependencies": {
28 | "jquery": "~1.11",
29 | "angular-sanitize": ">=1.2.18",
30 | "angular-mocks": ">=1.2.18"
31 | },
32 | "_release": "0.14.9",
33 | "_resolution": {
34 | "type": "version",
35 | "tag": "v0.14.9",
36 | "commit": "30992780d13b29b77fefa459839467cafa617fda"
37 | },
38 | "_source": "git://github.com/angular-ui/ui-select.git",
39 | "_target": "^0.14.9",
40 | "_originalSource": "angular-ui-select",
41 | "_direct": true
42 | }
--------------------------------------------------------------------------------
/public/css/style.scss:
--------------------------------------------------------------------------------
1 |
2 | $user-pool-size: 250px;
3 |
4 | .chat-wall {
5 | position: relative;
6 | }
7 |
8 | .user-pool {
9 | width: $user-pool-size;
10 | position: absolute;
11 | right: 0;
12 | top: 0;
13 | }
14 |
15 | .message-pool {
16 | margin-right: $user-pool-size + 16;
17 |
18 | .page-header {
19 | margin-top: 16px;
20 | }
21 | }
22 |
23 | .message-box {
24 | border: 1px solid #c8c8c8;
25 | border-radius: 4px;
26 | height: 400px;
27 | overflow-y: auto;
28 |
29 | .mine {
30 | text-align: right;
31 |
32 | .username {
33 | display: none;
34 | }
35 | }
36 |
37 | .content {
38 | padding: 8px;
39 | border: 1px solid #888888;
40 | width: auto;
41 | border-bottom-left-radius: 8px;
42 | border-bottom-right-radius: 4px;
43 | }
44 |
45 | .time {
46 | margin-top: 4px;
47 | background-color: transparent;
48 | color: #999999;
49 | text-align: right;
50 | border-top: 1px solid #d8d8d8;
51 | }
52 | }
--------------------------------------------------------------------------------
/public/bower/jquery/src/attributes/support.js:
--------------------------------------------------------------------------------
1 | define( [
2 | "../var/document",
3 | "../var/support"
4 | ], function( document, support ) {
5 |
6 | ( function() {
7 | var input = document.createElement( "input" ),
8 | select = document.createElement( "select" ),
9 | opt = select.appendChild( document.createElement( "option" ) );
10 |
11 | input.type = "checkbox";
12 |
13 | // Support: iOS<=5.1, Android<=4.2+
14 | // Default value for a checkbox should be "on"
15 | support.checkOn = input.value !== "";
16 |
17 | // Support: IE<=11+
18 | // Must access selectedIndex to make default options select
19 | support.optSelected = opt.selected;
20 |
21 | // Support: Android<=2.3
22 | // Options inside disabled selects are incorrectly marked as disabled
23 | select.disabled = true;
24 | support.optDisabled = !opt.disabled;
25 |
26 | // Support: IE<=11+
27 | // An input loses its value after becoming a radio
28 | input = document.createElement( "input" );
29 | input.value = "t";
30 | input.type = "radio";
31 | support.radioValue = input.value === "t";
32 | } )();
33 |
34 | return support;
35 |
36 | } );
37 |
--------------------------------------------------------------------------------
/public/bower/bootstrap/package.js:
--------------------------------------------------------------------------------
1 | // package metadata file for Meteor.js
2 |
3 | /* jshint strict:false */
4 | /* global Package:true */
5 |
6 | Package.describe({
7 | name: 'twbs:bootstrap', // http://atmospherejs.com/twbs/bootstrap
8 | summary: 'The most popular front-end framework for developing responsive, mobile first projects on the web.',
9 | version: '3.3.6',
10 | git: 'https://github.com/twbs/bootstrap.git'
11 | });
12 |
13 | Package.onUse(function (api) {
14 | api.versionsFrom('METEOR@1.0');
15 | api.use('jquery', 'client');
16 | var assets = [
17 | 'dist/fonts/glyphicons-halflings-regular.eot',
18 | 'dist/fonts/glyphicons-halflings-regular.svg',
19 | 'dist/fonts/glyphicons-halflings-regular.ttf',
20 | 'dist/fonts/glyphicons-halflings-regular.woff',
21 | 'dist/fonts/glyphicons-halflings-regular.woff2'
22 | ];
23 | if (api.addAssets) {
24 | api.addAssets(assets, 'client');
25 | } else {
26 | api.addFiles(assets, 'client', { isAsset: true });
27 | }
28 | api.addFiles([
29 | 'dist/css/bootstrap.css',
30 | 'dist/js/bootstrap.js'
31 | ], 'client');
32 | });
33 |
--------------------------------------------------------------------------------
/public/bower/moment/src/lib/moment/locale.js:
--------------------------------------------------------------------------------
1 | import { getLocale } from '../locale/locales';
2 | import { deprecate } from '../utils/deprecate';
3 |
4 | // If passed a locale key, it will set the locale for this
5 | // instance. Otherwise, it will return the locale configuration
6 | // variables for this instance.
7 | export function locale (key) {
8 | var newLocaleData;
9 |
10 | if (key === undefined) {
11 | return this._locale._abbr;
12 | } else {
13 | newLocaleData = getLocale(key);
14 | if (newLocaleData != null) {
15 | this._locale = newLocaleData;
16 | }
17 | return this;
18 | }
19 | }
20 |
21 | export var lang = deprecate(
22 | 'moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.',
23 | function (key) {
24 | if (key === undefined) {
25 | return this.localeData();
26 | } else {
27 | return this.locale(key);
28 | }
29 | }
30 | );
31 |
32 | export function localeData () {
33 | return this._locale;
34 | }
35 |
--------------------------------------------------------------------------------
/public/bower/jquery/src/exports/amd.js:
--------------------------------------------------------------------------------
1 | define( [
2 | "../core"
3 | ], function( jQuery ) {
4 |
5 | // Register as a named AMD module, since jQuery can be concatenated with other
6 | // files that may use define, but not via a proper concatenation script that
7 | // understands anonymous AMD modules. A named AMD is safest and most robust
8 | // way to register. Lowercase jquery is used because AMD module names are
9 | // derived from file names, and jQuery is normally delivered in a lowercase
10 | // file name. Do this after creating the global so that if an AMD module wants
11 | // to call noConflict to hide this version of jQuery, it will work.
12 |
13 | // Note that for maximum portability, libraries that are not jQuery should
14 | // declare themselves as anonymous modules, and avoid setting a global if an
15 | // AMD loader is present. jQuery is a special case. For more information, see
16 | // https://github.com/jrburke/requirejs/wiki/Updating-existing-libraries#wiki-anon
17 |
18 | if ( typeof define === "function" && define.amd ) {
19 | define( "jquery", [], function() {
20 | return jQuery;
21 | } );
22 | }
23 |
24 | } );
25 |
--------------------------------------------------------------------------------
/public/bower/bootstrap/less/pager.less:
--------------------------------------------------------------------------------
1 | //
2 | // Pager pagination
3 | // --------------------------------------------------
4 |
5 |
6 | .pager {
7 | padding-left: 0;
8 | margin: @line-height-computed 0;
9 | list-style: none;
10 | text-align: center;
11 | &:extend(.clearfix all);
12 | li {
13 | display: inline;
14 | > a,
15 | > span {
16 | display: inline-block;
17 | padding: 5px 14px;
18 | background-color: @pager-bg;
19 | border: 1px solid @pager-border;
20 | border-radius: @pager-border-radius;
21 | }
22 |
23 | > a:hover,
24 | > a:focus {
25 | text-decoration: none;
26 | background-color: @pager-hover-bg;
27 | }
28 | }
29 |
30 | .next {
31 | > a,
32 | > span {
33 | float: right;
34 | }
35 | }
36 |
37 | .previous {
38 | > a,
39 | > span {
40 | float: left;
41 | }
42 | }
43 |
44 | .disabled {
45 | > a,
46 | > a:hover,
47 | > a:focus,
48 | > span {
49 | color: @pager-disabled-color;
50 | background-color: @pager-bg;
51 | cursor: @cursor-disabled;
52 | }
53 | }
54 | }
55 |
--------------------------------------------------------------------------------
/public/bower/bootstrap/.bower.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "bootstrap",
3 | "description": "The most popular front-end framework for developing responsive, mobile first projects on the web.",
4 | "keywords": [
5 | "css",
6 | "js",
7 | "less",
8 | "mobile-first",
9 | "responsive",
10 | "front-end",
11 | "framework",
12 | "web"
13 | ],
14 | "homepage": "http://getbootstrap.com",
15 | "license": "MIT",
16 | "moduleType": "globals",
17 | "main": [
18 | "less/bootstrap.less",
19 | "dist/js/bootstrap.js"
20 | ],
21 | "ignore": [
22 | "/.*",
23 | "_config.yml",
24 | "CNAME",
25 | "composer.json",
26 | "CONTRIBUTING.md",
27 | "docs",
28 | "js/tests",
29 | "test-infra"
30 | ],
31 | "dependencies": {
32 | "jquery": "1.9.1 - 2"
33 | },
34 | "version": "3.3.6",
35 | "_release": "3.3.6",
36 | "_resolution": {
37 | "type": "version",
38 | "tag": "v3.3.6",
39 | "commit": "81df608a40bf0629a1dc08e584849bb1e43e0b7a"
40 | },
41 | "_source": "git://github.com/twbs/bootstrap.git",
42 | "_target": "^3.3.6",
43 | "_originalSource": "bootstrap",
44 | "_direct": true
45 | }
--------------------------------------------------------------------------------
/public/bower/bootstrap/grunt/bs-commonjs-generator.js:
--------------------------------------------------------------------------------
1 | /*!
2 | * Bootstrap Grunt task for the CommonJS module generation
3 | * http://getbootstrap.com
4 | * Copyright 2014-2015 Twitter, Inc.
5 | * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
6 | */
7 |
8 | 'use strict';
9 |
10 | var fs = require('fs');
11 | var path = require('path');
12 |
13 | var COMMONJS_BANNER = '// This file is autogenerated via the `commonjs` Grunt task. You can require() this file in a CommonJS environment.\n';
14 |
15 | module.exports = function generateCommonJSModule(grunt, srcFiles, destFilepath) {
16 | var destDir = path.dirname(destFilepath);
17 |
18 | function srcPathToDestRequire(srcFilepath) {
19 | var requirePath = path.relative(destDir, srcFilepath).replace(/\\/g, '/');
20 | return 'require(\'' + requirePath + '\')';
21 | }
22 |
23 | var moduleOutputJs = COMMONJS_BANNER + srcFiles.map(srcPathToDestRequire).join('\n');
24 | try {
25 | fs.writeFileSync(destFilepath, moduleOutputJs);
26 | } catch (err) {
27 | grunt.fail.warn(err);
28 | }
29 | grunt.log.writeln('File ' + destFilepath.cyan + ' created.');
30 | };
31 |
--------------------------------------------------------------------------------
/public/bower/ui-select/LICENSE:
--------------------------------------------------------------------------------
1 | The MIT License (MIT)
2 |
3 | Copyright (c) 2013-2014 AngularUI
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy of
6 | this software and associated documentation files (the "Software"), to deal in
7 | the Software without restriction, including without limitation the rights to
8 | use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
9 | the Software, and to permit persons to whom the Software is furnished to do so,
10 | 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, FITNESS
17 | FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
18 | COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
19 | IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
20 | CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
21 |
--------------------------------------------------------------------------------
/public/bower/moment/src/lib/create/valid.js:
--------------------------------------------------------------------------------
1 | import extend from '../utils/extend';
2 | import { createUTC } from './utc';
3 | import getParsingFlags from '../create/parsing-flags';
4 |
5 | export function isValid(m) {
6 | if (m._isValid == null) {
7 | var flags = getParsingFlags(m);
8 | m._isValid = !isNaN(m._d.getTime()) &&
9 | flags.overflow < 0 &&
10 | !flags.empty &&
11 | !flags.invalidMonth &&
12 | !flags.invalidWeekday &&
13 | !flags.nullInput &&
14 | !flags.invalidFormat &&
15 | !flags.userInvalidated;
16 |
17 | if (m._strict) {
18 | m._isValid = m._isValid &&
19 | flags.charsLeftOver === 0 &&
20 | flags.unusedTokens.length === 0 &&
21 | flags.bigHour === undefined;
22 | }
23 | }
24 | return m._isValid;
25 | }
26 |
27 | export function createInvalid (flags) {
28 | var m = createUTC(NaN);
29 | if (flags != null) {
30 | extend(getParsingFlags(m), flags);
31 | }
32 | else {
33 | getParsingFlags(m).userInvalidated = true;
34 | }
35 |
36 | return m;
37 | }
38 |
--------------------------------------------------------------------------------
/public/bower/ngprogress/LICENSE:
--------------------------------------------------------------------------------
1 | The MIT License (MIT)
2 |
3 | Copyright (c) 2013 Victor Bjelkholm
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
13 | all 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
21 | THE SOFTWARE.
--------------------------------------------------------------------------------
/public/bower/bootstrap/LICENSE:
--------------------------------------------------------------------------------
1 | The MIT License (MIT)
2 |
3 | Copyright (c) 2011-2015 Twitter, Inc
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
13 | all 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
21 | THE SOFTWARE.
22 |
--------------------------------------------------------------------------------
/public/bower/moment/LICENSE:
--------------------------------------------------------------------------------
1 | Copyright (c) 2011-2016 Tim Wood, Iskren Chernev, Moment.js contributors
2 |
3 | Permission is hereby granted, free of charge, to any person
4 | obtaining a copy of this software and associated documentation
5 | files (the "Software"), to deal in the Software without
6 | restriction, including without limitation the rights to use,
7 | copy, modify, merge, publish, distribute, sublicense, and/or sell
8 | copies of the Software, and to permit persons to whom the
9 | Software is furnished to do so, subject to the following
10 | conditions:
11 |
12 | The above copyright notice and this permission notice shall be
13 | included in all copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
16 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
17 | OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
18 | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
19 | HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
20 | WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
21 | FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
22 | OTHER DEALINGS IN THE SOFTWARE.
23 |
--------------------------------------------------------------------------------
/public/bower/jquery/src/manipulation/support.js:
--------------------------------------------------------------------------------
1 | define( [
2 | "../var/document",
3 | "../var/support"
4 | ], function( document, support ) {
5 |
6 | ( function() {
7 | var fragment = document.createDocumentFragment(),
8 | div = fragment.appendChild( document.createElement( "div" ) ),
9 | input = document.createElement( "input" );
10 |
11 | // Support: Android 4.0-4.3, Safari<=5.1
12 | // Check state lost if the name is set (#11217)
13 | // Support: Windows Web Apps (WWA)
14 | // `name` and `type` must use .setAttribute for WWA (#14901)
15 | input.setAttribute( "type", "radio" );
16 | input.setAttribute( "checked", "checked" );
17 | input.setAttribute( "name", "t" );
18 |
19 | div.appendChild( input );
20 |
21 | // Support: Safari<=5.1, Android<4.2
22 | // Older WebKit doesn't clone checked state correctly in fragments
23 | support.checkClone = div.cloneNode( true ).cloneNode( true ).lastChild.checked;
24 |
25 | // Support: IE<=11+
26 | // Make sure textarea (and checkbox) defaultValue is properly cloned
27 | div.innerHTML = "";
28 | support.noCloneChecked = !!div.cloneNode( true ).lastChild.defaultValue;
29 | } )();
30 |
31 | return support;
32 |
33 | } );
34 |
--------------------------------------------------------------------------------
/public/bower/angular-ui-router/LICENSE:
--------------------------------------------------------------------------------
1 | The MIT License
2 |
3 | Copyright (c) 2013-2015 The AngularUI Team, Karsten Sperling
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
13 | all 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
21 | THE SOFTWARE.
22 |
--------------------------------------------------------------------------------
/public/bower/bootstrap/less/media.less:
--------------------------------------------------------------------------------
1 | .media {
2 | // Proper spacing between instances of .media
3 | margin-top: 15px;
4 |
5 | &:first-child {
6 | margin-top: 0;
7 | }
8 | }
9 |
10 | .media,
11 | .media-body {
12 | zoom: 1;
13 | overflow: hidden;
14 | }
15 |
16 | .media-body {
17 | width: 10000px;
18 | }
19 |
20 | .media-object {
21 | display: block;
22 |
23 | // Fix collapse in webkit from max-width: 100% and display: table-cell.
24 | &.img-thumbnail {
25 | max-width: none;
26 | }
27 | }
28 |
29 | .media-right,
30 | .media > .pull-right {
31 | padding-left: 10px;
32 | }
33 |
34 | .media-left,
35 | .media > .pull-left {
36 | padding-right: 10px;
37 | }
38 |
39 | .media-left,
40 | .media-right,
41 | .media-body {
42 | display: table-cell;
43 | vertical-align: top;
44 | }
45 |
46 | .media-middle {
47 | vertical-align: middle;
48 | }
49 |
50 | .media-bottom {
51 | vertical-align: bottom;
52 | }
53 |
54 | // Reset margins on headings for tighter default spacing
55 | .media-heading {
56 | margin-top: 0;
57 | margin-bottom: 5px;
58 | }
59 |
60 | // Media list variation
61 | //
62 | // Undo default ul/ol styles
63 | .media-list {
64 | padding-left: 0;
65 | list-style: none;
66 | }
67 |
--------------------------------------------------------------------------------
/public/bower/bootstrap/less/mixins/image.less:
--------------------------------------------------------------------------------
1 | // Image Mixins
2 | // - Responsive image
3 | // - Retina image
4 |
5 |
6 | // Responsive image
7 | //
8 | // Keep images from scaling beyond the width of their parents.
9 | .img-responsive(@display: block) {
10 | display: @display;
11 | max-width: 100%; // Part 1: Set a maximum relative to the parent
12 | height: auto; // Part 2: Scale the height according to the width, otherwise you get stretching
13 | }
14 |
15 |
16 | // Retina image
17 | //
18 | // Short retina mixin for setting background-image and -size. Note that the
19 | // spelling of `min--moz-device-pixel-ratio` is intentional.
20 | .img-retina(@file-1x; @file-2x; @width-1x; @height-1x) {
21 | background-image: url("@{file-1x}");
22 |
23 | @media
24 | only screen and (-webkit-min-device-pixel-ratio: 2),
25 | only screen and ( min--moz-device-pixel-ratio: 2),
26 | only screen and ( -o-min-device-pixel-ratio: 2/1),
27 | only screen and ( min-device-pixel-ratio: 2),
28 | only screen and ( min-resolution: 192dpi),
29 | only screen and ( min-resolution: 2dppx) {
30 | background-image: url("@{file-2x}");
31 | background-size: @width-1x @height-1x;
32 | }
33 | }
34 |
--------------------------------------------------------------------------------
/public/bower/jquery/src/css/showHide.js:
--------------------------------------------------------------------------------
1 | define( [
2 | "../data/var/dataPriv"
3 | ], function( dataPriv ) {
4 |
5 | function showHide( elements, show ) {
6 | var display, elem,
7 | values = [],
8 | index = 0,
9 | length = elements.length;
10 |
11 | // Determine new display value for elements that need to change
12 | for ( ; index < length; index++ ) {
13 | elem = elements[ index ];
14 | if ( !elem.style ) {
15 | continue;
16 | }
17 |
18 | display = elem.style.display;
19 | if ( show ) {
20 | if ( display === "none" ) {
21 |
22 | // Restore a pre-hide() value if we have one
23 | values[ index ] = dataPriv.get( elem, "display" ) || "";
24 | }
25 | } else {
26 | if ( display !== "none" ) {
27 | values[ index ] = "none";
28 |
29 | // Remember the value we're replacing
30 | dataPriv.set( elem, "display", display );
31 | }
32 | }
33 | }
34 |
35 | // Set the display of the elements in a second loop
36 | // to avoid the constant reflow
37 | for ( index = 0; index < length; index++ ) {
38 | if ( values[ index ] != null ) {
39 | elements[ index ].style.display = values[ index ];
40 | }
41 | }
42 |
43 | return elements;
44 | }
45 |
46 | return showHide;
47 |
48 | } );
49 |
--------------------------------------------------------------------------------
/public/bower/angular-ui-router/src/stateFilters.js:
--------------------------------------------------------------------------------
1 | /**
2 | * @ngdoc filter
3 | * @name ui.router.state.filter:isState
4 | *
5 | * @requires ui.router.state.$state
6 | *
7 | * @description
8 | * Translates to {@link ui.router.state.$state#methods_is $state.is("stateName")}.
9 | */
10 | $IsStateFilter.$inject = ['$state'];
11 | function $IsStateFilter($state) {
12 | var isFilter = function (state, params) {
13 | return $state.is(state, params);
14 | };
15 | isFilter.$stateful = true;
16 | return isFilter;
17 | }
18 |
19 | /**
20 | * @ngdoc filter
21 | * @name ui.router.state.filter:includedByState
22 | *
23 | * @requires ui.router.state.$state
24 | *
25 | * @description
26 | * Translates to {@link ui.router.state.$state#methods_includes $state.includes('fullOrPartialStateName')}.
27 | */
28 | $IncludedByStateFilter.$inject = ['$state'];
29 | function $IncludedByStateFilter($state) {
30 | var includesFilter = function (state, params, options) {
31 | return $state.includes(state, params, options);
32 | };
33 | includesFilter.$stateful = true;
34 | return includesFilter;
35 | }
36 |
37 | angular.module('ui.router.state')
38 | .filter('isState', $IsStateFilter)
39 | .filter('includedByState', $IncludedByStateFilter);
40 |
--------------------------------------------------------------------------------
/public/bower/moment/src/lib/moment/get-set.js:
--------------------------------------------------------------------------------
1 | import { normalizeUnits } from '../units/aliases';
2 | import { hooks } from '../utils/hooks';
3 | import isFunction from '../utils/is-function';
4 |
5 | export function makeGetSet (unit, keepTime) {
6 | return function (value) {
7 | if (value != null) {
8 | set(this, unit, value);
9 | hooks.updateOffset(this, keepTime);
10 | return this;
11 | } else {
12 | return get(this, unit);
13 | }
14 | };
15 | }
16 |
17 | export function get (mom, unit) {
18 | return mom.isValid() ?
19 | mom._d['get' + (mom._isUTC ? 'UTC' : '') + unit]() : NaN;
20 | }
21 |
22 | export function set (mom, unit, value) {
23 | if (mom.isValid()) {
24 | mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](value);
25 | }
26 | }
27 |
28 | // MOMENTS
29 |
30 | export function getSet (units, value) {
31 | var unit;
32 | if (typeof units === 'object') {
33 | for (unit in units) {
34 | this.set(unit, units[unit]);
35 | }
36 | } else {
37 | units = normalizeUnits(units);
38 | if (isFunction(this[units])) {
39 | return this[units](value);
40 | }
41 | }
42 | return this;
43 | }
44 |
--------------------------------------------------------------------------------
/public/bower/bootstrap/less/mixins.less:
--------------------------------------------------------------------------------
1 | // Mixins
2 | // --------------------------------------------------
3 |
4 | // Utilities
5 | @import "mixins/hide-text.less";
6 | @import "mixins/opacity.less";
7 | @import "mixins/image.less";
8 | @import "mixins/labels.less";
9 | @import "mixins/reset-filter.less";
10 | @import "mixins/resize.less";
11 | @import "mixins/responsive-visibility.less";
12 | @import "mixins/size.less";
13 | @import "mixins/tab-focus.less";
14 | @import "mixins/reset-text.less";
15 | @import "mixins/text-emphasis.less";
16 | @import "mixins/text-overflow.less";
17 | @import "mixins/vendor-prefixes.less";
18 |
19 | // Components
20 | @import "mixins/alerts.less";
21 | @import "mixins/buttons.less";
22 | @import "mixins/panels.less";
23 | @import "mixins/pagination.less";
24 | @import "mixins/list-group.less";
25 | @import "mixins/nav-divider.less";
26 | @import "mixins/forms.less";
27 | @import "mixins/progress-bar.less";
28 | @import "mixins/table-row.less";
29 |
30 | // Skins
31 | @import "mixins/background-variant.less";
32 | @import "mixins/border-radius.less";
33 | @import "mixins/gradients.less";
34 |
35 | // Layout
36 | @import "mixins/clearfix.less";
37 | @import "mixins/center-block.less";
38 | @import "mixins/nav-vertical-align.less";
39 | @import "mixins/grid-framework.less";
40 | @import "mixins/grid.less";
41 |
--------------------------------------------------------------------------------
/public/bower/bootstrap/nuget/bootstrap.nuspec:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | bootstrap
5 | 3.3
6 | Bootstrap CSS
7 | Twitter, Inc.
8 | bootstrap
9 | The most popular front-end framework for developing responsive, mobile first projects on the web.
10 | http://blog.getbootstrap.com
11 | Bootstrap framework in CSS. Includes fonts and JavaScript
12 | en-us
13 | http://getbootstrap.com
14 | http://getbootstrap.com/apple-touch-icon.png
15 | https://github.com/twbs/bootstrap/blob/master/LICENSE
16 | Copyright 2015
17 | false
18 |
19 |
20 |
21 | css js less mobile-first responsive front-end framework web
22 |
23 |
24 |
25 |
26 |
27 |
28 |
--------------------------------------------------------------------------------
/public/bower/bootstrap/less/labels.less:
--------------------------------------------------------------------------------
1 | //
2 | // Labels
3 | // --------------------------------------------------
4 |
5 | .label {
6 | display: inline;
7 | padding: .2em .6em .3em;
8 | font-size: 75%;
9 | font-weight: bold;
10 | line-height: 1;
11 | color: @label-color;
12 | text-align: center;
13 | white-space: nowrap;
14 | vertical-align: baseline;
15 | border-radius: .25em;
16 |
17 | // Add hover effects, but only for links
18 | a& {
19 | &:hover,
20 | &:focus {
21 | color: @label-link-hover-color;
22 | text-decoration: none;
23 | cursor: pointer;
24 | }
25 | }
26 |
27 | // Empty labels collapse automatically (not available in IE8)
28 | &:empty {
29 | display: none;
30 | }
31 |
32 | // Quick fix for labels in buttons
33 | .btn & {
34 | position: relative;
35 | top: -1px;
36 | }
37 | }
38 |
39 | // Colors
40 | // Contextual variations (linked labels get darker on :hover)
41 |
42 | .label-default {
43 | .label-variant(@label-default-bg);
44 | }
45 |
46 | .label-primary {
47 | .label-variant(@label-primary-bg);
48 | }
49 |
50 | .label-success {
51 | .label-variant(@label-success-bg);
52 | }
53 |
54 | .label-info {
55 | .label-variant(@label-info-bg);
56 | }
57 |
58 | .label-warning {
59 | .label-variant(@label-warning-bg);
60 | }
61 |
62 | .label-danger {
63 | .label-variant(@label-danger-bg);
64 | }
65 |
--------------------------------------------------------------------------------
/public/bower/bootstrap/nuget/bootstrap.less.nuspec:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | bootstrap.less
5 | 3.3
6 | Bootstrap Less
7 | Twitter, Inc.
8 | bootstrap
9 | The most popular front-end framework for developing responsive, mobile first projects on the web.
10 | http://blog.getbootstrap.com
11 | Bootstrap framework in Less. Includes fonts and JavaScript
12 | en-us
13 | http://getbootstrap.com
14 | http://getbootstrap.com/apple-touch-icon.png
15 | https://github.com/twbs/bootstrap/blob/master/LICENSE
16 | Copyright 2015
17 | false
18 |
19 |
20 |
21 | css js less mobile-first responsive front-end framework web
22 |
23 |
24 |
25 |
26 |
27 |
28 |
--------------------------------------------------------------------------------
/public/bower/bootstrap/less/jumbotron.less:
--------------------------------------------------------------------------------
1 | //
2 | // Jumbotron
3 | // --------------------------------------------------
4 |
5 |
6 | .jumbotron {
7 | padding-top: @jumbotron-padding;
8 | padding-bottom: @jumbotron-padding;
9 | margin-bottom: @jumbotron-padding;
10 | color: @jumbotron-color;
11 | background-color: @jumbotron-bg;
12 |
13 | h1,
14 | .h1 {
15 | color: @jumbotron-heading-color;
16 | }
17 |
18 | p {
19 | margin-bottom: (@jumbotron-padding / 2);
20 | font-size: @jumbotron-font-size;
21 | font-weight: 200;
22 | }
23 |
24 | > hr {
25 | border-top-color: darken(@jumbotron-bg, 10%);
26 | }
27 |
28 | .container &,
29 | .container-fluid & {
30 | border-radius: @border-radius-large; // Only round corners at higher resolutions if contained in a container
31 | padding-left: (@grid-gutter-width / 2);
32 | padding-right: (@grid-gutter-width / 2);
33 | }
34 |
35 | .container {
36 | max-width: 100%;
37 | }
38 |
39 | @media screen and (min-width: @screen-sm-min) {
40 | padding-top: (@jumbotron-padding * 1.6);
41 | padding-bottom: (@jumbotron-padding * 1.6);
42 |
43 | .container &,
44 | .container-fluid & {
45 | padding-left: (@jumbotron-padding * 2);
46 | padding-right: (@jumbotron-padding * 2);
47 | }
48 |
49 | h1,
50 | .h1 {
51 | font-size: @jumbotron-heading-font-size;
52 | }
53 | }
54 | }
55 |
--------------------------------------------------------------------------------
/public/bower/moment/src/lib/locale/lists.js:
--------------------------------------------------------------------------------
1 | import { getLocale } from './locales';
2 | import { createUTC } from '../create/utc';
3 |
4 | function get (format, index, field, setter) {
5 | var locale = getLocale();
6 | var utc = createUTC().set(setter, index);
7 | return locale[field](utc, format);
8 | }
9 |
10 | function list (format, index, field, count, setter) {
11 | if (typeof format === 'number') {
12 | index = format;
13 | format = undefined;
14 | }
15 |
16 | format = format || '';
17 |
18 | if (index != null) {
19 | return get(format, index, field, setter);
20 | }
21 |
22 | var i;
23 | var out = [];
24 | for (i = 0; i < count; i++) {
25 | out[i] = get(format, i, field, setter);
26 | }
27 | return out;
28 | }
29 |
30 | export function listMonths (format, index) {
31 | return list(format, index, 'months', 12, 'month');
32 | }
33 |
34 | export function listMonthsShort (format, index) {
35 | return list(format, index, 'monthsShort', 12, 'month');
36 | }
37 |
38 | export function listWeekdays (format, index) {
39 | return list(format, index, 'weekdays', 7, 'day');
40 | }
41 |
42 | export function listWeekdaysShort (format, index) {
43 | return list(format, index, 'weekdaysShort', 7, 'day');
44 | }
45 |
46 | export function listWeekdaysMin (format, index) {
47 | return list(format, index, 'weekdaysMin', 7, 'day');
48 | }
49 |
--------------------------------------------------------------------------------
/public/bower/angular-ui-router/src/view.js:
--------------------------------------------------------------------------------
1 |
2 | $ViewProvider.$inject = [];
3 | function $ViewProvider() {
4 |
5 | this.$get = $get;
6 | /**
7 | * @ngdoc object
8 | * @name ui.router.state.$view
9 | *
10 | * @requires ui.router.util.$templateFactory
11 | * @requires $rootScope
12 | *
13 | * @description
14 | *
15 | */
16 | $get.$inject = ['$rootScope', '$templateFactory'];
17 | function $get( $rootScope, $templateFactory) {
18 | return {
19 | // $view.load('full.viewName', { template: ..., controller: ..., resolve: ..., async: false, params: ... })
20 | /**
21 | * @ngdoc function
22 | * @name ui.router.state.$view#load
23 | * @methodOf ui.router.state.$view
24 | *
25 | * @description
26 | *
27 | * @param {string} name name
28 | * @param {object} options option object.
29 | */
30 | load: function load(name, options) {
31 | var result, defaults = {
32 | template: null, controller: null, view: null, locals: null, notify: true, async: true, params: {}
33 | };
34 | options = extend(defaults, options);
35 |
36 | if (options.view) {
37 | result = $templateFactory.fromConfig(options.view, options.params, options.locals);
38 | }
39 | return result;
40 | }
41 | };
42 | }
43 | }
44 |
45 | angular.module('ui.router.state').provider('$view', $ViewProvider);
46 |
--------------------------------------------------------------------------------
/public/bower/moment/src/lib/create/check-overflow.js:
--------------------------------------------------------------------------------
1 | import { daysInMonth } from '../units/month';
2 | import { YEAR, MONTH, DATE, HOUR, MINUTE, SECOND, MILLISECOND, WEEK, WEEKDAY } from '../units/constants';
3 | import getParsingFlags from '../create/parsing-flags';
4 |
5 | export default function checkOverflow (m) {
6 | var overflow;
7 | var a = m._a;
8 |
9 | if (a && getParsingFlags(m).overflow === -2) {
10 | overflow =
11 | a[MONTH] < 0 || a[MONTH] > 11 ? MONTH :
12 | a[DATE] < 1 || a[DATE] > daysInMonth(a[YEAR], a[MONTH]) ? DATE :
13 | a[HOUR] < 0 || a[HOUR] > 24 || (a[HOUR] === 24 && (a[MINUTE] !== 0 || a[SECOND] !== 0 || a[MILLISECOND] !== 0)) ? HOUR :
14 | a[MINUTE] < 0 || a[MINUTE] > 59 ? MINUTE :
15 | a[SECOND] < 0 || a[SECOND] > 59 ? SECOND :
16 | a[MILLISECOND] < 0 || a[MILLISECOND] > 999 ? MILLISECOND :
17 | -1;
18 |
19 | if (getParsingFlags(m)._overflowDayOfYear && (overflow < YEAR || overflow > DATE)) {
20 | overflow = DATE;
21 | }
22 | if (getParsingFlags(m)._overflowWeeks && overflow === -1) {
23 | overflow = WEEK;
24 | }
25 | if (getParsingFlags(m)._overflowWeekday && overflow === -1) {
26 | overflow = WEEKDAY;
27 | }
28 |
29 | getParsingFlags(m).overflow = overflow;
30 | }
31 |
32 | return m;
33 | }
34 |
35 |
--------------------------------------------------------------------------------
/public/bower/jquery/src/core/parseHTML.js:
--------------------------------------------------------------------------------
1 | define( [
2 | "../core",
3 | "../var/document",
4 | "./var/rsingleTag",
5 | "../manipulation/buildFragment",
6 |
7 | // This is the only module that needs core/support
8 | "./support"
9 | ], function( jQuery, document, rsingleTag, buildFragment, support ) {
10 |
11 | // Argument "data" should be string of html
12 | // context (optional): If specified, the fragment will be created in this context,
13 | // defaults to document
14 | // keepScripts (optional): If true, will include scripts passed in the html string
15 | jQuery.parseHTML = function( data, context, keepScripts ) {
16 | if ( !data || typeof data !== "string" ) {
17 | return null;
18 | }
19 | if ( typeof context === "boolean" ) {
20 | keepScripts = context;
21 | context = false;
22 | }
23 |
24 | // Stop scripts or inline event handlers from being executed immediately
25 | // by using document.implementation
26 | context = context || ( support.createHTMLDocument ?
27 | document.implementation.createHTMLDocument( "" ) :
28 | document );
29 |
30 | var parsed = rsingleTag.exec( data ),
31 | scripts = !keepScripts && [];
32 |
33 | // Single tag
34 | if ( parsed ) {
35 | return [ context.createElement( parsed[ 1 ] ) ];
36 | }
37 |
38 | parsed = buildFragment( [ data ], context, scripts );
39 |
40 | if ( scripts && scripts.length ) {
41 | jQuery( scripts ).remove();
42 | }
43 |
44 | return jQuery.merge( [], parsed.childNodes );
45 | };
46 |
47 | return jQuery.parseHTML;
48 |
49 | } );
50 |
--------------------------------------------------------------------------------
/public/bower/bootstrap/less/badges.less:
--------------------------------------------------------------------------------
1 | //
2 | // Badges
3 | // --------------------------------------------------
4 |
5 |
6 | // Base class
7 | .badge {
8 | display: inline-block;
9 | min-width: 10px;
10 | padding: 3px 7px;
11 | font-size: @font-size-small;
12 | font-weight: @badge-font-weight;
13 | color: @badge-color;
14 | line-height: @badge-line-height;
15 | vertical-align: middle;
16 | white-space: nowrap;
17 | text-align: center;
18 | background-color: @badge-bg;
19 | border-radius: @badge-border-radius;
20 |
21 | // Empty badges collapse automatically (not available in IE8)
22 | &:empty {
23 | display: none;
24 | }
25 |
26 | // Quick fix for badges in buttons
27 | .btn & {
28 | position: relative;
29 | top: -1px;
30 | }
31 |
32 | .btn-xs &,
33 | .btn-group-xs > .btn & {
34 | top: 0;
35 | padding: 1px 5px;
36 | }
37 |
38 | // Hover state, but only for links
39 | a& {
40 | &:hover,
41 | &:focus {
42 | color: @badge-link-hover-color;
43 | text-decoration: none;
44 | cursor: pointer;
45 | }
46 | }
47 |
48 | // Account for badges in navs
49 | .list-group-item.active > &,
50 | .nav-pills > .active > a > & {
51 | color: @badge-active-color;
52 | background-color: @badge-active-bg;
53 | }
54 |
55 | .list-group-item > & {
56 | float: right;
57 | }
58 |
59 | .list-group-item > & + & {
60 | margin-right: 5px;
61 | }
62 |
63 | .nav-pills > li > a > & {
64 | margin-left: 3px;
65 | }
66 | }
67 |
--------------------------------------------------------------------------------
/public/bower/moment/src/lib/moment/start-end-of.js:
--------------------------------------------------------------------------------
1 | import { normalizeUnits } from '../units/aliases';
2 |
3 | export function startOf (units) {
4 | units = normalizeUnits(units);
5 | // the following switch intentionally omits break keywords
6 | // to utilize falling through the cases.
7 | switch (units) {
8 | case 'year':
9 | this.month(0);
10 | /* falls through */
11 | case 'quarter':
12 | case 'month':
13 | this.date(1);
14 | /* falls through */
15 | case 'week':
16 | case 'isoWeek':
17 | case 'day':
18 | this.hours(0);
19 | /* falls through */
20 | case 'hour':
21 | this.minutes(0);
22 | /* falls through */
23 | case 'minute':
24 | this.seconds(0);
25 | /* falls through */
26 | case 'second':
27 | this.milliseconds(0);
28 | }
29 |
30 | // weeks are a special case
31 | if (units === 'week') {
32 | this.weekday(0);
33 | }
34 | if (units === 'isoWeek') {
35 | this.isoWeekday(1);
36 | }
37 |
38 | // quarters are also special
39 | if (units === 'quarter') {
40 | this.month(Math.floor(this.month() / 3) * 3);
41 | }
42 |
43 | return this;
44 | }
45 |
46 | export function endOf (units) {
47 | units = normalizeUnits(units);
48 | if (units === undefined || units === 'millisecond') {
49 | return this;
50 | }
51 | return this.startOf(units).add(1, (units === 'isoWeek' ? 'week' : units)).subtract(1, 'ms');
52 | }
53 |
--------------------------------------------------------------------------------
/public/bower/jquery/src/core/access.js:
--------------------------------------------------------------------------------
1 | define( [
2 | "../core"
3 | ], function( jQuery ) {
4 |
5 | // Multifunctional method to get and set values of a collection
6 | // The value/s can optionally be executed if it's a function
7 | var access = function( elems, fn, key, value, chainable, emptyGet, raw ) {
8 | var i = 0,
9 | len = elems.length,
10 | bulk = key == null;
11 |
12 | // Sets many values
13 | if ( jQuery.type( key ) === "object" ) {
14 | chainable = true;
15 | for ( i in key ) {
16 | access( elems, fn, i, key[ i ], true, emptyGet, raw );
17 | }
18 |
19 | // Sets one value
20 | } else if ( value !== undefined ) {
21 | chainable = true;
22 |
23 | if ( !jQuery.isFunction( value ) ) {
24 | raw = true;
25 | }
26 |
27 | if ( bulk ) {
28 |
29 | // Bulk operations run against the entire set
30 | if ( raw ) {
31 | fn.call( elems, value );
32 | fn = null;
33 |
34 | // ...except when executing function values
35 | } else {
36 | bulk = fn;
37 | fn = function( elem, key, value ) {
38 | return bulk.call( jQuery( elem ), value );
39 | };
40 | }
41 | }
42 |
43 | if ( fn ) {
44 | for ( ; i < len; i++ ) {
45 | fn(
46 | elems[ i ], key, raw ?
47 | value :
48 | value.call( elems[ i ], i, fn( elems[ i ], key ) )
49 | );
50 | }
51 | }
52 | }
53 |
54 | return chainable ?
55 | elems :
56 |
57 | // Gets
58 | bulk ?
59 | fn.call( elems ) :
60 | len ? fn( elems[ 0 ], key ) : emptyGet;
61 | };
62 |
63 | return access;
64 |
65 | } );
66 |
--------------------------------------------------------------------------------
/public/bower/bootstrap/less/bootstrap.less:
--------------------------------------------------------------------------------
1 | /*!
2 | * Bootstrap v3.3.6 (http://getbootstrap.com)
3 | * Copyright 2011-2015 Twitter, Inc.
4 | * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
5 | */
6 |
7 | // Core variables and mixins
8 | @import "variables.less";
9 | @import "mixins.less";
10 |
11 | // Reset and dependencies
12 | @import "normalize.less";
13 | @import "print.less";
14 | @import "glyphicons.less";
15 |
16 | // Core CSS
17 | @import "scaffolding.less";
18 | @import "type.less";
19 | @import "code.less";
20 | @import "grid.less";
21 | @import "tables.less";
22 | @import "forms.less";
23 | @import "buttons.less";
24 |
25 | // Components
26 | @import "component-animations.less";
27 | @import "dropdowns.less";
28 | @import "button-groups.less";
29 | @import "input-groups.less";
30 | @import "navs.less";
31 | @import "navbar.less";
32 | @import "breadcrumbs.less";
33 | @import "pagination.less";
34 | @import "pager.less";
35 | @import "labels.less";
36 | @import "badges.less";
37 | @import "jumbotron.less";
38 | @import "thumbnails.less";
39 | @import "alerts.less";
40 | @import "progress-bars.less";
41 | @import "media.less";
42 | @import "list-group.less";
43 | @import "panels.less";
44 | @import "responsive-embed.less";
45 | @import "wells.less";
46 | @import "close.less";
47 |
48 | // Components w/ JavaScript
49 | @import "modals.less";
50 | @import "tooltip.less";
51 | @import "popovers.less";
52 | @import "carousel.less";
53 |
54 | // Utility classes
55 | @import "utilities.less";
56 | @import "responsive-utilities.less";
57 |
--------------------------------------------------------------------------------
/public/bower/bootstrap/grunt/bs-raw-files-generator.js:
--------------------------------------------------------------------------------
1 | /*!
2 | * Bootstrap Grunt task for generating raw-files.min.js for the Customizer
3 | * http://getbootstrap.com
4 | * Copyright 2014-2015 Twitter, Inc.
5 | * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
6 | */
7 |
8 | 'use strict';
9 |
10 | var fs = require('fs');
11 | var btoa = require('btoa');
12 | var glob = require('glob');
13 |
14 | function getFiles(type) {
15 | var files = {};
16 | var recursive = type === 'less';
17 | var globExpr = recursive ? '/**/*' : '/*';
18 | glob.sync(type + globExpr)
19 | .filter(function (path) {
20 | return type === 'fonts' ? true : new RegExp('\\.' + type + '$').test(path);
21 | })
22 | .forEach(function (fullPath) {
23 | var relativePath = fullPath.replace(/^[^/]+\//, '');
24 | files[relativePath] = type === 'fonts' ? btoa(fs.readFileSync(fullPath)) : fs.readFileSync(fullPath, 'utf8');
25 | });
26 | return 'var __' + type + ' = ' + JSON.stringify(files) + '\n';
27 | }
28 |
29 | module.exports = function generateRawFilesJs(grunt, banner) {
30 | if (!banner) {
31 | banner = '';
32 | }
33 | var dirs = ['js', 'less', 'fonts'];
34 | var files = banner + dirs.map(getFiles).reduce(function (combined, file) {
35 | return combined + file;
36 | }, '');
37 | var rawFilesJs = 'docs/assets/js/raw-files.min.js';
38 | try {
39 | fs.writeFileSync(rawFilesJs, files);
40 | } catch (err) {
41 | grunt.fail.warn(err);
42 | }
43 | grunt.log.writeln('File ' + rawFilesJs.cyan + ' created.');
44 | };
45 |
--------------------------------------------------------------------------------
/public/bower/moment/src/lib/duration/constructor.js:
--------------------------------------------------------------------------------
1 | import { normalizeObjectUnits } from '../units/aliases';
2 | import { getLocale } from '../locale/locales';
3 |
4 | export function Duration (duration) {
5 | var normalizedInput = normalizeObjectUnits(duration),
6 | years = normalizedInput.year || 0,
7 | quarters = normalizedInput.quarter || 0,
8 | months = normalizedInput.month || 0,
9 | weeks = normalizedInput.week || 0,
10 | days = normalizedInput.day || 0,
11 | hours = normalizedInput.hour || 0,
12 | minutes = normalizedInput.minute || 0,
13 | seconds = normalizedInput.second || 0,
14 | milliseconds = normalizedInput.millisecond || 0;
15 |
16 | // representation for dateAddRemove
17 | this._milliseconds = +milliseconds +
18 | seconds * 1e3 + // 1000
19 | minutes * 6e4 + // 1000 * 60
20 | hours * 36e5; // 1000 * 60 * 60
21 | // Because of dateAddRemove treats 24 hours as different from a
22 | // day when working around DST, we need to store them separately
23 | this._days = +days +
24 | weeks * 7;
25 | // It is impossible translate months into days without knowing
26 | // which months you are are talking about, so we have to store
27 | // it separately.
28 | this._months = +months +
29 | quarters * 3 +
30 | years * 12;
31 |
32 | this._data = {};
33 |
34 | this._locale = getLocale();
35 |
36 | this._bubble();
37 | }
38 |
39 | export function isDuration (obj) {
40 | return obj instanceof Duration;
41 | }
42 |
--------------------------------------------------------------------------------
/public/bower/jquery/src/intro.js:
--------------------------------------------------------------------------------
1 | /*!
2 | * jQuery JavaScript Library v@VERSION
3 | * http://jquery.com/
4 | *
5 | * Includes Sizzle.js
6 | * http://sizzlejs.com/
7 | *
8 | * Copyright jQuery Foundation and other contributors
9 | * Released under the MIT license
10 | * http://jquery.org/license
11 | *
12 | * Date: @DATE
13 | */
14 |
15 | (function( global, factory ) {
16 |
17 | if ( typeof module === "object" && typeof module.exports === "object" ) {
18 | // For CommonJS and CommonJS-like environments where a proper `window`
19 | // is present, execute the factory and get jQuery.
20 | // For environments that do not have a `window` with a `document`
21 | // (such as Node.js), expose a factory as module.exports.
22 | // This accentuates the need for the creation of a real `window`.
23 | // e.g. var jQuery = require("jquery")(window);
24 | // See ticket #14549 for more info.
25 | module.exports = global.document ?
26 | factory( global, true ) :
27 | function( w ) {
28 | if ( !w.document ) {
29 | throw new Error( "jQuery requires a window with a document" );
30 | }
31 | return factory( w );
32 | };
33 | } else {
34 | factory( global );
35 | }
36 |
37 | // Pass this if window is not defined yet
38 | }(typeof window !== "undefined" ? window : this, function( window, noGlobal ) {
39 |
40 | // Support: Firefox 18+
41 | // Can't be in strict mode, several libs including ASP.NET trace
42 | // the stack via arguments.caller.callee and Firefox dies if
43 | // you try to trace through "use strict" call chains. (#13335)
44 | //"use strict";
45 |
--------------------------------------------------------------------------------
/public/bower/bootstrap/grunt/configBridge.json:
--------------------------------------------------------------------------------
1 | {
2 | "paths": {
3 | "customizerJs": [
4 | "../assets/js/vendor/autoprefixer.js",
5 | "../assets/js/vendor/less.min.js",
6 | "../assets/js/vendor/jszip.min.js",
7 | "../assets/js/vendor/uglify.min.js",
8 | "../assets/js/vendor/Blob.js",
9 | "../assets/js/vendor/FileSaver.js",
10 | "../assets/js/raw-files.min.js",
11 | "../assets/js/src/customizer.js"
12 | ],
13 | "docsJs": [
14 | "../assets/js/vendor/holder.min.js",
15 | "../assets/js/vendor/ZeroClipboard.min.js",
16 | "../assets/js/vendor/anchor.js",
17 | "../assets/js/src/application.js"
18 | ]
19 | },
20 | "config": {
21 | "autoprefixerBrowsers": [
22 | "Android 2.3",
23 | "Android >= 4",
24 | "Chrome >= 20",
25 | "Firefox >= 24",
26 | "Explorer >= 8",
27 | "iOS >= 6",
28 | "Opera >= 12",
29 | "Safari >= 6"
30 | ],
31 | "jqueryCheck": [
32 | "if (typeof jQuery === 'undefined') {",
33 | " throw new Error('Bootstrap\\'s JavaScript requires jQuery')",
34 | "}\n"
35 | ],
36 | "jqueryVersionCheck": [
37 | "+function ($) {",
38 | " 'use strict';",
39 | " var version = $.fn.jquery.split(' ')[0].split('.')",
40 | " if ((version[0] < 2 && version[1] < 9) || (version[0] == 1 && version[1] == 9 && version[2] < 1) || (version[0] > 2)) {",
41 | " throw new Error('Bootstrap\\'s JavaScript requires jQuery version 1.9.1 or higher, but lower than version 3')",
42 | " }",
43 | "}(jQuery);\n\n"
44 | ]
45 | }
46 | }
47 |
--------------------------------------------------------------------------------
/public/bower/bootstrap/grunt/bs-glyphicons-data-generator.js:
--------------------------------------------------------------------------------
1 | /*!
2 | * Bootstrap Grunt task for Glyphicons data generation
3 | * http://getbootstrap.com
4 | * Copyright 2014-2015 Twitter, Inc.
5 | * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
6 | */
7 |
8 | 'use strict';
9 |
10 | var fs = require('fs');
11 |
12 | module.exports = function generateGlyphiconsData(grunt) {
13 | // Pass encoding, utf8, so `readFileSync` will return a string instead of a
14 | // buffer
15 | var glyphiconsFile = fs.readFileSync('less/glyphicons.less', 'utf8');
16 | var glyphiconsLines = glyphiconsFile.split('\n');
17 |
18 | // Use any line that starts with ".glyphicon-" and capture the class name
19 | var iconClassName = /^\.(glyphicon-[a-zA-Z0-9-]+)/;
20 | var glyphiconsData = '# This file is generated via Grunt task. **Do not edit directly.**\n' +
21 | '# See the \'build-glyphicons-data\' task in Gruntfile.js.\n\n';
22 | var glyphiconsYml = 'docs/_data/glyphicons.yml';
23 | for (var i = 0, len = glyphiconsLines.length; i < len; i++) {
24 | var match = glyphiconsLines[i].match(iconClassName);
25 |
26 | if (match !== null) {
27 | glyphiconsData += '- ' + match[1] + '\n';
28 | }
29 | }
30 |
31 | // Create the `_data` directory if it doesn't already exist
32 | if (!fs.existsSync('docs/_data')) {
33 | fs.mkdirSync('docs/_data');
34 | }
35 |
36 | try {
37 | fs.writeFileSync(glyphiconsYml, glyphiconsData);
38 | } catch (err) {
39 | grunt.fail.warn(err);
40 | }
41 | grunt.log.writeln('File ' + glyphiconsYml.cyan + ' created.');
42 | };
43 |
--------------------------------------------------------------------------------
/public/bower/moment/src/locale/ja.js:
--------------------------------------------------------------------------------
1 | //! moment.js locale configuration
2 | //! locale : japanese (ja)
3 | //! author : LI Long : https://github.com/baryon
4 |
5 | import moment from '../moment';
6 |
7 | export default moment.defineLocale('ja', {
8 | months : '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split('_'),
9 | monthsShort : '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split('_'),
10 | weekdays : '日曜日_月曜日_火曜日_水曜日_木曜日_金曜日_土曜日'.split('_'),
11 | weekdaysShort : '日_月_火_水_木_金_土'.split('_'),
12 | weekdaysMin : '日_月_火_水_木_金_土'.split('_'),
13 | longDateFormat : {
14 | LT : 'Ah時m分',
15 | LTS : 'Ah時m分s秒',
16 | L : 'YYYY/MM/DD',
17 | LL : 'YYYY年M月D日',
18 | LLL : 'YYYY年M月D日Ah時m分',
19 | LLLL : 'YYYY年M月D日Ah時m分 dddd'
20 | },
21 | meridiemParse: /午前|午後/i,
22 | isPM : function (input) {
23 | return input === '午後';
24 | },
25 | meridiem : function (hour, minute, isLower) {
26 | if (hour < 12) {
27 | return '午前';
28 | } else {
29 | return '午後';
30 | }
31 | },
32 | calendar : {
33 | sameDay : '[今日] LT',
34 | nextDay : '[明日] LT',
35 | nextWeek : '[来週]dddd LT',
36 | lastDay : '[昨日] LT',
37 | lastWeek : '[前週]dddd LT',
38 | sameElse : 'L'
39 | },
40 | relativeTime : {
41 | future : '%s後',
42 | past : '%s前',
43 | s : '数秒',
44 | m : '1分',
45 | mm : '%d分',
46 | h : '1時間',
47 | hh : '%d時間',
48 | d : '1日',
49 | dd : '%d日',
50 | M : '1ヶ月',
51 | MM : '%dヶ月',
52 | y : '1年',
53 | yy : '%d年'
54 | }
55 | });
56 |
57 |
--------------------------------------------------------------------------------
/public/bower/moment/src/locale/ar-tn.js:
--------------------------------------------------------------------------------
1 | //! moment.js locale configuration
2 | //! locale : Tunisian Arabic (ar-tn)
3 |
4 | import moment from '../moment';
5 |
6 | export default moment.defineLocale('ar-tn', {
7 | months: 'جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split('_'),
8 | monthsShort: 'جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split('_'),
9 | weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),
10 | weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),
11 | weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),
12 | longDateFormat: {
13 | LT: 'HH:mm',
14 | LTS: 'HH:mm:ss',
15 | L: 'DD/MM/YYYY',
16 | LL: 'D MMMM YYYY',
17 | LLL: 'D MMMM YYYY HH:mm',
18 | LLLL: 'dddd D MMMM YYYY HH:mm'
19 | },
20 | calendar: {
21 | sameDay: '[اليوم على الساعة] LT',
22 | nextDay: '[غدا على الساعة] LT',
23 | nextWeek: 'dddd [على الساعة] LT',
24 | lastDay: '[أمس على الساعة] LT',
25 | lastWeek: 'dddd [على الساعة] LT',
26 | sameElse: 'L'
27 | },
28 | relativeTime: {
29 | future: 'في %s',
30 | past: 'منذ %s',
31 | s: 'ثوان',
32 | m: 'دقيقة',
33 | mm: '%d دقائق',
34 | h: 'ساعة',
35 | hh: '%d ساعات',
36 | d: 'يوم',
37 | dd: '%d أيام',
38 | M: 'شهر',
39 | MM: '%d أشهر',
40 | y: 'سنة',
41 | yy: '%d سنوات'
42 | },
43 | week: {
44 | dow: 1, // Monday is the first day of the week.
45 | doy: 4 // The week that contains Jan 4th is the first week of the year.
46 | }
47 | });
48 |
49 |
--------------------------------------------------------------------------------
/public/bower/jquery/src/ajax/script.js:
--------------------------------------------------------------------------------
1 | define( [
2 | "../core",
3 | "../var/document",
4 | "../ajax"
5 | ], function( jQuery, document ) {
6 |
7 | // Install script dataType
8 | jQuery.ajaxSetup( {
9 | accepts: {
10 | script: "text/javascript, application/javascript, " +
11 | "application/ecmascript, application/x-ecmascript"
12 | },
13 | contents: {
14 | script: /\b(?:java|ecma)script\b/
15 | },
16 | converters: {
17 | "text script": function( text ) {
18 | jQuery.globalEval( text );
19 | return text;
20 | }
21 | }
22 | } );
23 |
24 | // Handle cache's special case and crossDomain
25 | jQuery.ajaxPrefilter( "script", function( s ) {
26 | if ( s.cache === undefined ) {
27 | s.cache = false;
28 | }
29 | if ( s.crossDomain ) {
30 | s.type = "GET";
31 | }
32 | } );
33 |
34 | // Bind script tag hack transport
35 | jQuery.ajaxTransport( "script", function( s ) {
36 |
37 | // This transport only deals with cross domain requests
38 | if ( s.crossDomain ) {
39 | var script, callback;
40 | return {
41 | send: function( _, complete ) {
42 | script = jQuery( "