add angular duration format filter lib

This commit is contained in:
John Mitchell 2016-11-15 15:28:18 -05:00 committed by jaredevantabor
parent 7cb15515af
commit f3526ca86c
6 changed files with 527 additions and 188 deletions

View File

@ -1,120 +0,0 @@
// TODO: come back and get this library
export default function() {
var DURATION_FORMATS_SPLIT = /((?:[^ydhms']+)|(?:'(?:[^']|'')*')|(?:y+|d+|h+|m+|s+))(.*)/;
var DURATION_FORMATS = {
'y': { // years
// "longer" years are not supported
value: 365 * 24 * 60 * 60 * 1000
},
'yy': {
value: 'y',
pad: 2
},
'd': { // days
value: 24 * 60 * 60 * 1000
},
'dd': {
value: 'd',
pad: 2
},
'h': { // hours
value: 60 * 60 * 1000
},
'hh': { // padded hours
value: 'h',
pad: 2
},
'm': { // minutes
value: 60 * 1000
},
'mm': { // padded minutes
value: 'm',
pad: 2
},
's': { // seconds
value: 1000
},
'ss': { // padded seconds
value: 's',
pad: 2
},
'sss': { // milliseconds
value: 1
},
'ssss': { // padded milliseconds
value: 'sss',
pad: 4
}
};
function _parseFormat(string) {
// @inspiration AngularJS date filter
var parts = [];
var format = string;
while(format) {
var match = DURATION_FORMATS_SPLIT.exec(format);
if (match) {
parts = parts.concat(match.slice(1));
format = parts.pop();
} else {
parts.push(format);
format = null;
}
}
return parts;
}
function _formatDuration(timestamp, format) {
var text = '';
var values = { };
format.filter(function(format) { // filter only value parts of format
return DURATION_FORMATS.hasOwnProperty(format);
}).map(function(format) { // get formats with values only
var config = DURATION_FORMATS[format];
if(config.hasOwnProperty('pad')) {
return config.value;
} else {
return format;
}
}).filter(function(format, index, arr) { // remove duplicates
return (arr.indexOf(format) === index);
}).map(function(format) { // get format configurations with values
return angular.extend({
name: format,
}, DURATION_FORMATS[format]);
}).sort(function(a, b) { // sort formats descending by value
return b.value - a.value;
}).forEach(function(format) { // create values for format parts
var value = values[format.name] = Math.floor(timestamp / format.value);
timestamp = timestamp - (value * format.value);
});
format.forEach(function(part) {
var format = DURATION_FORMATS[part];
if(format) {
var value = values[format.value];
text += (format.hasOwnProperty('pad') ? _padNumber(value, Math.max(format.pad, value.toString().length)) : values[part]);
} else {
text += part.replace(/(^'|'$)/g, '').replace(/''/g, '\'');
}
});
return text;
}
function _padNumber(number, len) {
return ((new Array(len + 1)).join('0') + number).slice(-len);
}
return function(value, format) {
if (typeof value !== "number") {
return value;
}
var timestamp = parseInt(value.valueOf(), 10);
if(isNaN(timestamp)) {
return value;
} else {
return _formatDuration(
timestamp,
_parseFormat(format)
);
}
};
};

View File

@ -16,8 +16,6 @@ import jobResultsService from './job-results.service';
import eventQueueService from './event-queue.service';
import parseStdoutService from './parse-stdout.service';
import durationFilter from './duration.filter';
export default
angular.module('jobResults', [hostStatusBar.name, jobResultsStdOut.name, hostEvent.name])
.run(['$stateExtender', function($stateExtender) {
@ -26,5 +24,4 @@ export default
.controller('jobResultsController', jobResultsController)
.service('jobResultsService', jobResultsService)
.service('eventQueue', eventQueueService)
.service('parseStdoutService', parseStdoutService)
.filter('duration', durationFilter);
.service('parseStdoutService', parseStdoutService);

View File

@ -20,6 +20,7 @@ import templateUrl from './template-url/main';
import RestServices from '../rest/main';
import stateDefinitions from './stateDefinitions.factory';
import apiLoader from './api-loader';
import 'angular-duration-format';
export default
angular.module('shared', [listGenerator.name,
@ -36,6 +37,7 @@ angular.module('shared', [listGenerator.name,
RestServices.name,
apiLoader.name,
require('angular-cookies'),
'angular-duration-format'
])
.factory('stateDefinitions', stateDefinitions)
.factory('lodashAsPromised', lodashAsPromised)

View File

@ -86,6 +86,11 @@
"from": "leigh-johnson/angular-drag-and-drop-lists#1.4.0",
"resolved": "git://github.com/leigh-johnson/angular-drag-and-drop-lists.git#4d32654ab7159689a7767b9be8fc85f9812ca5a8"
},
"angular-duration-format": {
"version": "1.0.1",
"from": "angular-duration-format@>=1.0.1 <2.0.0",
"resolved": "https://registry.npmjs.org/angular-duration-format/-/angular-duration-format-1.0.1.tgz"
},
"angular-filters": {
"version": "1.1.2",
"from": "angular-filters@>=1.1.2 <2.0.0",
@ -102,9 +107,9 @@
"resolved": "https://registry.npmjs.org/angular-gettext-tools/-/angular-gettext-tools-2.3.0.tgz",
"dependencies": {
"lodash": {
"version": "4.16.6",
"version": "4.17.1",
"from": "lodash@>=4.0.0 <5.0.0",
"resolved": "https://registry.npmjs.org/lodash/-/lodash-4.16.6.tgz"
"resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.1.tgz"
}
}
},
@ -113,6 +118,11 @@
"from": "angular-md5@>=0.1.8 <0.2.0",
"resolved": "https://registry.npmjs.org/angular-md5/-/angular-md5-0.1.10.tgz"
},
"angular-mocks": {
"version": "1.5.8",
"from": "angular-mocks@>=1.5.8 <2.0.0",
"resolved": "https://registry.npmjs.org/angular-mocks/-/angular-mocks-1.5.8.tgz"
},
"angular-moment": {
"version": "0.10.3",
"from": "angular-moment@>=0.10.1 <0.11.0",
@ -207,9 +217,9 @@
"resolved": "https://registry.npmjs.org/archiver/-/archiver-1.1.0.tgz",
"dependencies": {
"lodash": {
"version": "4.16.6",
"version": "4.17.1",
"from": "lodash@>=4.8.0 <5.0.0",
"resolved": "https://registry.npmjs.org/lodash/-/lodash-4.16.6.tgz"
"resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.1.tgz"
}
}
},
@ -219,9 +229,9 @@
"resolved": "https://registry.npmjs.org/archiver-utils/-/archiver-utils-1.3.0.tgz",
"dependencies": {
"lodash": {
"version": "4.16.6",
"version": "4.17.1",
"from": "lodash@>=4.8.0 <5.0.0",
"resolved": "https://registry.npmjs.org/lodash/-/lodash-4.16.6.tgz"
"resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.1.tgz"
}
}
},
@ -311,9 +321,9 @@
"resolved": "https://registry.npmjs.org/async/-/async-2.1.2.tgz",
"dependencies": {
"lodash": {
"version": "4.16.6",
"version": "4.17.1",
"from": "lodash@>=4.14.0 <5.0.0",
"resolved": "https://registry.npmjs.org/lodash/-/lodash-4.16.6.tgz"
"resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.1.tgz"
}
}
},
@ -333,9 +343,9 @@
"resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz"
},
"autoprefixer": {
"version": "6.5.1",
"version": "6.5.3",
"from": "autoprefixer@>=6.0.0 <7.0.0",
"resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-6.5.1.tgz"
"resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-6.5.3.tgz"
},
"aws-sign2": {
"version": "0.6.0",
@ -358,9 +368,9 @@
"resolved": "https://registry.npmjs.org/babel-core/-/babel-core-6.18.2.tgz",
"dependencies": {
"lodash": {
"version": "4.16.6",
"version": "4.17.1",
"from": "lodash@>=4.2.0 <5.0.0",
"resolved": "https://registry.npmjs.org/lodash/-/lodash-4.16.6.tgz"
"resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.1.tgz"
},
"source-map": {
"version": "0.5.6",
@ -375,9 +385,9 @@
"resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.18.0.tgz",
"dependencies": {
"lodash": {
"version": "4.16.6",
"version": "4.17.1",
"from": "lodash@>=4.2.0 <5.0.0",
"resolved": "https://registry.npmjs.org/lodash/-/lodash-4.16.6.tgz"
"resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.1.tgz"
},
"source-map": {
"version": "0.5.6",
@ -397,9 +407,9 @@
"resolved": "https://registry.npmjs.org/babel-helper-define-map/-/babel-helper-define-map-6.18.0.tgz",
"dependencies": {
"lodash": {
"version": "4.16.6",
"version": "4.17.1",
"from": "lodash@>=4.2.0 <5.0.0",
"resolved": "https://registry.npmjs.org/lodash/-/lodash-4.16.6.tgz"
"resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.1.tgz"
}
}
},
@ -429,9 +439,9 @@
"resolved": "https://registry.npmjs.org/babel-helper-regex/-/babel-helper-regex-6.18.0.tgz",
"dependencies": {
"lodash": {
"version": "4.16.6",
"version": "4.17.1",
"from": "lodash@>=4.2.0 <5.0.0",
"resolved": "https://registry.npmjs.org/lodash/-/lodash-4.16.6.tgz"
"resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.1.tgz"
}
}
},
@ -445,6 +455,60 @@
"from": "babel-helpers@>=6.16.0 <7.0.0",
"resolved": "https://registry.npmjs.org/babel-helpers/-/babel-helpers-6.16.0.tgz"
},
"babel-istanbul": {
"version": "0.11.0",
"from": "babel-istanbul@>=0.11.0 <0.12.0",
"resolved": "https://registry.npmjs.org/babel-istanbul/-/babel-istanbul-0.11.0.tgz",
"dependencies": {
"async": {
"version": "1.5.2",
"from": "async@>=1.0.0 <2.0.0",
"resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz"
},
"minimist": {
"version": "0.0.8",
"from": "minimist@0.0.8",
"resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz"
},
"mkdirp": {
"version": "0.5.1",
"from": "mkdirp@>=0.5.0 <0.6.0",
"resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz"
},
"source-map": {
"version": "0.4.4",
"from": "source-map@>=0.4.0 <0.5.0",
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz"
},
"supports-color": {
"version": "3.1.2",
"from": "supports-color@>=3.1.0 <3.2.0",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.1.2.tgz"
},
"wordwrap": {
"version": "1.0.0",
"from": "wordwrap@>=1.0.0 <1.1.0",
"resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz"
}
}
},
"babel-loader": {
"version": "6.2.7",
"from": "babel-loader@>=6.2.4 <7.0.0",
"resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-6.2.7.tgz",
"dependencies": {
"minimist": {
"version": "0.0.8",
"from": "minimist@0.0.8",
"resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz"
},
"mkdirp": {
"version": "0.5.1",
"from": "mkdirp@>=0.5.1 <0.6.0",
"resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz"
}
}
},
"babel-messages": {
"version": "6.8.0",
"from": "babel-messages@>=6.8.0 <7.0.0",
@ -455,6 +519,11 @@
"from": "babel-plugin-check-es2015-constants@>=6.3.13 <7.0.0",
"resolved": "https://registry.npmjs.org/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-6.8.0.tgz"
},
"babel-plugin-istanbul": {
"version": "2.0.3",
"from": "babel-plugin-istanbul@>=2.0.0 <3.0.0",
"resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-2.0.3.tgz"
},
"babel-plugin-transform-es2015-arrow-functions": {
"version": "6.8.0",
"from": "babel-plugin-transform-es2015-arrow-functions@>=6.3.13 <7.0.0",
@ -471,9 +540,9 @@
"resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.18.0.tgz",
"dependencies": {
"lodash": {
"version": "4.16.6",
"version": "4.17.1",
"from": "lodash@>=4.2.0 <5.0.0",
"resolved": "https://registry.npmjs.org/lodash/-/lodash-4.16.6.tgz"
"resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.1.tgz"
}
}
},
@ -582,15 +651,20 @@
"from": "babel-plugin-transform-strict-mode@>=6.18.0 <7.0.0",
"resolved": "https://registry.npmjs.org/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.18.0.tgz"
},
"babel-preset-es2015": {
"version": "6.18.0",
"from": "babel-preset-es2015@>=6.9.0 <7.0.0",
"resolved": "https://registry.npmjs.org/babel-preset-es2015/-/babel-preset-es2015-6.18.0.tgz"
},
"babel-register": {
"version": "6.18.0",
"from": "babel-register@>=6.18.0 <7.0.0",
"resolved": "https://registry.npmjs.org/babel-register/-/babel-register-6.18.0.tgz",
"dependencies": {
"lodash": {
"version": "4.16.6",
"version": "4.17.1",
"from": "lodash@>=4.2.0 <5.0.0",
"resolved": "https://registry.npmjs.org/lodash/-/lodash-4.16.6.tgz"
"resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.1.tgz"
},
"minimist": {
"version": "0.0.8",
@ -615,9 +689,9 @@
"resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.16.0.tgz",
"dependencies": {
"lodash": {
"version": "4.16.6",
"version": "4.17.1",
"from": "lodash@>=4.2.0 <5.0.0",
"resolved": "https://registry.npmjs.org/lodash/-/lodash-4.16.6.tgz"
"resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.1.tgz"
}
}
},
@ -627,9 +701,9 @@
"resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.18.0.tgz",
"dependencies": {
"lodash": {
"version": "4.16.6",
"version": "4.17.1",
"from": "lodash@>=4.2.0 <5.0.0",
"resolved": "https://registry.npmjs.org/lodash/-/lodash-4.16.6.tgz"
"resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.1.tgz"
}
}
},
@ -639,9 +713,9 @@
"resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.18.0.tgz",
"dependencies": {
"lodash": {
"version": "4.16.6",
"version": "4.17.1",
"from": "lodash@>=4.2.0 <5.0.0",
"resolved": "https://registry.npmjs.org/lodash/-/lodash-4.16.6.tgz"
"resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.1.tgz"
}
}
},
@ -691,9 +765,9 @@
"resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.0.tgz"
},
"beeper": {
"version": "1.1.0",
"version": "1.1.1",
"from": "beeper@>=1.1.0 <2.0.0",
"resolved": "https://registry.npmjs.org/beeper/-/beeper-1.1.0.tgz"
"resolved": "https://registry.npmjs.org/beeper/-/beeper-1.1.1.tgz"
},
"benchmark": {
"version": "1.0.0",
@ -795,9 +869,9 @@
"resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz"
},
"browser-sync": {
"version": "2.17.5",
"version": "2.17.6",
"from": "browser-sync@>=2.14.0 <3.0.0",
"resolved": "https://registry.npmjs.org/browser-sync/-/browser-sync-2.17.5.tgz"
"resolved": "https://registry.npmjs.org/browser-sync/-/browser-sync-2.17.6.tgz"
},
"browser-sync-client": {
"version": "2.4.3",
@ -820,9 +894,9 @@
"resolved": "https://registry.npmjs.org/browserslist/-/browserslist-1.4.0.tgz"
},
"bs-recipes": {
"version": "1.2.3",
"from": "bs-recipes@1.2.3",
"resolved": "https://registry.npmjs.org/bs-recipes/-/bs-recipes-1.2.3.tgz"
"version": "1.3.2",
"from": "bs-recipes@1.3.2",
"resolved": "https://registry.npmjs.org/bs-recipes/-/bs-recipes-1.3.2.tgz"
},
"buffer": {
"version": "4.9.1",
@ -872,9 +946,9 @@
}
},
"caniuse-db": {
"version": "1.0.30000576",
"from": "caniuse-db@>=1.0.30000554 <2.0.0",
"resolved": "https://registry.npmjs.org/caniuse-db/-/caniuse-db-1.0.30000576.tgz"
"version": "1.0.30000581",
"from": "caniuse-db@>=1.0.30000578 <2.0.0",
"resolved": "https://registry.npmjs.org/caniuse-db/-/caniuse-db-1.0.30000581.tgz"
},
"caseless": {
"version": "0.11.0",
@ -947,9 +1021,9 @@
"resolved": "https://registry.npmjs.org/combine-lists/-/combine-lists-1.0.1.tgz",
"dependencies": {
"lodash": {
"version": "4.16.6",
"version": "4.17.1",
"from": "lodash@>=4.5.0 <5.0.0",
"resolved": "https://registry.npmjs.org/lodash/-/lodash-4.16.6.tgz"
"resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.1.tgz"
}
}
},
@ -1483,6 +1557,11 @@
"from": "expand-range@>=1.8.1 <2.0.0",
"resolved": "https://registry.npmjs.org/expand-range/-/expand-range-1.8.2.tgz"
},
"expose-loader": {
"version": "0.7.1",
"from": "expose-loader@>=0.7.1 <0.8.0",
"resolved": "https://registry.npmjs.org/expose-loader/-/expose-loader-0.7.1.tgz"
},
"express": {
"version": "2.5.11",
"from": "express@>=2.5.0 <2.6.0",
@ -2343,9 +2422,9 @@
"resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz"
},
"globals": {
"version": "9.12.0",
"version": "9.13.0",
"from": "globals@>=9.0.0 <10.0.0",
"resolved": "https://registry.npmjs.org/globals/-/globals-9.12.0.tgz"
"resolved": "https://registry.npmjs.org/globals/-/globals-9.13.0.tgz"
},
"globule": {
"version": "1.1.0",
@ -2369,6 +2448,33 @@
"from": "graceful-readlink@>=1.0.0",
"resolved": "https://registry.npmjs.org/graceful-readlink/-/graceful-readlink-1.0.1.tgz"
},
"grunt": {
"version": "1.0.1",
"from": "grunt@>=1.0.1 <2.0.0",
"resolved": "https://registry.npmjs.org/grunt/-/grunt-1.0.1.tgz",
"dependencies": {
"glob": {
"version": "7.0.6",
"from": "glob@>=7.0.0 <7.1.0",
"resolved": "https://registry.npmjs.org/glob/-/glob-7.0.6.tgz"
},
"js-yaml": {
"version": "3.5.5",
"from": "js-yaml@>=3.5.2 <3.6.0",
"resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.5.5.tgz"
},
"rimraf": {
"version": "2.2.8",
"from": "rimraf@>=2.2.8 <2.3.0",
"resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.2.8.tgz"
}
}
},
"grunt-angular-gettext": {
"version": "2.3.0",
"from": "grunt-angular-gettext@>=2.2.3 <3.0.0",
"resolved": "https://registry.npmjs.org/grunt-angular-gettext/-/grunt-angular-gettext-2.3.0.tgz"
},
"grunt-browser-sync": {
"version": "2.2.0",
"from": "grunt-browser-sync@>=2.2.0 <3.0.0",
@ -2379,6 +2485,64 @@
"from": "grunt-cli@>=1.2.0 <2.0.0",
"resolved": "https://registry.npmjs.org/grunt-cli/-/grunt-cli-1.2.0.tgz"
},
"grunt-concurrent": {
"version": "2.3.1",
"from": "grunt-concurrent@>=2.3.0 <3.0.0",
"resolved": "https://registry.npmjs.org/grunt-concurrent/-/grunt-concurrent-2.3.1.tgz",
"dependencies": {
"async": {
"version": "1.5.2",
"from": "async@>=1.2.1 <2.0.0",
"resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz"
}
}
},
"grunt-contrib-clean": {
"version": "1.0.0",
"from": "grunt-contrib-clean@>=1.0.0 <2.0.0",
"resolved": "https://registry.npmjs.org/grunt-contrib-clean/-/grunt-contrib-clean-1.0.0.tgz",
"dependencies": {
"async": {
"version": "1.5.2",
"from": "async@>=1.5.2 <2.0.0",
"resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz"
}
}
},
"grunt-contrib-concat": {
"version": "1.0.1",
"from": "grunt-contrib-concat@>=1.0.1 <2.0.0",
"resolved": "https://registry.npmjs.org/grunt-contrib-concat/-/grunt-contrib-concat-1.0.1.tgz",
"dependencies": {
"source-map": {
"version": "0.5.6",
"from": "source-map@>=0.5.3 <0.6.0",
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.6.tgz"
}
}
},
"grunt-contrib-copy": {
"version": "1.0.0",
"from": "grunt-contrib-copy@>=1.0.0 <2.0.0",
"resolved": "https://registry.npmjs.org/grunt-contrib-copy/-/grunt-contrib-copy-1.0.0.tgz"
},
"grunt-contrib-jshint": {
"version": "1.0.0",
"from": "grunt-contrib-jshint@>=1.0.0 <2.0.0",
"resolved": "https://registry.npmjs.org/grunt-contrib-jshint/-/grunt-contrib-jshint-1.0.0.tgz"
},
"grunt-contrib-less": {
"version": "1.4.0",
"from": "grunt-contrib-less@>=1.3.0 <2.0.0",
"resolved": "https://registry.npmjs.org/grunt-contrib-less/-/grunt-contrib-less-1.4.0.tgz",
"dependencies": {
"lodash": {
"version": "4.17.1",
"from": "lodash@>=4.8.2 <5.0.0",
"resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.1.tgz"
}
}
},
"grunt-contrib-watch": {
"version": "1.0.0",
"from": "grunt-contrib-watch@>=1.0.0 <2.0.0",
@ -2391,6 +2555,11 @@
}
}
},
"grunt-extract-sourcemap": {
"version": "0.1.19",
"from": "grunt-extract-sourcemap@>=0.1.18 <0.2.0",
"resolved": "https://registry.npmjs.org/grunt-extract-sourcemap/-/grunt-extract-sourcemap-0.1.19.tgz"
},
"grunt-known-options": {
"version": "1.1.0",
"from": "grunt-known-options@>=1.1.0 <1.2.0",
@ -2430,10 +2599,34 @@
}
}
},
"grunt-newer": {
"version": "1.2.0",
"from": "grunt-newer@>=1.2.0 <2.0.0",
"resolved": "https://registry.npmjs.org/grunt-newer/-/grunt-newer-1.2.0.tgz",
"dependencies": {
"async": {
"version": "1.5.2",
"from": "async@>=1.5.2 <2.0.0",
"resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz"
}
}
},
"grunt-webpack": {
"version": "1.0.18",
"from": "grunt-webpack@>=1.0.11 <2.0.0",
"resolved": "https://registry.npmjs.org/grunt-webpack/-/grunt-webpack-1.0.18.tgz",
"dependencies": {
"lodash": {
"version": "4.17.1",
"from": "lodash@>=4.7.0 <5.0.0",
"resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.1.tgz"
}
}
},
"handlebars": {
"version": "4.0.5",
"version": "4.0.6",
"from": "handlebars@>=4.0.0 <4.1.0",
"resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.0.5.tgz",
"resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.0.6.tgz",
"dependencies": {
"async": {
"version": "1.5.2",
@ -2579,9 +2772,9 @@
"resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz"
},
"lodash": {
"version": "4.16.6",
"version": "4.17.1",
"from": "lodash@>=4.16.2 <5.0.0",
"resolved": "https://registry.npmjs.org/lodash/-/lodash-4.16.6.tgz"
"resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.1.tgz"
}
}
},
@ -2620,6 +2813,18 @@
"from": "immutable@3.8.1",
"resolved": "https://registry.npmjs.org/immutable/-/immutable-3.8.1.tgz"
},
"imports-loader": {
"version": "0.6.5",
"from": "imports-loader@>=0.6.5 <0.7.0",
"resolved": "https://registry.npmjs.org/imports-loader/-/imports-loader-0.6.5.tgz",
"dependencies": {
"source-map": {
"version": "0.1.43",
"from": "source-map@>=0.1.0 <0.2.0",
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.1.43.tgz"
}
}
},
"indent-string": {
"version": "2.1.0",
"from": "indent-string@>=2.1.0 <3.0.0",
@ -2663,9 +2868,9 @@
"resolved": "https://registry.npmjs.org/interpret/-/interpret-0.6.6.tgz"
},
"invariant": {
"version": "2.2.1",
"version": "2.2.2",
"from": "invariant@>=2.2.0 <3.0.0",
"resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.1.tgz"
"resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.2.tgz"
},
"invert-kv": {
"version": "1.0.0",
@ -2845,9 +3050,14 @@
"resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-1.0.0.tgz"
},
"istanbul-lib-instrument": {
"version": "1.2.0",
"version": "1.3.0",
"from": "istanbul-lib-instrument@>=1.1.4 <2.0.0",
"resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-1.2.0.tgz"
"resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-1.3.0.tgz"
},
"jasmine-core": {
"version": "2.5.2",
"from": "jasmine-core@>=2.4.1 <3.0.0",
"resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-2.5.2.tgz"
},
"javascript-detect-element-resize": {
"version": "0.5.3",
@ -2885,9 +3095,9 @@
"resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-2.0.0.tgz"
},
"js-yaml": {
"version": "3.6.1",
"version": "3.7.0",
"from": "js-yaml@>=3.2.7 <4.0.0",
"resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.6.1.tgz"
"resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.7.0.tgz"
},
"jsbn": {
"version": "0.1.0",
@ -2904,6 +3114,35 @@
"from": "jsesc@>=1.3.0 <2.0.0",
"resolved": "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz"
},
"jshint": {
"version": "2.9.4",
"from": "jshint@>=2.9.4 <3.0.0",
"resolved": "https://registry.npmjs.org/jshint/-/jshint-2.9.4.tgz",
"dependencies": {
"lodash": {
"version": "3.7.0",
"from": "lodash@>=3.7.0 <3.8.0",
"resolved": "https://registry.npmjs.org/lodash/-/lodash-3.7.0.tgz"
}
}
},
"jshint-loader": {
"version": "0.8.3",
"from": "jshint-loader@>=0.8.3 <0.9.0",
"resolved": "https://registry.npmjs.org/jshint-loader/-/jshint-loader-0.8.3.tgz",
"dependencies": {
"strip-json-comments": {
"version": "0.1.3",
"from": "strip-json-comments@>=0.1.0 <0.2.0",
"resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-0.1.3.tgz"
}
}
},
"jshint-stylish": {
"version": "2.2.1",
"from": "jshint-stylish@>=2.2.0 <3.0.0",
"resolved": "https://registry.npmjs.org/jshint-stylish/-/jshint-stylish-2.2.1.tgz"
},
"json-schema": {
"version": "0.2.3",
"from": "json-schema@0.2.3",
@ -2944,6 +3183,178 @@
"from": "jstimezonedetect@1.0.5",
"resolved": "https://registry.npmjs.org/jstimezonedetect/-/jstimezonedetect-1.0.5.tgz"
},
"karma": {
"version": "1.3.0",
"from": "karma@>=1.1.2 <2.0.0",
"resolved": "https://registry.npmjs.org/karma/-/karma-1.3.0.tgz",
"dependencies": {
"accepts": {
"version": "1.1.4",
"from": "accepts@1.1.4",
"resolved": "https://registry.npmjs.org/accepts/-/accepts-1.1.4.tgz"
},
"base64-arraybuffer": {
"version": "0.1.2",
"from": "base64-arraybuffer@0.1.2",
"resolved": "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-0.1.2.tgz"
},
"component-emitter": {
"version": "1.2.0",
"from": "component-emitter@1.2.0",
"resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.0.tgz"
},
"engine.io": {
"version": "1.6.10",
"from": "engine.io@1.6.10",
"resolved": "https://registry.npmjs.org/engine.io/-/engine.io-1.6.10.tgz"
},
"engine.io-client": {
"version": "1.6.9",
"from": "engine.io-client@1.6.9",
"resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-1.6.9.tgz",
"dependencies": {
"component-emitter": {
"version": "1.1.2",
"from": "component-emitter@1.1.2",
"resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.1.2.tgz"
}
}
},
"engine.io-parser": {
"version": "1.2.4",
"from": "engine.io-parser@1.2.4",
"resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-1.2.4.tgz",
"dependencies": {
"has-binary": {
"version": "0.1.6",
"from": "has-binary@0.1.6",
"resolved": "https://registry.npmjs.org/has-binary/-/has-binary-0.1.6.tgz"
}
}
},
"isarray": {
"version": "0.0.1",
"from": "isarray@0.0.1",
"resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz"
},
"mime": {
"version": "1.3.4",
"from": "mime@>=1.3.4 <2.0.0",
"resolved": "https://registry.npmjs.org/mime/-/mime-1.3.4.tgz"
},
"mime-db": {
"version": "1.12.0",
"from": "mime-db@>=1.12.0 <1.13.0",
"resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.12.0.tgz"
},
"mime-types": {
"version": "2.0.14",
"from": "mime-types@>=2.0.4 <2.1.0",
"resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.0.14.tgz"
},
"negotiator": {
"version": "0.4.9",
"from": "negotiator@0.4.9",
"resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.4.9.tgz"
},
"socket.io": {
"version": "1.4.7",
"from": "socket.io@1.4.7",
"resolved": "https://registry.npmjs.org/socket.io/-/socket.io-1.4.7.tgz"
},
"socket.io-client": {
"version": "1.4.6",
"from": "socket.io-client@1.4.6",
"resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-1.4.6.tgz"
},
"source-map": {
"version": "0.5.6",
"from": "source-map@>=0.5.3 <0.6.0",
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.6.tgz"
},
"ws": {
"version": "1.0.1",
"from": "ws@1.0.1",
"resolved": "https://registry.npmjs.org/ws/-/ws-1.0.1.tgz"
}
}
},
"karma-chrome-launcher": {
"version": "1.0.1",
"from": "karma-chrome-launcher@>=1.0.1 <2.0.0",
"resolved": "https://registry.npmjs.org/karma-chrome-launcher/-/karma-chrome-launcher-1.0.1.tgz"
},
"karma-coverage": {
"version": "1.1.1",
"from": "karma-coverage@>=1.1.1 <2.0.0",
"resolved": "https://registry.npmjs.org/karma-coverage/-/karma-coverage-1.1.1.tgz",
"dependencies": {
"source-map": {
"version": "0.5.6",
"from": "source-map@>=0.5.1 <0.6.0",
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.6.tgz"
}
}
},
"karma-firefox-launcher": {
"version": "1.0.0",
"from": "karma-firefox-launcher@>=1.0.0 <2.0.0",
"resolved": "https://registry.npmjs.org/karma-firefox-launcher/-/karma-firefox-launcher-1.0.0.tgz"
},
"karma-html2js-preprocessor": {
"version": "1.1.0",
"from": "karma-html2js-preprocessor@>=1.0.0 <2.0.0",
"resolved": "https://registry.npmjs.org/karma-html2js-preprocessor/-/karma-html2js-preprocessor-1.1.0.tgz"
},
"karma-jasmine": {
"version": "1.0.2",
"from": "karma-jasmine@>=1.0.2 <2.0.0",
"resolved": "https://registry.npmjs.org/karma-jasmine/-/karma-jasmine-1.0.2.tgz"
},
"karma-junit-reporter": {
"version": "1.1.0",
"from": "karma-junit-reporter@>=1.1.0 <2.0.0",
"resolved": "https://registry.npmjs.org/karma-junit-reporter/-/karma-junit-reporter-1.1.0.tgz"
},
"karma-phantomjs-launcher": {
"version": "1.0.2",
"from": "karma-phantomjs-launcher@>=1.0.2 <2.0.0",
"resolved": "https://registry.npmjs.org/karma-phantomjs-launcher/-/karma-phantomjs-launcher-1.0.2.tgz",
"dependencies": {
"lodash": {
"version": "4.17.1",
"from": "lodash@>=4.0.1 <5.0.0",
"resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.1.tgz"
}
}
},
"karma-sauce-launcher": {
"version": "1.1.0",
"from": "karma-sauce-launcher@>=1.0.0 <2.0.0",
"resolved": "https://registry.npmjs.org/karma-sauce-launcher/-/karma-sauce-launcher-1.1.0.tgz"
},
"karma-sourcemap-loader": {
"version": "0.3.7",
"from": "karma-sourcemap-loader@>=0.3.7 <0.4.0",
"resolved": "https://registry.npmjs.org/karma-sourcemap-loader/-/karma-sourcemap-loader-0.3.7.tgz"
},
"karma-webpack": {
"version": "1.8.0",
"from": "karma-webpack@>=1.8.0 <2.0.0",
"resolved": "https://registry.npmjs.org/karma-webpack/-/karma-webpack-1.8.0.tgz",
"dependencies": {
"async": {
"version": "0.9.2",
"from": "async@>=0.9.0 <0.10.0",
"resolved": "https://registry.npmjs.org/async/-/async-0.9.2.tgz"
},
"source-map": {
"version": "0.1.43",
"from": "source-map@>=0.1.41 <0.2.0",
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.1.43.tgz"
}
}
},
"kew": {
"version": "0.7.0",
"from": "kew@>=0.7.0 <0.8.0",
@ -3011,6 +3422,11 @@
}
}
},
"less-plugin-autoprefix": {
"version": "1.5.1",
"from": "less-plugin-autoprefix@>=1.4.2 <2.0.0",
"resolved": "https://registry.npmjs.org/less-plugin-autoprefix/-/less-plugin-autoprefix-1.5.1.tgz"
},
"levn": {
"version": "0.3.0",
"from": "levn@>=0.3.0 <0.4.0",
@ -3026,6 +3442,16 @@
"from": "livereload-js@>=2.2.0 <3.0.0",
"resolved": "https://registry.npmjs.org/livereload-js/-/livereload-js-2.2.2.tgz"
},
"load-grunt-configs": {
"version": "1.0.0",
"from": "load-grunt-configs@>=1.0.0 <2.0.0",
"resolved": "https://registry.npmjs.org/load-grunt-configs/-/load-grunt-configs-1.0.0.tgz"
},
"load-grunt-tasks": {
"version": "3.5.2",
"from": "load-grunt-tasks@>=3.5.0 <4.0.0",
"resolved": "https://registry.npmjs.org/load-grunt-tasks/-/load-grunt-tasks-3.5.2.tgz"
},
"load-json-file": {
"version": "1.1.0",
"from": "load-json-file@>=1.0.0 <2.0.0",
@ -3186,9 +3612,9 @@
"resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.3.0.tgz"
},
"moment": {
"version": "2.15.2",
"version": "2.16.0",
"from": "moment@>=2.10.2 <3.0.0",
"resolved": "https://registry.npmjs.org/moment/-/moment-2.15.2.tgz"
"resolved": "https://registry.npmjs.org/moment/-/moment-2.16.0.tgz"
},
"ms": {
"version": "0.7.1",
@ -3760,9 +4186,9 @@
"resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz"
},
"readable-stream": {
"version": "2.1.5",
"version": "2.2.2",
"from": "readable-stream@>=2.0.2 <3.0.0",
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.1.5.tgz"
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.2.2.tgz"
},
"readdirp": {
"version": "2.1.0",
@ -3797,9 +4223,9 @@
"resolved": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz"
},
"regenerate": {
"version": "1.3.1",
"version": "1.3.2",
"from": "regenerate@>=1.2.1 <2.0.0",
"resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.3.1.tgz"
"resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.3.2.tgz"
},
"regenerator-runtime": {
"version": "0.9.6",
@ -4174,9 +4600,9 @@
}
},
"statuses": {
"version": "1.3.0",
"version": "1.3.1",
"from": "statuses@>=1.3.0 <1.4.0",
"resolved": "https://registry.npmjs.org/statuses/-/statuses-1.3.0.tgz"
"resolved": "https://registry.npmjs.org/statuses/-/statuses-1.3.1.tgz"
},
"stream-browserify": {
"version": "1.0.0",
@ -4302,6 +4728,11 @@
}
}
},
"time-grunt": {
"version": "1.4.0",
"from": "time-grunt@>=1.4.0 <2.0.0",
"resolved": "https://registry.npmjs.org/time-grunt/-/time-grunt-1.4.0.tgz"
},
"time-zone": {
"version": "0.1.0",
"from": "time-zone@>=0.1.0 <0.2.0",
@ -4604,6 +5035,33 @@
}
}
},
"webpack": {
"version": "1.13.3",
"from": "webpack@>=1.13.1 <2.0.0",
"resolved": "https://registry.npmjs.org/webpack/-/webpack-1.13.3.tgz",
"dependencies": {
"async": {
"version": "1.5.2",
"from": "async@>=1.3.0 <2.0.0",
"resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz"
},
"minimist": {
"version": "0.0.8",
"from": "minimist@0.0.8",
"resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz"
},
"mkdirp": {
"version": "0.5.1",
"from": "mkdirp@>=0.5.0 <0.6.0",
"resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz"
},
"supports-color": {
"version": "3.1.2",
"from": "supports-color@>=3.1.0 <4.0.0",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.1.2.tgz"
}
}
},
"webpack-core": {
"version": "0.6.8",
"from": "webpack-core@>=0.6.0 <0.7.0",
@ -4666,9 +5124,9 @@
"resolved": "https://registry.npmjs.org/weinre/-/weinre-2.0.0-pre-I0Z7U9OV.tgz"
},
"which": {
"version": "1.2.11",
"version": "1.2.12",
"from": "which@>=1.2.0 <1.3.0",
"resolved": "https://registry.npmjs.org/which/-/which-1.2.11.tgz"
"resolved": "https://registry.npmjs.org/which/-/which-1.2.12.tgz"
},
"which-module": {
"version": "1.0.0",
@ -4765,9 +5223,9 @@
"resolved": "https://registry.npmjs.org/zip-stream/-/zip-stream-1.1.0.tgz",
"dependencies": {
"lodash": {
"version": "4.16.6",
"version": "4.17.1",
"from": "lodash@>=4.8.0 <5.0.0",
"resolved": "https://registry.npmjs.org/lodash/-/lodash-4.16.6.tgz"
"resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.1.tgz"
}
}
}

View File

@ -84,6 +84,7 @@
"angular-codemirror": "chouseknecht/angular-codemirror#1.0.4",
"angular-cookies": "^1.4.3",
"angular-drag-and-drop-lists": "leigh-johnson/angular-drag-and-drop-lists#1.4.0",
"angular-duration-format": "^1.0.1",
"angular-gettext": "^2.3.5",
"angular-md5": "^0.1.8",
"angular-moment": "^0.10.1",

View File

@ -18,6 +18,7 @@ var vendorPkgs = [
'angular-codemirror',
'angular-cookies',
'angular-drag-and-drop-lists',
'angular-duration-format',
'angular-gettext',
'angular-md5',
'angular-moment',