diff --git a/client/package.json b/client/package.json index 3e55ce47a0a..fc8386b6edf 100644 --- a/client/package.json +++ b/client/package.json @@ -12,13 +12,31 @@ "license": "AFL-3.0", "dependencies": { "amdi18n-loader": "^0.6.1", + "backbone": "1.3", + "bib2json": "^0.0.1", + "d3": "3", + "jquery": "1.12", + "jquery-migrate": "~1.4", + "raven-js": "^3.17.0", + "requirejs": "2", + "underscore": "^1.8.3" + }, + "scripts": { + "watch": "concurrently \"yarn run webpack-watch\" \"yarn run gulp watch\"", + "build": "yarn run gulp stage-libs && concurrently \"yarn run build-style\" \"yarn run webpack\" \"yarn run gulp clean && yarn run gulp\"", + "webpack": "webpack -p", + "webpack-watch": "webpack -p --watch", + "webpack-dev": "webpack -d", + "webpack-dev-watch": "webpack -d --watch", + "build-style": "grunt style", + "gulp": "gulp", + "jshint": "jshint --exclude='galaxy/scripts/libs/**' galaxy/scripts/**/*.js" + }, + "devDependencies": { "babel-core": "^6.24.0", "babel-loader": "^7.1.1", "babel-preset-env": "^1.3.2", - "backbone": "1.3", - "bib2json": "^0.0.1", "concurrently": "^3.4.0", - "d3": "3", "del": "^3.0.0", "expose-loader": "^0.7.3", "grunt": "^0.4.5", @@ -37,23 +55,7 @@ "gulp-sourcemaps": "^2.5.1", "gulp-uglify": "^3.0.0", "gulp-watch": "^4.3.11", - "jquery": "1.12", - "jquery-migrate": "~1.4", "jshint": "^2.9.4", - "raven-js": "^3.17.0", - "requirejs": "2", - "underscore": "^1.8.3", - "webpack": "^3.5.5" - }, - "scripts": { - "watch": "concurrently \"yarn run webpack-watch\" \"yarn run gulp watch\"", - "build": "yarn run gulp stage-libs && concurrently \"yarn run build-style\" \"yarn run webpack\" \"yarn run gulp clean && yarn run gulp\"", - "webpack": "webpack -p", - "webpack-watch": "webpack -p --watch", - "webpack-dev": "webpack -d", - "webpack-dev-watch": "webpack -d --watch", - "build-style": "grunt style", - "gulp": "gulp", - "jshint": "jshint --exclude='galaxy/scripts/libs/**' galaxy/scripts/**/*.js" + "webpack": "^3.6.0" } } diff --git a/client/yarn.lock b/client/yarn.lock index ab877867a6e..d02c6f78d3c 100644 --- a/client/yarn.lock +++ b/client/yarn.lock @@ -20,8 +20,8 @@ through2 "^2.0.3" abbrev@1: - version "1.1.0" - resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.0.tgz#d0554c2256636e2f56e7c2e5ad183f859428d81f" + version "1.1.1" + resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8" acorn-dynamic-import@^2.0.0: version "2.0.2" @@ -38,8 +38,8 @@ acorn@^3.0.0: resolved "https://registry.yarnpkg.com/acorn/-/acorn-3.3.0.tgz#45e37fb39e8da3f25baee3ff5369e2bb5f22017a" acorn@^5.0.0, acorn@^5.0.3: - version "5.1.1" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.1.1.tgz#53fe161111f912ab999ee887a90a0bc52822fd75" + version "5.1.2" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.1.2.tgz#911cb53e036807cf0fa778dc5d370fbd864246d7" ajv-keywords@^2.0.0: version "2.1.0" @@ -52,9 +52,9 @@ ajv@^4.9.1: co "^4.6.0" json-stable-stringify "^1.0.1" -ajv@^5.1.5: - version "5.2.2" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-5.2.2.tgz#47c68d69e86f5d953103b0074a9430dc63da5e39" +ajv@^5.1.0, ajv@^5.1.5: + version "5.2.3" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-5.2.3.tgz#c06f598778c44c6b161abafe3466b81ad1814ed2" dependencies: co "^4.6.0" fast-deep-equal "^1.0.0" @@ -111,8 +111,8 @@ anymatch@^1.3.0: normalize-path "^2.0.0" aproba@^1.0.3: - version "1.1.2" - resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.1.2.tgz#45c6629094de4e96f693ef7eab74ae079c240fc1" + version "1.2.0" + resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a" archy@^1.0.0: version "1.0.0" @@ -240,7 +240,11 @@ aws-sign2@~0.6.0: version "0.6.0" resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.6.0.tgz#14342dd38dbcc94d0e5b87d763cd63612c0e794f" -aws4@^1.2.1: +aws-sign2@~0.7.0: + version "0.7.0" + resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8" + +aws4@^1.2.1, aws4@^1.6.0: version "1.6.0" resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.6.0.tgz#83ef5ca860b2b32e4a0deedee8c771b9db57471e" @@ -391,8 +395,8 @@ babel-helpers@^6.24.1: babel-template "^6.24.1" babel-loader@^7.1.1: - version "7.1.1" - resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-7.1.1.tgz#b87134c8b12e3e4c2a94e0546085bc680a2b8488" + version "7.1.2" + resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-7.1.2.tgz#f6cbe122710f1aa2af4d881c6d5b54358ca24126" dependencies: find-cache-dir "^1.0.0" loader-utils "^1.0.2" @@ -739,8 +743,8 @@ bib2json@^0.0.1: resolved "https://registry.yarnpkg.com/bib2json/-/bib2json-0.0.1.tgz#c33bcf6f35edb4647fd75ff76f25bd7999fc3f31" big.js@^3.1.3: - version "3.1.3" - resolved "https://registry.yarnpkg.com/big.js/-/big.js-3.1.3.tgz#4cada2193652eb3ca9ec8e55c9015669c9806978" + version "3.2.0" + resolved "https://registry.yarnpkg.com/big.js/-/big.js-3.2.0.tgz#a5fc298b81b9e0dca2e458824784b65c52ba588e" bin-pack@~1.0.1: version "1.0.2" @@ -766,9 +770,21 @@ boom@2.x.x: dependencies: hoek "2.x.x" +boom@4.x.x: + version "4.3.1" + resolved "https://registry.yarnpkg.com/boom/-/boom-4.3.1.tgz#4f8a3005cb4a7e3889f749030fd25b96e01d2e31" + dependencies: + hoek "4.x.x" + +boom@5.x.x: + version "5.2.0" + resolved "https://registry.yarnpkg.com/boom/-/boom-5.2.0.tgz#5dd9da6ee3a5f302077436290cb717d3f4a54e02" + dependencies: + hoek "4.x.x" + bower@~1.8.0: - version "1.8.0" - resolved "https://registry.yarnpkg.com/bower/-/bower-1.8.0.tgz#55dbebef0ad9155382d9e9d3e497c1372345b44a" + version "1.8.2" + resolved "https://registry.yarnpkg.com/bower/-/bower-1.8.2.tgz#adf53529c8d4af02ef24fb8d5341c1419d33e2f7" brace-expansion@^1.0.0, brace-expansion@^1.1.7: version "1.1.8" @@ -800,14 +816,15 @@ browserify-aes@0.4.0: inherits "^2.0.1" browserify-aes@^1.0.0, browserify-aes@^1.0.4: - version "1.0.6" - resolved "https://registry.yarnpkg.com/browserify-aes/-/browserify-aes-1.0.6.tgz#5e7725dbdef1fd5930d4ebab48567ce451c48a0a" + version "1.0.8" + resolved "https://registry.yarnpkg.com/browserify-aes/-/browserify-aes-1.0.8.tgz#c8fa3b1b7585bb7ba77c5560b60996ddec6d5309" dependencies: - buffer-xor "^1.0.2" + buffer-xor "^1.0.3" cipher-base "^1.0.0" create-hash "^1.1.0" - evp_bytestokey "^1.0.0" + evp_bytestokey "^1.0.3" inherits "^2.0.1" + safe-buffer "^5.0.1" browserify-cipher@^1.0.0: version "1.0.0" @@ -851,13 +868,13 @@ browserify-zlib@^0.1.4: pako "~0.2.0" browserslist@^2.1.2: - version "2.3.3" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-2.3.3.tgz#2b0cabc4d28489f682598605858a0782f14b154c" + version "2.5.1" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-2.5.1.tgz#68e4bc536bbcc6086d62843a2ffccea8396821c6" dependencies: - caniuse-lite "^1.0.30000715" - electron-to-chromium "^1.3.18" + caniuse-lite "^1.0.30000744" + electron-to-chromium "^1.3.24" -buffer-xor@^1.0.2: +buffer-xor@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/buffer-xor/-/buffer-xor-1.0.3.tgz#26e61ed1422fb70dd42e6e36729ed51d855fe8d9" @@ -896,9 +913,9 @@ camelcase@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-4.1.0.tgz#d545635be1e33c542649c69173e5de6acfae34dd" -caniuse-lite@^1.0.30000715: - version "1.0.30000715" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30000715.tgz#c327f5e6d907ebcec62cde598c3bf0dd793fb9a0" +caniuse-lite@^1.0.30000744: + version "1.0.30000746" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30000746.tgz#c64f95a3925cfd30207a308ed76c1ae96ea09ea0" caseless@~0.12.0: version "0.12.0" @@ -1042,15 +1059,7 @@ concat-map@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" -concat-stream@^1.4.1, concat-stream@~1.4.6: - version "1.4.10" - resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.4.10.tgz#acc3bbf5602cb8cc980c6ac840fa7d8603e3ef36" - dependencies: - inherits "~2.0.1" - readable-stream "~1.1.9" - typedarray "~0.0.5" - -concat-stream@~1.6.0: +concat-stream@^1.4.1, concat-stream@~1.6.0: version "1.6.0" resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.0.tgz#0aac662fd52be78964d5532f694784e70110acf7" dependencies: @@ -1058,6 +1067,14 @@ concat-stream@~1.6.0: readable-stream "^2.2.2" typedarray "^0.0.6" +concat-stream@~1.4.6: + version "1.4.10" + resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.4.10.tgz#acc3bbf5602cb8cc980c6ac840fa7d8603e3ef36" + dependencies: + inherits "~2.0.1" + readable-stream "~1.1.9" + typedarray "~0.0.5" + concurrently@^3.4.0: version "3.5.0" resolved "https://registry.yarnpkg.com/concurrently/-/concurrently-3.5.0.tgz#8cf1b7707a6916a78a4ff5b77bb04dec54b379b2" @@ -1096,8 +1113,8 @@ convert-source-map@1.X, convert-source-map@^1.5.0: resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.5.0.tgz#9acd70851c6d5dfdd93d9282e5edf94a03ff46b5" core-js@^2.4.0, core-js@^2.5.0: - version "2.5.0" - resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.5.0.tgz#569c050918be6486b3837552028ae0466b717086" + version "2.5.1" + resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.5.1.tgz#ae6874dc66937789b80754ff5428df66819ca50b" core-util-is@1.0.2, core-util-is@~1.0.0: version "1.0.2" @@ -1110,7 +1127,7 @@ create-ecdh@^4.0.0: bn.js "^4.1.0" elliptic "^6.0.0" -create-hash@^1.1.0, create-hash@^1.1.1, create-hash@^1.1.2: +create-hash@^1.1.0, create-hash@^1.1.2: version "1.1.3" resolved "https://registry.yarnpkg.com/create-hash/-/create-hash-1.1.3.tgz#606042ac8b9262750f483caddab0f5819172d8fd" dependencies: @@ -1144,6 +1161,12 @@ cryptiles@2.x.x: dependencies: boom "2.x.x" +cryptiles@3.x.x: + version "3.1.2" + resolved "https://registry.yarnpkg.com/cryptiles/-/cryptiles-3.1.2.tgz#a89fbb220f5ce25ec56e8c4aa8a4fd7b5b0d29fe" + dependencies: + boom "5.x.x" + crypto-browserify@3.3.0: version "3.3.0" resolved "https://registry.yarnpkg.com/crypto-browserify/-/crypto-browserify-3.3.0.tgz#b9fc75bb4a0ed61dcf1cd5dae96eb30c9c3e506c" @@ -1226,8 +1249,8 @@ data-uri-to-buffer@0.0.3: resolved "https://registry.yarnpkg.com/data-uri-to-buffer/-/data-uri-to-buffer-0.0.3.tgz#18ae979a6a0ca994b0625853916d2662bbae0b1a" date-fns@^1.23.0: - version "1.28.5" - resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-1.28.5.tgz#257cfc45d322df45ef5658665967ee841cd73faf" + version "1.29.0" + resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-1.29.0.tgz#12e609cdcb935127311d04d33334e2960a2a54e6" date-now@^0.1.4: version "0.1.4" @@ -1238,29 +1261,35 @@ dateformat@1.0.2-1.2.3: resolved "https://registry.yarnpkg.com/dateformat/-/dateformat-1.0.2-1.2.3.tgz#b0220c02de98617433b72851cf47de3df2cdbee9" dateformat@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/dateformat/-/dateformat-2.0.0.tgz#2743e3abb5c3fc2462e527dca445e04e9f4dee17" + version "2.2.0" + resolved "https://registry.yarnpkg.com/dateformat/-/dateformat-2.2.0.tgz#4065e2013cf9fb916ddfd82efb506ad4c6769062" -debug-fabulous@0.1.X: - version "0.1.1" - resolved "https://registry.yarnpkg.com/debug-fabulous/-/debug-fabulous-0.1.1.tgz#1b970878c9fa4fbd1c88306eab323c830c58f1d6" +debug-fabulous@>=0.1.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/debug-fabulous/-/debug-fabulous-0.2.1.tgz#57e1164ba0e9ad6d9a65f20075ff3c2bd6bde0dc" dependencies: - debug "2.3.0" - memoizee "^0.4.5" - object-assign "4.1.0" + debug "3.X" + memoizee "0.4.X" + object-assign "4.X" -debug@2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/debug/-/debug-2.3.0.tgz#3912dc55d7167fc3af17d2b85c13f93deaedaa43" - dependencies: - ms "0.7.2" - -debug@2.6.8, debug@^2.2.0, debug@^2.6.8: +debug@2.6.8: version "2.6.8" resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.8.tgz#e731531ca2ede27d188222427da17821d68ff4fc" dependencies: ms "2.0.0" +debug@3.X: + version "3.1.0" + resolved "https://registry.yarnpkg.com/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261" + dependencies: + ms "2.0.0" + +debug@^2.2.0, debug@^2.6.8: + version "2.6.9" + resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" + dependencies: + ms "2.0.0" + debug@~0.7.0: version "0.7.4" resolved "https://registry.yarnpkg.com/debug/-/debug-0.7.4.tgz#06e1ea8082c2cb14e39806e22e2f6f757f92af39" @@ -1381,9 +1410,9 @@ ecc-jsbn@~0.1.1: dependencies: jsbn "~0.1.0" -electron-to-chromium@^1.3.18: - version "1.3.18" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.18.tgz#3dcc99da3e6b665f6abbc71c28ad51a2cd731a9c" +electron-to-chromium@^1.3.24: + version "1.3.25" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.25.tgz#453b21009836d0997d86035601ff6cae4791c460" elliptic@^6.0.0: version "6.4.0" @@ -1444,14 +1473,14 @@ error-ex@^1.2.0: dependencies: is-arrayish "^0.2.1" -es5-ext@^0.10.13, es5-ext@^0.10.14, es5-ext@^0.10.9, es5-ext@~0.10.14, es5-ext@~0.10.2: - version "0.10.27" - resolved "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.27.tgz#bf926b058c62b1cb5de1a887930673b6aa6d9a66" +es5-ext@^0.10.14, es5-ext@^0.10.30, es5-ext@^0.10.9, es5-ext@~0.10.14, es5-ext@~0.10.2: + version "0.10.31" + resolved "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.31.tgz#7bb938c95a7f1b9f728092dc09c41edcc398eefe" dependencies: - es6-iterator "2" - es6-symbol "~3.1" + es6-iterator "~2.0.1" + es6-symbol "~3.1.1" -es6-iterator@2, es6-iterator@^2.0.1, es6-iterator@~2.0.1: +es6-iterator@^2.0.1, es6-iterator@~2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/es6-iterator/-/es6-iterator-2.0.1.tgz#8e319c9f0453bf575d374940a655920e59ca5512" dependencies: @@ -1480,14 +1509,14 @@ es6-set@~0.1.5: es6-symbol "3.1.1" event-emitter "~0.3.5" -es6-symbol@3.1.1, es6-symbol@^3.1, es6-symbol@^3.1.1, es6-symbol@~3.1, es6-symbol@~3.1.1: +es6-symbol@3.1.1, es6-symbol@^3.1, es6-symbol@^3.1.1, es6-symbol@~3.1.1: version "3.1.1" resolved "https://registry.yarnpkg.com/es6-symbol/-/es6-symbol-3.1.1.tgz#bf00ef4fdab6ba1b46ecb7b629b4c7ed5715cc77" dependencies: d "1" es5-ext "~0.10.14" -es6-weak-map@^2.0.1: +es6-weak-map@^2.0.1, es6-weak-map@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/es6-weak-map/-/es6-weak-map-2.0.2.tgz#5e3ab32251ffd1538a1f8e5ffa1357772f92d96f" dependencies: @@ -1528,7 +1557,11 @@ escope@^3.6.0: esrecurse "^4.1.0" estraverse "^4.1.1" -esprima@^1.0.3, "esprima@~ 1.0.2", esprima@~1.0.2: +esprima@^1.0.3: + version "1.2.5" + resolved "https://registry.yarnpkg.com/esprima/-/esprima-1.2.5.tgz#0993502feaf668138325756f30f9a51feeec11e9" + +"esprima@~ 1.0.2", esprima@~1.0.2: version "1.0.4" resolved "https://registry.yarnpkg.com/esprima/-/esprima-1.0.4.tgz#9f557e08fc3b4d26ece9dd34f8fbf476b62585ad" @@ -1563,7 +1596,7 @@ esutils@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/esutils/-/esutils-1.0.0.tgz#8151d358e20c8acc7fb745e7472c0025fe496570" -event-emitter@^0.3.4, event-emitter@~0.3.5: +event-emitter@^0.3.5, event-emitter@~0.3.5: version "0.3.5" resolved "https://registry.yarnpkg.com/event-emitter/-/event-emitter-0.3.5.tgz#df8c69eef1647923c7157b9ce83840610b02cc39" dependencies: @@ -1578,11 +1611,12 @@ events@^1.0.0: version "1.1.1" resolved "https://registry.yarnpkg.com/events/-/events-1.1.1.tgz#9ebdb7635ad099c70dcc4c2a1f5004288e8bd924" -evp_bytestokey@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/evp_bytestokey/-/evp_bytestokey-1.0.0.tgz#497b66ad9fef65cd7c08a6180824ba1476b66e53" +evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz#7fcbdb198dc71959432efe13842684e0525acb02" dependencies: - create-hash "^1.1.1" + md5.js "^1.3.4" + safe-buffer "^5.1.1" execa@^0.7.0: version "0.7.0" @@ -1628,7 +1662,7 @@ expose-loader@^0.7.3: version "0.7.3" resolved "https://registry.yarnpkg.com/expose-loader/-/expose-loader-0.7.3.tgz#35fbd3659789e4faa81f59de8b7e9fc39e466d51" -extend@^3.0.0, extend@~3.0.0: +extend@^3.0.0, extend@~3.0.0, extend@~3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.1.tgz#a755ea7bc1adfcc5a31ce7e762dbaadc5e636444" @@ -1784,6 +1818,14 @@ form-data@~2.1.1: combined-stream "^1.0.5" mime-types "^2.1.12" +form-data@~2.3.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.1.tgz#6fb94fbd71885306d73d15cc497fe4cc4ecd44bf" + dependencies: + asynckit "^0.4.0" + combined-stream "^1.0.5" + mime-types "^2.1.12" + fs-exists-sync@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/fs-exists-sync/-/fs-exists-sync-0.1.0.tgz#982d6893af918e72d08dec9e8673ff2b5a8d6add" @@ -1817,8 +1859,8 @@ fstream@^1.0.0, fstream@^1.0.10, fstream@^1.0.2: rimraf "2" function-bind@^1.0.2: - version "1.1.0" - resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.0.tgz#16176714c801798e4e8f2cf7f7529467bb4a5771" + version "1.1.1" + resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" gauge@~2.7.3: version "2.7.4" @@ -1926,7 +1968,7 @@ glob2base@^0.0.12: dependencies: find-index "^0.1.1" -glob@7.1.1, glob@^7.0.3, glob@^7.0.5, glob@^7.1.1: +glob@7.1.1: version "7.1.1" resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.1.tgz#805211df04faaf1c63a3600306cdf5ade50b2ec8" dependencies: @@ -1946,6 +1988,17 @@ glob@^4.3.1: minimatch "^2.0.1" once "^1.3.0" +glob@^7.0.3, glob@^7.0.5, glob@^7.1.1: + version "7.1.2" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.2.tgz#c19c9df9a028702d678612384a6552404c636d15" + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.0.4" + once "^1.3.0" + path-is-absolute "^1.0.0" + glob@~3.1.21: version "3.1.21" resolved "https://registry.yarnpkg.com/glob/-/glob-3.1.21.tgz#d29e0a055dea5138f4d07ed40e8982e83c2066cd" @@ -2166,15 +2219,15 @@ gulp-cached@^1.1.1: through2 "^2.0.1" gulp-sourcemaps@^2.5.1: - version "2.6.0" - resolved "https://registry.yarnpkg.com/gulp-sourcemaps/-/gulp-sourcemaps-2.6.0.tgz#7ccce899a8a3bfca1593a3348d0fbf41dd3f51e5" + version "2.6.1" + resolved "https://registry.yarnpkg.com/gulp-sourcemaps/-/gulp-sourcemaps-2.6.1.tgz#833a4e28f0b8f4661075032cd782417f7cd8fb0b" dependencies: "@gulp-sourcemaps/identity-map" "1.X" "@gulp-sourcemaps/map-sources" "1.X" acorn "4.X" convert-source-map "1.X" css "2.X" - debug-fabulous "0.1.X" + debug-fabulous ">=0.1.1" detect-newline "2.X" graceful-fs "4.X" source-map "0.X" @@ -2280,6 +2333,10 @@ har-schema@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-1.0.5.tgz#d263135f43307c02c602afc8fe95970c0151369e" +har-schema@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92" + har-validator@~4.2.1: version "4.2.1" resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-4.2.1.tgz#33481d0f1bbff600dd203d75812a6a5fba002e2a" @@ -2287,6 +2344,13 @@ har-validator@~4.2.1: ajv "^4.9.1" har-schema "^1.0.5" +har-validator@~5.0.3: + version "5.0.3" + resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-5.0.3.tgz#ba402c266194f15956ef15e0fcf242993f6a7dfd" + dependencies: + ajv "^5.1.0" + har-schema "^2.0.0" + has-ansi@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-0.1.0.tgz#84f265aae8c0e6a88a12d7022894b7568894c62e" @@ -2329,6 +2393,13 @@ hash-base@^2.0.0: dependencies: inherits "^2.0.1" +hash-base@^3.0.0: + version "3.0.4" + resolved "https://registry.yarnpkg.com/hash-base/-/hash-base-3.0.4.tgz#5fc8686847ecd73499403319a6b0a3f3f6ae4918" + dependencies: + inherits "^2.0.1" + safe-buffer "^5.0.1" + hash.js@^1.0.0, hash.js@^1.0.3: version "1.1.3" resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.3.tgz#340dedbe6290187151c1ea1d777a3448935df846" @@ -2336,7 +2407,7 @@ hash.js@^1.0.0, hash.js@^1.0.3: inherits "^2.0.3" minimalistic-assert "^1.0.0" -hawk@~3.1.3: +hawk@3.1.3, hawk@~3.1.3: version "3.1.3" resolved "https://registry.yarnpkg.com/hawk/-/hawk-3.1.3.tgz#078444bd7c1640b0fe540d2c9b73d59678e8e1c4" dependencies: @@ -2345,6 +2416,19 @@ hawk@~3.1.3: hoek "2.x.x" sntp "1.x.x" +hawk@~6.0.2: + version "6.0.2" + resolved "https://registry.yarnpkg.com/hawk/-/hawk-6.0.2.tgz#af4d914eb065f9b5ce4d9d11c1cb2126eecc3038" + dependencies: + boom "4.x.x" + cryptiles "3.x.x" + hoek "4.x.x" + sntp "2.x.x" + +he@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/he/-/he-1.1.1.tgz#93410fd21b009735151f8868c2f271f3427e23fd" + hmac-drbg@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1" @@ -2357,6 +2441,10 @@ hoek@2.x.x: version "2.16.3" resolved "https://registry.yarnpkg.com/hoek/-/hoek-2.16.3.tgz#20bb7403d3cea398e91dc4710a8ff1b8274a25ed" +hoek@4.x.x: + version "4.2.0" + resolved "https://registry.yarnpkg.com/hoek/-/hoek-4.2.0.tgz#72d9d0754f7fe25ca2d01ad8f8f9a9449a89526d" + home-or-tmp@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/home-or-tmp/-/home-or-tmp-2.0.0.tgz#e36c3f2d2cae7d746a857e38d18d5f32a7882db8" @@ -2396,6 +2484,14 @@ http-signature@~1.1.0: jsprim "^1.2.2" sshpk "^1.7.0" +http-signature@~1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1" + dependencies: + assert-plus "^1.0.0" + jsprim "^1.2.2" + sshpk "^1.7.0" + https-browserify@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-0.0.1.tgz#3f91365cabe60b77ed0ebba24b454e3e09d95a82" @@ -2450,8 +2546,8 @@ interpret@^0.6.4: resolved "https://registry.yarnpkg.com/interpret/-/interpret-0.6.6.tgz#fecd7a18e7ce5ca6abfb953e1f86213a49f1625b" interpret@^1.0.0: - version "1.0.3" - resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.0.3.tgz#cbc35c62eeee73f19ab7b10a801511401afc0f90" + version "1.0.4" + resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.0.4.tgz#820cdd588b868ffb191a809506d6c9c8f212b1b0" invariant@^2.2.2: version "2.2.2" @@ -2630,7 +2726,7 @@ isexe@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" -isobject@^2.0.0, isobject@^2.1.0: +isobject@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89" dependencies: @@ -3054,24 +3150,31 @@ maxmin@^1.0.0: gzip-size "^1.0.0" pretty-bytes "^1.0.0" +md5.js@^1.3.4: + version "1.3.4" + resolved "https://registry.yarnpkg.com/md5.js/-/md5.js-1.3.4.tgz#e9bdbde94a20a5ac18b04340fc5764d5b09d901d" + dependencies: + hash-base "^3.0.0" + inherits "^2.0.1" + mem@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/mem/-/mem-1.1.0.tgz#5edd52b485ca1d900fe64895505399a0dfa45f76" dependencies: mimic-fn "^1.0.0" -memoizee@^0.4.5: - version "0.4.5" - resolved "https://registry.yarnpkg.com/memoizee/-/memoizee-0.4.5.tgz#1bc3ea1e4be056dd475d521979d7be3d5e5b21c8" +memoizee@0.4.X: + version "0.4.11" + resolved "https://registry.yarnpkg.com/memoizee/-/memoizee-0.4.11.tgz#bde9817663c9e40fdb2a4ea1c367296087ae8c8f" dependencies: d "1" - es5-ext "^0.10.13" - es6-weak-map "^2.0.1" - event-emitter "^0.3.4" + es5-ext "^0.10.30" + es6-weak-map "^2.0.2" + event-emitter "^0.3.5" is-promise "^2.1" lru-queue "0.1" next-tick "1" - timers-ext "0.1" + timers-ext "^0.1.2" memory-fs@^0.2.0: version "0.2.0" @@ -3125,25 +3228,25 @@ micromatch@^2.1.5, micromatch@^2.3.7: regex-cache "^0.4.2" miller-rabin@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/miller-rabin/-/miller-rabin-4.0.0.tgz#4a62fb1d42933c05583982f4c716f6fb9e6c6d3d" + version "4.0.1" + resolved "https://registry.yarnpkg.com/miller-rabin/-/miller-rabin-4.0.1.tgz#f080351c865b0dc562a8462966daa53543c78a4d" dependencies: bn.js "^4.0.0" brorand "^1.0.1" -mime-db@~1.29.0: - version "1.29.0" - resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.29.0.tgz#48d26d235589651704ac5916ca06001914266878" +mime-db@~1.30.0: + version "1.30.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.30.0.tgz#74c643da2dd9d6a45399963465b26d5ca7d71f01" -mime-types@^2.0.1, mime-types@^2.1.12, mime-types@~2.1.7: - version "2.1.16" - resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.16.tgz#2b858a52e5ecd516db897ac2be87487830698e23" +mime-types@^2.0.1, mime-types@^2.1.12, mime-types@~2.1.17, mime-types@~2.1.7: + version "2.1.17" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.17.tgz#09d7a393f03e995a79f8af857b70a9e0ab16557a" dependencies: - mime-db "~1.29.0" + mime-db "~1.30.0" mime@^1.2.11: - version "1.3.6" - resolved "https://registry.yarnpkg.com/mime/-/mime-1.3.6.tgz#591d84d3653a6b0b4a3b9df8de5aa8108e72e5e0" + version "1.4.1" + resolved "https://registry.yarnpkg.com/mime/-/mime-1.4.1.tgz#121f9ebc49e3766f311a76e1fa1c8003c4b03aa6" mimic-fn@^1.0.0: version "1.1.0" @@ -3183,7 +3286,7 @@ minimatch@~0.2.11, minimatch@~0.2.12: lru-cache "2" sigmund "~1.0.0" -minimist@0.0.8, minimist@~0.0.1: +minimist@0.0.8: version "0.0.8" resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" @@ -3191,6 +3294,10 @@ minimist@^1.1.0, minimist@^1.1.3, minimist@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284" +minimist@~0.0.1: + version "0.0.10" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.10.tgz#de3f98543dbf96082be48ad1a0c7cda836301dcf" + mkdirp@0.5.1, "mkdirp@>=0.5 0", mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@~0.5.0: version "0.5.1" resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903" @@ -3198,8 +3305,8 @@ mkdirp@0.5.1, "mkdirp@>=0.5 0", mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@~0.5.0: minimist "0.0.8" mocha@^3.2.0: - version "3.5.0" - resolved "https://registry.yarnpkg.com/mocha/-/mocha-3.5.0.tgz#1328567d2717f997030f8006234bce9b8cd72465" + version "3.5.3" + resolved "https://registry.yarnpkg.com/mocha/-/mocha-3.5.3.tgz#1e0480fe36d2da5858d1eb6acc38418b26eaa20d" dependencies: browser-stdout "1.3.0" commander "2.9.0" @@ -3208,15 +3315,12 @@ mocha@^3.2.0: escape-string-regexp "1.0.5" glob "7.1.1" growl "1.9.2" + he "1.1.1" json3 "3.3.2" lodash.create "3.1.1" mkdirp "0.5.1" supports-color "3.1.2" -ms@0.7.2: - version "0.7.2" - resolved "https://registry.yarnpkg.com/ms/-/ms-0.7.2.tgz#ae25cf2512b3885a1d95d7f037868d8431124765" - ms@2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" @@ -3228,8 +3332,8 @@ multipipe@^0.1.2: duplexer2 "0.0.2" nan@^2.3.0: - version "2.6.2" - resolved "https://registry.yarnpkg.com/nan/-/nan-2.6.2.tgz#e4ff34e6c95fdfb5aecc08de6596f43605a7db45" + version "2.7.0" + resolved "https://registry.yarnpkg.com/nan/-/nan-2.7.0.tgz#d95bf721ec877e08db276ed3fc6eb78f9083ad46" natives@^1.1.0: version "1.1.0" @@ -3320,14 +3424,15 @@ node-libs-browser@^2.0.0: vm-browserify "0.0.4" node-pre-gyp@^0.6.36: - version "0.6.36" - resolved "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.6.36.tgz#db604112cb74e0d477554e9b505b17abddfab786" + version "0.6.38" + resolved "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.6.38.tgz#e92a20f83416415bb4086f6d1fb78b3da73d113d" dependencies: + hawk "3.1.3" mkdirp "^0.5.1" nopt "^4.0.1" npmlog "^4.0.2" rc "^1.1.7" - request "^2.81.0" + request "2.81.0" rimraf "^2.6.1" semver "^5.3.0" tar "^2.2.1" @@ -3392,7 +3497,7 @@ number-is-nan@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" -oauth-sign@~0.8.1: +oauth-sign@~0.8.1, oauth-sign@~0.8.2: version "0.8.2" resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.8.2.tgz#46a6ab7f0aead8deae9ec0565780b7d4efeb9d43" @@ -3400,18 +3505,14 @@ obj-extend@~0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/obj-extend/-/obj-extend-0.1.0.tgz#bb448a4775fb95eb34a781f908bbac2df23dbb5b" -object-assign@4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.0.tgz#7a3b3d0e98063d43f4c03f2e8ae6cd51a86883a0" +object-assign@4.X, object-assign@^4.0.1, object-assign@^4.1.0: + version "4.1.1" + resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" object-assign@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-3.0.0.tgz#9bedd5ca0897949bca47e7ff408062d549f587f2" -object-assign@^4.0.1, object-assign@^4.1.0: - version "4.1.1" - resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" - object-inspect@~0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-0.4.0.tgz#f5157c116c1455b243b06ee97703392c5ad89fec" @@ -3441,10 +3542,10 @@ object.omit@^2.0.0: is-extendable "^0.1.1" object.pick@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/object.pick/-/object.pick-1.2.0.tgz#b5392bee9782da6d9fb7d6afaf539779f1234c2b" + version "1.3.0" + resolved "https://registry.yarnpkg.com/object.pick/-/object.pick-1.3.0.tgz#87a10ac4c1694bd2e1cbf53591a66141fb5dd747" dependencies: - isobject "^2.1.0" + isobject "^3.0.1" omggif@^1.0.5: version "1.0.8" @@ -3529,8 +3630,8 @@ p-locate@^2.0.0: p-limit "^1.1.0" p-map@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/p-map/-/p-map-1.1.1.tgz#05f5e4ae97a068371bc2a5cc86bfbdbc19c4ae7a" + version "1.2.0" + resolved "https://registry.yarnpkg.com/p-map/-/p-map-1.2.0.tgz#e4e94f311eabbc8633a1e79908165fca26241b6b" pako@~0.2.0: version "0.2.9" @@ -3642,8 +3743,8 @@ pbkdf2-compat@2.0.1: resolved "https://registry.yarnpkg.com/pbkdf2-compat/-/pbkdf2-compat-2.0.1.tgz#b6e0c8fa99494d94e0511575802a59a5c142f288" pbkdf2@^3.0.3: - version "3.0.13" - resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.0.13.tgz#c37d295531e786b1da3e3eadc840426accb0ae25" + version "3.0.14" + resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.0.14.tgz#a35e13c64799b06ce15320f459c230e68e73bade" dependencies: create-hash "^1.1.2" create-hmac "^1.1.4" @@ -3655,6 +3756,10 @@ performance-now@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-0.2.0.tgz#33ef30c5c77d4ea21c5a53869d91b56d8f2555e5" +performance-now@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" + pify@^2.0.0, pify@^2.3.0: version "2.3.0" resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" @@ -3766,6 +3871,10 @@ qs@~6.4.0: version "6.4.0" resolved "https://registry.yarnpkg.com/qs/-/qs-6.4.0.tgz#13e26d28ad6b0ffaa91312cd3bf708ed351e7233" +qs@~6.5.1: + version "6.5.1" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.1.tgz#349cdf6eef89ec45c12d7d5eb3fc0c870343a6d8" + querystring-es3@^0.2.0: version "0.2.1" resolved "https://registry.yarnpkg.com/querystring-es3/-/querystring-es3-0.2.1.tgz#9ec61f79049875707d69414596fd907a4d711e73" @@ -3795,8 +3904,8 @@ randombytes@^2.0.0, randombytes@^2.0.1: safe-buffer "^5.1.0" raven-js@^3.17.0: - version "3.17.0" - resolved "https://registry.yarnpkg.com/raven-js/-/raven-js-3.17.0.tgz#779457ac7910512c3c2cc9bb6d0a9eeb59a969ec" + version "3.18.1" + resolved "https://registry.yarnpkg.com/raven-js/-/raven-js-3.18.1.tgz#746339c08fca75c3f402d7e6b633687c3ffc6ee8" rc@^1.1.7: version "1.2.1" @@ -3837,7 +3946,7 @@ read-pkg@^2.0.0: normalize-package-data "^2.3.2" path-type "^2.0.0" -readable-stream@1.1, readable-stream@~1.1.9: +readable-stream@1.1: version "1.1.13" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.1.13.tgz#f6eef764f514c89e2b9e23146a75ba106756d23e" dependencies: @@ -3867,6 +3976,15 @@ readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.5, readable string_decoder "~1.0.3" util-deprecate "~1.0.1" +readable-stream@~1.1.9: + version "1.1.14" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.1.14.tgz#7cf4c54ef648e3813084c636dd2079e166c081d9" + dependencies: + core-util-is "~1.0.0" + inherits "~2.0.1" + isarray "0.0.1" + string_decoder "~0.10.x" + readdirp@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-2.1.0.tgz#4ed0ad060df3073300c48440373f72d1cc642d78" @@ -3890,27 +4008,26 @@ redent@^1.0.0: strip-indent "^1.0.1" regenerate@^1.2.1: - version "1.3.2" - resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.3.2.tgz#d1941c67bad437e1be76433add5b385f95b19260" + version "1.3.3" + resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.3.3.tgz#0c336d3980553d755c39b586ae3b20aa49c82b7f" regenerator-runtime@^0.11.0: version "0.11.0" resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.11.0.tgz#7e54fe5b5ccd5d6624ea6255c3473be090b802e1" regenerator-transform@^0.10.0: - version "0.10.0" - resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.10.0.tgz#f9ab3eac9cc2de38431d996a6a8abf1c50f2e459" + version "0.10.1" + resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.10.1.tgz#1e4996837231da8b7f3cf4114d71b5691a0680dd" dependencies: babel-runtime "^6.18.0" babel-types "^6.19.0" private "^0.1.6" regex-cache@^0.4.2: - version "0.4.3" - resolved "https://registry.yarnpkg.com/regex-cache/-/regex-cache-0.4.3.tgz#9b1a6c35d4d0dfcef5711ae651e8e9d3d7114145" + version "0.4.4" + resolved "https://registry.yarnpkg.com/regex-cache/-/regex-cache-0.4.4.tgz#75bdc58a2a1496cec48a12835bc54c8d562336dd" dependencies: is-equal-shallow "^0.1.3" - is-primitive "^2.0.0" regexpu-core@^2.0.0: version "2.0.0" @@ -3952,7 +4069,7 @@ replace-ext@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/replace-ext/-/replace-ext-0.0.1.tgz#29bbd92078a739f0bcce2b4ee41e837953522924" -request@^2.44.0, request@^2.72.0, request@^2.81.0: +request@2.81.0: version "2.81.0" resolved "https://registry.yarnpkg.com/request/-/request-2.81.0.tgz#c6928946a0e06c5f8d6f8a9333469ffda46298a0" dependencies: @@ -3979,6 +4096,33 @@ request@^2.44.0, request@^2.72.0, request@^2.81.0: tunnel-agent "^0.6.0" uuid "^3.0.0" +request@^2.44.0, request@^2.72.0: + version "2.83.0" + resolved "https://registry.yarnpkg.com/request/-/request-2.83.0.tgz#ca0b65da02ed62935887808e6f510381034e3356" + dependencies: + aws-sign2 "~0.7.0" + aws4 "^1.6.0" + caseless "~0.12.0" + combined-stream "~1.0.5" + extend "~3.0.1" + forever-agent "~0.6.1" + form-data "~2.3.1" + har-validator "~5.0.3" + hawk "~6.0.2" + http-signature "~1.2.0" + is-typedarray "~1.0.0" + isstream "~0.1.2" + json-stringify-safe "~5.0.1" + mime-types "~2.1.17" + oauth-sign "~0.8.2" + performance-now "^2.1.0" + qs "~6.5.1" + safe-buffer "^5.1.1" + stringstream "~0.0.5" + tough-cookie "~2.3.3" + tunnel-agent "^0.6.0" + uuid "^3.1.0" + require-directory@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" @@ -4019,8 +4163,8 @@ right-align@^0.1.1: align-text "^0.1.1" rimraf@2, rimraf@^2.2.8, rimraf@^2.5.1, rimraf@^2.6.1: - version "2.6.1" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.1.tgz#c2338ec643df7a1b7fe5c54fa86f57428a55f33d" + version "2.6.2" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.2.tgz#2ed8150d24a16ea8651e6d6ef0f47c4158ce7a36" dependencies: glob "^7.0.5" @@ -4043,7 +4187,7 @@ rx@2.3.24: version "2.3.24" resolved "https://registry.yarnpkg.com/rx/-/rx-2.3.24.tgz#14f950a4217d7e35daa71bbcbe58eff68ea4b2b7" -safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@~5.1.0, safe-buffer@~5.1.1: +safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@~5.1.0, safe-buffer@~5.1.1: version "5.1.1" resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.1.tgz#893312af69b2123def71f57889001671eeb2c853" @@ -4086,10 +4230,11 @@ sha.js@2.2.6: resolved "https://registry.yarnpkg.com/sha.js/-/sha.js-2.2.6.tgz#17ddeddc5f722fb66501658895461977867315ba" sha.js@^2.4.0, sha.js@^2.4.8: - version "2.4.8" - resolved "https://registry.yarnpkg.com/sha.js/-/sha.js-2.4.8.tgz#37068c2c476b6baf402d14a49c67f597921f634f" + version "2.4.9" + resolved "https://registry.yarnpkg.com/sha.js/-/sha.js-2.4.9.tgz#98f64880474b74f4a38b8da9d3c0f2d104633e7d" dependencies: inherits "^2.0.1" + safe-buffer "^5.0.1" shallow-copy@~0.0.1: version "0.0.1" @@ -4165,6 +4310,12 @@ sntp@1.x.x: dependencies: hoek "2.x.x" +sntp@2.x.x: + version "2.0.2" + resolved "https://registry.yarnpkg.com/sntp/-/sntp-2.0.2.tgz#5064110f0af85f7cfdb7d6b67a40028ce52b4b2b" + dependencies: + hoek "4.x.x" + source-list-map@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-2.0.0.tgz#aaa47403f7b245a92fbc97ea08f250d6087ed085" @@ -4183,8 +4334,8 @@ source-map-resolve@^0.3.0: urix "~0.1.0" source-map-support@^0.4.15: - version "0.4.16" - resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.4.16.tgz#16fecf98212467d017d586a2af68d628b9421cd8" + version "0.4.18" + resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.4.18.tgz#0286a6de8be42641338594e97ccea75f0a2c585f" dependencies: source-map "^0.5.6" @@ -4198,9 +4349,9 @@ source-map@0.1.34: dependencies: amdefine ">=0.0.4" -source-map@0.X, "source-map@>= 0.1.2", source-map@^0.5.1, source-map@^0.5.3, source-map@^0.5.6, source-map@~0.5.1, source-map@~0.5.3: - version "0.5.6" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.6.tgz#75ce38f52bf0733c5a7f0c118d81334a2bb5f412" +source-map@0.X, "source-map@>= 0.1.2": + version "0.6.1" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" source-map@^0.1.38, source-map@^0.1.40, source-map@~0.1.33, source-map@~0.1.7: version "0.1.43" @@ -4208,6 +4359,10 @@ source-map@^0.1.38, source-map@^0.1.40, source-map@~0.1.33, source-map@~0.1.7: dependencies: amdefine ">=0.0.4" +source-map@^0.5.1, source-map@^0.5.3, source-map@^0.5.6, source-map@~0.5.1, source-map@~0.5.3: + version "0.5.7" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" + source-map@~0.4.1: version "0.4.4" resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.4.4.tgz#eba4f5da9c0dc999de68032d8b4f76173652036b" @@ -4336,7 +4491,7 @@ string_decoder@~1.0.3: dependencies: safe-buffer "~5.1.0" -stringstream@~0.0.4: +stringstream@~0.0.4, stringstream@~0.0.5: version "0.0.5" resolved "https://registry.yarnpkg.com/stringstream/-/stringstream-0.0.5.tgz#4e484cd4de5a0bbbee18e46307710a8a81621878" @@ -4425,8 +4580,8 @@ supports-color@^3.1.0, supports-color@^3.2.3: has-flag "^1.0.0" supports-color@^4.2.1: - version "4.2.1" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-4.2.1.tgz#65a4bb2631e90e02420dba5554c375a4754bb836" + version "4.4.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-4.4.0.tgz#883f7ddabc165142b2a61427f3352ded195d1a3e" dependencies: has-flag "^2.0.0" @@ -4500,7 +4655,7 @@ timers-browserify@^2.0.2: dependencies: setimmediate "^1.0.4" -timers-ext@0.1: +timers-ext@^0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/timers-ext/-/timers-ext-0.1.2.tgz#61cc47a76c1abd3195f14527f978d58ae94c5204" dependencies: @@ -4524,15 +4679,15 @@ to-fast-properties@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-1.0.3.tgz#b83571fa4d8c25b82e231b06e3a3055de4ca1a47" -tough-cookie@~2.3.0: - version "2.3.2" - resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.3.2.tgz#f081f76e4c85720e6c37a5faced737150d84072a" +tough-cookie@~2.3.0, tough-cookie@~2.3.3: + version "2.3.3" + resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.3.3.tgz#0b618a5565b6dea90bf3425d04d55edc475a7561" dependencies: punycode "^1.4.1" tree-kill@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/tree-kill/-/tree-kill-1.1.0.tgz#c963dcf03722892ec59cba569e940b71954d1729" + version "1.2.0" + resolved "https://registry.yarnpkg.com/tree-kill/-/tree-kill-1.2.0.tgz#5846786237b4239014f05db156b643212d4c6f36" trim-newlines@^1.0.0: version "1.0.0" @@ -4579,8 +4734,8 @@ uglify-js@^2.6.0, uglify-js@^2.8.29: uglify-to-browserify "~1.0.0" uglify-js@^3.0.5: - version "3.0.27" - resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.0.27.tgz#a97db8c8ba6b9dba4e2f88d86aa9548fa6320034" + version "3.1.3" + resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.1.3.tgz#d61f0453b4718cab01581f3162aa90bab7520b42" dependencies: commander "~2.11.0" source-map "~0.5.1" @@ -4691,7 +4846,7 @@ util@0.10.3, util@^0.10.3: dependencies: inherits "2.0.1" -uuid@^3.0.0: +uuid@^3.0.0, uuid@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.1.0.tgz#3dd3d3e790abc24d7b0d3a034ffababe28ebbc04" @@ -4825,9 +4980,9 @@ webpack@^1.14.0: watchpack "^0.2.1" webpack-core "~0.6.9" -webpack@^3.5.5: - version "3.5.5" - resolved "https://registry.yarnpkg.com/webpack/-/webpack-3.5.5.tgz#3226f09fc8b3e435ff781e7af34f82b68b26996c" +webpack@^3.6.0: + version "3.6.0" + resolved "https://registry.yarnpkg.com/webpack/-/webpack-3.6.0.tgz#a89a929fbee205d35a4fa2cc487be9cbec8898bc" dependencies: acorn "^5.0.0" acorn-dynamic-import "^2.0.0" diff --git a/static/maps/layout/masthead.js.map b/static/maps/layout/masthead.js.map index 0ec7886c6da..11ff1016892 100644 --- a/static/maps/layout/masthead.js.map +++ b/static/maps/layout/masthead.js.map @@ -1 +1 @@ -{"version":3,"sources":["layout/masthead.js"],"names":["define","View","Backbone","QuotaMeter","options","extend","initialize","setElement","self","$navbarBrandLink","this","$navbarBrandImage","$navbarBrandTitle","$","$navbarTabs","$quoteMeter","Menu","Collection","collection","empty","model","append","callback","render","$el","m","on","fetch","Galaxy","frame","Scratchbook","user","UserQuotaMeter","el","window","$download_link","target","length","closest","attr","hide","e","preventDefault","get","q","text","logo_url","brand","logo_src","quotaMeter","_template"],"mappings":"aAAAA,QACI,cADJA,cAGI,qBAIJ,4BACA,SAAIC,EAAOC,EAASD,EAAYE,GA+EhC,OACIF,KA7EIC,SAAKE,KAALC,QACAC,WAAKC,SAALH,GACA,IAAAI,EAAKC,KACLC,KAAAN,QAAKO,EACLD,KAAAH,WAAKK,KAAAA,aACLF,KAAAD,iBAA0BC,KAAQG,EAAA,sBAClCH,KAAAC,kBAA0BD,KAAQG,EAAA,uBAFlCH,KAAKE,kBAAqBF,KAAKG,EAAG,uBAIlCH,KAAAI,YAAAJ,KAAAG,EAAA,gBACAH,KAAAK,YAAsBC,KAAKC,EAAAA,0BAG1BP,KAFDQ,WAAA,IAEgBF,EAAAC,WACZT,KAAAA,WAAKM,GAAAA,MAAYK,SAAjBC,GACHZ,EAJDM,YAAAO,OAImB,IAAUC,EAAAA,KAAWF,MAAAA,IAAAG,SAAAC,OACpChB,GAAAA,QAAKU,WAAkCI,EAAAA,YAAUG,UAAKC,GAAA,WAAtD,SAAAJ,GACHd,EAAEmB,WAAYvB,KANf,SAAAqB,GAAAH,EAAAG,OAMGE,MAAOjB,KAAKN,SAGfwB,OAAOC,MAAQnB,KAAKmB,MAAQ,IAAIC,GAAeZ,WAAYR,KAAKQ,aAK5DE,OAAAA,WAAUQ,KAAOG,WAD+C,IAAA5B,EAAA6B,gBAEhEC,MAAUL,OAAKb,KAFiDkB,GAApEvB,KAAAK,cAOIF,EAAAqB,QAAIC,GAAAA,QAAAA,SAAsBC,GAC1B,IAAAD,EAAKA,EAAeE,EAAAA,QAApBC,QAAkC,eACvB,GAAPH,EAAOE,SACkCE,IAArC1B,EAAAA,uBAAuBwB,QAC1BxB,EAAA,QAAAQ,OAAAR,EAAA,aAAA0B,KAAA,KAAA,YAAAC,QAEDC,EAAAA,uBAAAF,KAAA,MAAAJ,EAAAI,KAAA,SACHE,EAAAC,oBAEDhB,GAAA,eAAA,WACAlB,IAAAA,EAAKU,GAKD,GAJAV,EAAAU,WAAQE,KAAMuB,SAAKvB,GACnBwB,IAAAA,EAAAA,EAAOC,IAAQD,mBAAfxB,EAAAuB,IAAA,oBACHC,IAHDC,GAAAD,EAAA,OAKI,KAAAC,EACH,OAAAA,KAKLtB,OAAA,WAKH,OAJGb,KAAAE,kBAAKH,KAAiB8B,WAAc7B,KAAKN,QAAQ0C,OAAjD,KAAApC,KAAAN,QAAA2C,OAAA,KACArC,KAAAD,iBAAKE,KAAkB4B,OAAM7B,KAAON,QAAKA,UACzCM,KAAAC,kBAAgBY,KAAhB,MAAAb,KAAAN,QAAA4C,UACAtC,KAAAuC,WAAA1B,SA1DwBb,MA+DxBwC,UAAA,WAaH,MAAA","file":"../../scripts/layout/masthead.js","sourcesContent":["define([\n 'utils/utils',\n 'layout/menu',\n 'layout/scratchbook',\n 'mvc/user/user-quotameter',\n], function( Utils, Menu, Scratchbook, QuotaMeter ) {\n\n/** Masthead **/\nvar View = Backbone.View.extend({\n initialize : function( options ) {\n var self = this;\n this.options = options;\n this.setElement( this._template() );\n this.$navbarBrandLink = this.$( '.navbar-brand-link' );\n this.$navbarBrandImage = this.$( '.navbar-brand-image' );\n this.$navbarBrandTitle = this.$( '.navbar-brand-title' );\n this.$navbarTabs = this.$( '.navbar-tabs' );\n this.$quoteMeter = this.$( '.quota-meter-container' );\n\n // build tabs\n this.collection = new Menu.Collection();\n this.collection.on( 'add', function( model ) {\n self.$navbarTabs.append( new Menu.Tab( { model : model } ).render().$el );\n }).on( 'reset', function() {\n self.$navbarTabs.empty();\n }).on( 'dispatch', function( callback ) {\n self.collection.each( function ( m ) { callback( m ) });\n }).fetch( this.options );\n\n // scratchbook\n Galaxy.frame = this.frame = new Scratchbook( { collection: this.collection } );\n\n // set up the quota meter (And fetch the current user data from trans)\n // add quota meter to masthead\n Galaxy.quotaMeter = this.quotaMeter = new QuotaMeter.UserQuotaMeter({\n model : Galaxy.user,\n el : this.$quoteMeter\n });\n\n // loop through beforeunload functions if the user attempts to unload the page\n $( window ).on( 'click', function( e ) {\n var $download_link = $( e.target ).closest( 'a[download]' );\n if ( $download_link.length == 1 ) {\n if( $( 'iframe[id=download]' ).length === 0 ) {\n $( 'body' ).append( $( '' ).attr( 'id', 'download' ).hide() );\n }\n $( 'iframe[id=download]' ).attr( 'src', $download_link.attr( 'href' ) );\n e.preventDefault();\n }\n }).on( 'beforeunload', function() {\n var text = '';\n self.collection.each( function( model ) {\n var q = model.get( 'onbeforeunload' ) && model.get( 'onbeforeunload' )();\n q && ( text += q + ' ' );\n });\n if ( text !== '' ) {\n return text;\n }\n });\n },\n\n render: function() {\n this.$navbarBrandTitle.html( 'Galaxy ' + ( this.options.brand && '/ ' + this.options.brand || '' ) );\n this.$navbarBrandLink.attr( 'href', this.options.logo_url );\n this.$navbarBrandImage.attr( 'src', this.options.logo_src );\n this.quotaMeter.render();\n return this;\n },\n\n /** body template */\n _template: function() {\n return '
' + JSON.stringify( xhr.responseJSON ) + '';\n } else {\n content += ': ' + message;\n }\n }\n creator._showAlert( content, 'alert-danger' );\n },\n\n // ------------------------------------------------------------------------ rendering\n /** render the entire interface */\n render : function( speed, callback ){\n //this.debug( '-- _render' );\n //this.$el.empty().html( this.templates.main() );\n this.$el.empty().html( this.templates.main() );\n this._renderHeader( speed );\n this._renderMiddle( speed );\n this._renderFooter( speed );\n this._addPluginComponents();\n this.trigger( 'rendered', this );\n return this;\n },\n\n /** render the header section */\n _renderHeader : function( speed, callback ){\n //this.debug( '-- _renderHeader' );\n var $header = this.$( '.header' ).empty().html( this.templates.header() )\n .find( '.help-content' ).prepend( $( this.templates.helpContent() ) );\n\n this._renderFilters();\n return $header;\n },\n /** fill the filter inputs with the filter values */\n _renderFilters : function(){\n return this.$( '.forward-column .column-header input' ).val( this.filters[0] )\n .add( this.$( '.reverse-column .column-header input' ).val( this.filters[1] ) );\n },\n\n /** render the middle including unpaired and paired sections (which may be hidden) */\n _renderMiddle : function( speed, callback ){\n var $middle = this.$( '.middle' ).empty().html( this.templates.middle() );\n\n // (re-) hide the un/paired panels based on instance vars\n if( this.unpairedPanelHidden ){\n this.$( '.unpaired-columns' ).hide();\n } else if( this.pairedPanelHidden ){\n this.$( '.paired-columns' ).hide();\n }\n\n this._renderUnpaired();\n this._renderPaired();\n return $middle;\n },\n /** render the unpaired section, showing datasets accrd. to filters, update the unpaired counts */\n _renderUnpaired : function( speed, callback ){\n //this.debug( '-- _renderUnpaired' );\n var creator = this,\n $fwd, $rev, $prd = [],\n split = this._splitByFilters();\n // update unpaired counts\n this.$( '.forward-column .title' )\n .text([ split[0].length, _l( 'unpaired forward' ) ].join( ' ' ));\n this.$( '.forward-column .unpaired-info' )\n .text( this._renderUnpairedDisplayStr( this.unpaired.length - split[0].length ) );\n this.$( '.reverse-column .title' )\n .text([ split[1].length, _l( 'unpaired reverse' ) ].join( ' ' ));\n this.$( '.reverse-column .unpaired-info' )\n .text( this._renderUnpairedDisplayStr( this.unpaired.length - split[1].length ) );\n\n this.$( '.unpaired-columns .column-datasets' ).empty();\n\n // show/hide the auto pair button if any unpaired are left\n this.$( '.autopair-link' ).toggle( this.unpaired.length !== 0 );\n if( this.unpaired.length === 0 ){\n this._renderUnpairedEmpty();\n return;\n }\n\n // create the dataset dom arrays\n $rev = split[1].map( function( dataset, i ){\n // if there'll be a fwd dataset across the way, add a button to pair the row\n if( ( split[0][ i ] !== undefined )\n && ( split[0][ i ] !== dataset ) ){\n $prd.push( creator._renderPairButton() );\n }\n return creator._renderUnpairedDataset( dataset );\n });\n $fwd = split[0].map( function( dataset ){\n return creator._renderUnpairedDataset( dataset );\n });\n\n if( !$fwd.length && !$rev.length ){\n this._renderUnpairedNotShown();\n return;\n }\n // add to appropo cols\n //TODO: not the best way to render - consider rendering the entire unpaired-columns section in a fragment\n // and swapping out that\n this.$( '.unpaired-columns .forward-column .column-datasets' ).append( $fwd )\n .add( this.$( '.unpaired-columns .paired-column .column-datasets' ).append( $prd ) )\n .add( this.$( '.unpaired-columns .reverse-column .column-datasets' ).append( $rev ) );\n this._adjUnpairedOnScrollbar();\n },\n /** return a string to display the count of filtered out datasets */\n _renderUnpairedDisplayStr : function( numFiltered ){\n return [ '(', numFiltered, ' ', _l( 'filtered out' ), ')' ].join('');\n },\n /** return an unattached jQuery DOM element to represent an unpaired dataset */\n _renderUnpairedDataset : function( dataset ){\n //TODO: to underscore template\n return $( '')\n .attr( 'id', 'dataset-' + dataset.id )\n .addClass( 'dataset unpaired' )\n .attr( 'draggable', true )\n .addClass( dataset.selected? 'selected': '' )\n .append( $( '' ).addClass( 'dataset-name' ).text( dataset.name ) )\n //??\n .data( 'dataset', dataset );\n },\n /** render the button that may go between unpaired datasets, allowing the user to pair a row */\n _renderPairButton : function(){\n //TODO: *not* a dataset - don't pretend like it is\n return $( '').addClass( 'dataset unpaired' )\n .append( $( '' ).addClass( 'dataset-name' ).text( _l( 'Pair these datasets' ) ) );\n },\n /** a message to display when no unpaired left */\n _renderUnpairedEmpty : function(){\n //this.debug( '-- renderUnpairedEmpty' );\n var $msg = $( '' )\n .text( '(' + _l( 'no remaining unpaired datasets' ) + ')' );\n this.$( '.unpaired-columns .paired-column .column-datasets' ).empty().prepend( $msg );\n return $msg;\n },\n /** a message to display when no unpaired can be shown with the current filters */\n _renderUnpairedNotShown : function(){\n //this.debug( '-- renderUnpairedEmpty' );\n var $msg = $( '' )\n .text( '(' + _l( 'no datasets were found matching the current filters' ) + ')' );\n this.$( '.unpaired-columns .paired-column .column-datasets' ).empty().prepend( $msg );\n return $msg;\n },\n /** try to detect if the unpaired section has a scrollbar and adjust left column for better centering of all */\n _adjUnpairedOnScrollbar : function(){\n var $unpairedColumns = this.$( '.unpaired-columns' ).last(),\n $firstDataset = this.$( '.unpaired-columns .reverse-column .dataset' ).first();\n if( !$firstDataset.length ){ return; }\n var ucRight = $unpairedColumns.offset().left + $unpairedColumns.outerWidth(),\n dsRight = $firstDataset.offset().left + $firstDataset.outerWidth(),\n rightDiff = Math.floor( ucRight ) - Math.floor( dsRight );\n //this.debug( 'rightDiff:', ucRight, '-', dsRight, '=', rightDiff );\n this.$( '.unpaired-columns .forward-column' )\n .css( 'margin-left', ( rightDiff > 0 )? rightDiff: 0 );\n },\n\n /** render the paired section and update counts of paired datasets */\n _renderPaired : function( speed, callback ){\n //this.debug( '-- _renderPaired' );\n this.$( '.paired-column-title .title' ).text([ this.paired.length, _l( 'paired' ) ].join( ' ' ) );\n // show/hide the unpair all link\n this.$( '.unpair-all-link' ).toggle( this.paired.length !== 0 );\n if( this.paired.length === 0 ){\n this._renderPairedEmpty();\n return;\n //TODO: would be best to return here (the $columns)\n } else {\n // show/hide 'remove extensions link' when any paired and they seem to have extensions\n this.$( '.remove-extensions-link' ).show();\n }\n\n this.$( '.paired-columns .column-datasets' ).empty();\n var creator = this;\n this.paired.forEach( function( pair, i ){\n //TODO: cache these?\n var pairView = new PairView({ pair: pair });\n creator.$( '.paired-columns .column-datasets' )\n .append( pairView.render().$el )\n .append([\n ''\n ].join( '' ));\n });\n },\n /** a message to display when none paired */\n _renderPairedEmpty : function(){\n var $msg = $( '' )\n .text( '(' + _l( 'no paired datasets yet' ) + ')' );\n this.$( '.paired-columns .column-datasets' ).empty().prepend( $msg );\n return $msg;\n },\n\n footerSettings : {\n '.hide-originals': 'hideOriginals',\n '.remove-extensions': 'removeExtensions'\n },\n\n /** add any jQuery/bootstrap/custom plugins to elements rendered */\n _addPluginComponents : function(){\n this._chooseFiltersPopover( '.choose-filters-link' );\n this.$( '.help-content i' ).hoverhighlight( '.collection-creator', 'rgba( 64, 255, 255, 1.0 )' );\n },\n\n /** build a filter selection popover allowing selection of common filter pairs */\n _chooseFiltersPopover : function( selector ){\n function filterChoice( val1, val2 ){\n return [\n ''\n ].join('');\n }\n var $popoverContent = $( _.template([\n '
', _l([\n 'Collections of paired datasets are ordered lists of dataset pairs (often forward and reverse reads). ',\n 'These collections can be passed to tools and workflows in order to have analyses done on each member of ',\n 'the entire group. This interface allows you to create a collection, choose which datasets are paired, ',\n 'and re-order the final collection.'\n ].join( '' )), '
',\n '', _l([\n 'Unpaired datasets are shown in the unpaired section ',\n '(hover over the underlined words to highlight below). ',\n 'Paired datasets are shown in the paired section.',\n '
', _l([\n '
', _l([\n 'To unpair individual dataset pairs, click the ',\n 'unpair buttons ( ). ',\n 'Click the \"Unpair all\" link to unpair all pairs.'\n ].join( '' )), '
',\n '', _l([\n 'You can include or remove the file extensions (e.g. \".fastq\") from your pair names by toggling the ',\n '\"Remove file extensions from pair names?\" control.'\n ].join( '' )), '
',\n '', _l([\n 'Once your collection is complete, enter a name and ',\n 'click \"Create list\". ',\n '(Note: you do not have to pair all unpaired datasets to finish.)'\n ].join( '' )), '
'\n ].join(''))\n })\n});\n\n//=============================================================================\n/** a modal version of the paired collection creator */\nvar pairedCollectionCreatorModal = function _pairedCollectionCreatorModal( datasets, options ){\n\n var deferred = jQuery.Deferred(),\n creator;\n\n options = _.defaults( options || {}, {\n datasets : datasets,\n oncancel : function(){\n Galaxy.modal.hide();\n deferred.reject( 'cancelled' );\n },\n oncreate : function( creator, response ){\n Galaxy.modal.hide();\n deferred.resolve( response );\n }\n });\n\n if( !window.Galaxy || !Galaxy.modal ){\n throw new Error( 'Galaxy or Galaxy.modal not found' );\n }\n\n creator = new PairedCollectionCreator( options );\n Galaxy.modal.show({\n title : 'Create a collection of paired datasets',\n body : creator.$el,\n width : '80%',\n height : '800px',\n closing_events: true\n });\n creator.render();\n window.creator = creator;\n\n //TODO: remove modal header\n return deferred;\n};\n\n\n//=============================================================================\nfunction createListOfPairsCollection( collection, defaultHideSourceItems ){\n var elements = collection.toJSON();\n//TODO: validate elements\n return pairedCollectionCreatorModal( elements, {\n historyId : collection.historyId,\n defaultHideSourceItems: defaultHideSourceItems\n });\n}\n\n\n//=============================================================================\n return {\n PairedCollectionCreator : PairedCollectionCreator,\n pairedCollectionCreatorModal : pairedCollectionCreatorModal,\n createListOfPairsCollection : createListOfPairsCollection\n };\n});\n"]} \ No newline at end of file +{"version":3,"sources":["mvc/collection/list-of-pairs-collection-creator.js"],"names":["define","levenshteinDistance","naturalSort","baseCreator","baseMVC","_l","autoPairFnBuilder","_pair","matchTo","params","possible","_regexps","RegExp","this","filters","options","createPair","a","getRegExps","splice","indexA","b","length","indexB","listB","bInAIndex","listA","indexOf","aInBIndex","silent","preprocessMatch","regexps","call","_","bestMatch","score","name","replace","index","debug","paired","match","scoreThreshold","JSON","stringify","push","PairedCollectionCreator","className","PairView","Backbone","View","extend","LoggableMixin","initialize","tagName","attributes","render","pair","template","events","join","$el","_dragstart","ev","currentTarget","style","html","originalEvent","dragstart","dragend","trigger","dragover","drop","opacity","_sendToParent","effectAllowed","dataTransfer","parent","_dragend","toString","automaticallyPair","CollectionCreatorMixin","strategy","twoPassAutopairing","metric","initialList","historyId","datasets","DEFAULT_FILTERS","commonFilters","matchPercentage","isFunction","isArray","strategies","DEFAULT_STRATEGY","removeExtensions","oncancel","$dragging","oncreate","autoscrollDist","_setUpCommonSettings","unpairedPanelHidden","pairedPanelHidden","Rs","_dataSetUp","simple","lcs","levenshtein","selectedIds","_sortInitialList","unpaired","_ensureIds","_sortDatasetList","autoPair","list","sort","regexFilters","forEach","stringFilter","dataset","hasOwnProperty","split","id","uniqueId","_splitByFilters","_filter","filter","test","map","i","binSearchSortedIndex","low","hi","_addToUnpaired","mid","Math","floor","compared","bind","autopairSimple","autopairLevenshtein","distance","_naiveStartingAndEndingLCS","max","s1","s2","fwdLCS","revLCS","j","fwd","rev","_createPair","without","Error","_guessNameForPair","forward","reverse","undefined","fwdName","revName","lastDotIndex","lastIndexOf","extension","slice","_unpair","unpairAll","pairs","_pairToJSON","src","collection_type","element_identifiers","createList","creator","url","Galaxy","root","ajaxData","type","hide_source_items","$","val","blocking","jQuery","ajax","contentType","dataType","data","xhr","fail","done","response","message","_ajaxErrHandler","status","error","readyState","content","responseJSON","_showAlert","_renderHeader","callback","_addPluginComponents","main","speed","_renderMiddle","_renderFooter","_renderFilters","$header","empty","templates","header","find","prepend","helpContent","$middle","middle","add","hide","_renderUnpaired","_renderPaired","$fwd","$rev","$prd","text","_renderUnpairedDisplayStr","toggle","_renderUnpairedDataset","_renderUnpairedNotShown","append","_renderPairButton","numFiltered","attr","$msg","addClass","selected","_adjUnpairedOnScrollbar","_renderUnpairedEmpty","$firstDataset","ucRight","$unpairedColumns","dsRight","outerWidth","_renderPairedEmpty","last","first","offset","left","rightDiff","show","css","pairView","footerSettings","_chooseFiltersPopover","selector","placement","container",".hide-originals",".remove-extensions","VALIDATION_CLASS","what","hoverhighlight","removeClass","val1","val2","$popoverContent","values","filterSet","popover","_validationWarning","splitView","clear","focus","select","on","_setUpBehaviors","msgClass","hideUnpaired","scrollTop","click .more-help","click .less-help","click .main-help","click .header .alert button","click .forward-column .column-title","click .reverse-column .column-title","click .unpair-all-link","change .forward-unpaired-filter input","focus .forward-unpaired-filter input","click .autopair-link","click .choose-filters .filter-choice","click .clear-filters-link","change .reverse-unpaired-filter input","_clickShowOnlyUnpaired","click .forward-column .dataset.unpaired","click .reverse-column .dataset.unpaired","click .paired-column .dataset.unpaired","click .unpaired-columns","mousedown .unpaired-columns .dataset","click .paired-column-title","_clickShowOnlyPaired","click .paired-columns .dataset.paired","click .paired-columns","click .paired-columns .pair-name","click .unpair-btn","dragover .paired-columns .column-datasets","pair.dragstart .paired-columns .column-datasets","pair.dragend .paired-columns .column-datasets","hidePaired","toggleExtensions","change .collection-name","keydown .collection-name","change .hide-originals","click .cancel-create","click .create-collection","is","_hideChooseFilters","_clearFilters","_clickUnpairAll","_clickAutopair","toggleSelectUnpaired","$selected","force","$dataset","_clickUnpairedDataset","stopPropagation","fwds","revs","min","hasClass","pairAllSelected","_mousedownUnpaired","each","moveListener","$startTarget","err","_startPartitionDrag","shiftKey","endDrag","target","document","one","adjPartition","mousemove","rowIndex","eq","$unpaired","trackMouse","startingY","movingUpwards","unpairedHi","pairedHi","adj","unbind","$paired","parseInt","height","selectPair","clearSelectedPaired","_clickPairName","$name","$pair","flex","toggleClass","preventDefault","$list","_checkForAutoscroll","$nearest","_getNearestPairedDatasetLi","prompt","$placeholder","_clickUnpair","AUTOSCROLL_SPEED","pairIndex","$element","lowerDist","top","_dragoverPairedColumns","clientY","halfHeight","outerHeight","WIGGLE","remove","$li","before","dropEffect","y","upperDist","insertBefore","_syncPairsToDom","lis","toArray","newPaired","_dropPairedColumns","insertAfter","_printList","_pairDragstart","_pairDragend","e","_printPair","defaults","_creatorTemplates","window","title","body","width","closing_events","createListOfPairsCollection","elements","pairedCollectionCreatorModal","collection","defaultHideSourceItems","footer","deferred","Deferred","modal","reject","resolve","toJSON"],"mappings":"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","file":"../../../scripts/mvc/collection/list-of-pairs-collection-creator.js","sourcesContent":["define([\n \"utils/levenshtein\",\n \"utils/natural-sort\",\n \"mvc/collection/base-creator\",\n \"mvc/base-mvc\",\n \"utils/localization\",\n \"ui/hoverhighlight\"\n], function( levenshteinDistance, naturalSort, baseCreator, baseMVC, _l ){\n\n'use strict';\n\nvar logNamespace = 'collections';\n/* ============================================================================\nTODO:\n\n\nPROGRAMMATICALLY:\ncurrPanel.once( 'rendered', function(){\n currPanel.showSelectors();\n currPanel.selectAll();\n _.last( currPanel.actionsPopup.options ).func();\n});\n\n============================================================================ */\n/** A view for paired datasets in the collections creator.\n */\nvar PairView = Backbone.View.extend( baseMVC.LoggableMixin ).extend({\n _logNamespace : logNamespace,\n\n tagName : 'li',\n className : 'dataset paired',\n\n initialize : function( attributes ){\n this.pair = attributes.pair || {};\n },\n\n template : _.template([\n '<%- pair.forward.name %>',\n '',\n '<%- pair.name %>',\n '',\n '<%- pair.reverse.name %>'\n ].join('')),\n\n render : function(){\n this.$el\n .attr( 'draggable', true )\n .data( 'pair', this.pair )\n .html( this.template({ pair: this.pair }) )\n .addClass( 'flex-column-container' );\n return this;\n },\n\n events : {\n 'dragstart' : '_dragstart',\n 'dragend' : '_dragend',\n 'dragover' : '_sendToParent',\n 'drop' : '_sendToParent'\n },\n\n /** dragging pairs for re-ordering */\n _dragstart : function( ev ){\n ev.currentTarget.style.opacity = '0.4';\n if( ev.originalEvent ){ ev = ev.originalEvent; }\n\n ev.dataTransfer.effectAllowed = 'move';\n ev.dataTransfer.setData( 'text/plain', JSON.stringify( this.pair ) );\n\n this.$el.parent().trigger( 'pair.dragstart', [ this ] );\n },\n\n /** dragging pairs for re-ordering */\n _dragend : function( ev ){\n ev.currentTarget.style.opacity = '1.0';\n this.$el.parent().trigger( 'pair.dragend', [ this ] );\n },\n\n /** manually bubble up an event to the parent/container */\n _sendToParent : function( ev ){\n this.$el.parent().trigger( ev );\n },\n\n /** string rep */\n toString : function(){\n return 'PairView(' + this.pair.name + ')';\n }\n});\n\n\n// ============================================================================\n/** returns an autopair function that uses the provided options.match function */\nfunction autoPairFnBuilder( options ){\n options = options || {};\n options.createPair = options.createPair || function _defaultCreatePair( params ){\n params = params || {};\n var a = params.listA.splice( params.indexA, 1 )[0],\n b = params.listB.splice( params.indexB, 1 )[0],\n aInBIndex = params.listB.indexOf( a ),\n bInAIndex = params.listA.indexOf( b );\n if( aInBIndex !== -1 ){ params.listB.splice( aInBIndex, 1 ); }\n if( bInAIndex !== -1 ){ params.listA.splice( bInAIndex, 1 ); }\n return this._pair( a, b, { silent: true });\n };\n // compile these here outside of the loop\n var _regexps = [];\n function getRegExps(){\n if( !_regexps.length ){\n _regexps = [\n new RegExp( this.filters[0] ),\n new RegExp( this.filters[1] )\n ];\n }\n return _regexps;\n }\n // mangle params as needed\n options.preprocessMatch = options.preprocessMatch || function _defaultPreprocessMatch( params ){\n var regexps = getRegExps.call( this );\n return _.extend( params, {\n matchTo : params.matchTo.name.replace( regexps[0], '' ),\n possible : params.possible.name.replace( regexps[1], '' )\n });\n };\n\n return function _strategy( params ){\n this.debug( 'autopair _strategy ---------------------------' );\n params = params || {};\n var listA = params.listA,\n listB = params.listB,\n indexA = 0, indexB,\n bestMatch = {\n score : 0.0,\n index : null\n },\n paired = [];\n //console.debug( 'params:', JSON.stringify( params, null, ' ' ) );\n this.debug( 'starting list lens:', listA.length, listB.length );\n this.debug( 'bestMatch (starting):', JSON.stringify( bestMatch, null, ' ' ) );\n\n while( indexA < listA.length ){\n var matchTo = listA[ indexA ];\n bestMatch.score = 0.0;\n\n for( indexB=0; indexB' + JSON.stringify( xhr.responseJSON ) + '';\n } else {\n content += ': ' + message;\n }\n }\n creator._showAlert( content, 'alert-danger' );\n },\n\n // ------------------------------------------------------------------------ rendering\n /** render the entire interface */\n render : function( speed, callback ){\n //this.debug( '-- _render' );\n //this.$el.empty().html( this.templates.main() );\n this.$el.empty().html( this.templates.main() );\n this._renderHeader( speed );\n this._renderMiddle( speed );\n this._renderFooter( speed );\n this._addPluginComponents();\n this.trigger( 'rendered', this );\n return this;\n },\n\n /** render the header section */\n _renderHeader : function( speed, callback ){\n //this.debug( '-- _renderHeader' );\n var $header = this.$( '.header' ).empty().html( this.templates.header() )\n .find( '.help-content' ).prepend( $( this.templates.helpContent() ) );\n\n this._renderFilters();\n return $header;\n },\n /** fill the filter inputs with the filter values */\n _renderFilters : function(){\n return this.$( '.forward-column .column-header input' ).val( this.filters[0] )\n .add( this.$( '.reverse-column .column-header input' ).val( this.filters[1] ) );\n },\n\n /** render the middle including unpaired and paired sections (which may be hidden) */\n _renderMiddle : function( speed, callback ){\n var $middle = this.$( '.middle' ).empty().html( this.templates.middle() );\n\n // (re-) hide the un/paired panels based on instance vars\n if( this.unpairedPanelHidden ){\n this.$( '.unpaired-columns' ).hide();\n } else if( this.pairedPanelHidden ){\n this.$( '.paired-columns' ).hide();\n }\n\n this._renderUnpaired();\n this._renderPaired();\n return $middle;\n },\n /** render the unpaired section, showing datasets accrd. to filters, update the unpaired counts */\n _renderUnpaired : function( speed, callback ){\n //this.debug( '-- _renderUnpaired' );\n var creator = this,\n $fwd, $rev, $prd = [],\n split = this._splitByFilters();\n // update unpaired counts\n this.$( '.forward-column .title' )\n .text([ split[0].length, _l( 'unpaired forward' ) ].join( ' ' ));\n this.$( '.forward-column .unpaired-info' )\n .text( this._renderUnpairedDisplayStr( this.unpaired.length - split[0].length ) );\n this.$( '.reverse-column .title' )\n .text([ split[1].length, _l( 'unpaired reverse' ) ].join( ' ' ));\n this.$( '.reverse-column .unpaired-info' )\n .text( this._renderUnpairedDisplayStr( this.unpaired.length - split[1].length ) );\n\n this.$( '.unpaired-columns .column-datasets' ).empty();\n\n // show/hide the auto pair button if any unpaired are left\n this.$( '.autopair-link' ).toggle( this.unpaired.length !== 0 );\n if( this.unpaired.length === 0 ){\n this._renderUnpairedEmpty();\n return;\n }\n\n // create the dataset dom arrays\n $rev = split[1].map( function( dataset, i ){\n // if there'll be a fwd dataset across the way, add a button to pair the row\n if( ( split[0][ i ] !== undefined )\n && ( split[0][ i ] !== dataset ) ){\n $prd.push( creator._renderPairButton() );\n }\n return creator._renderUnpairedDataset( dataset );\n });\n $fwd = split[0].map( function( dataset ){\n return creator._renderUnpairedDataset( dataset );\n });\n\n if( !$fwd.length && !$rev.length ){\n this._renderUnpairedNotShown();\n return;\n }\n // add to appropo cols\n //TODO: not the best way to render - consider rendering the entire unpaired-columns section in a fragment\n // and swapping out that\n this.$( '.unpaired-columns .forward-column .column-datasets' ).append( $fwd )\n .add( this.$( '.unpaired-columns .paired-column .column-datasets' ).append( $prd ) )\n .add( this.$( '.unpaired-columns .reverse-column .column-datasets' ).append( $rev ) );\n this._adjUnpairedOnScrollbar();\n },\n /** return a string to display the count of filtered out datasets */\n _renderUnpairedDisplayStr : function( numFiltered ){\n return [ '(', numFiltered, ' ', _l( 'filtered out' ), ')' ].join('');\n },\n /** return an unattached jQuery DOM element to represent an unpaired dataset */\n _renderUnpairedDataset : function( dataset ){\n //TODO: to underscore template\n return $( '')\n .attr( 'id', 'dataset-' + dataset.id )\n .addClass( 'dataset unpaired' )\n .attr( 'draggable', true )\n .addClass( dataset.selected? 'selected': '' )\n .append( $( '' ).addClass( 'dataset-name' ).text( dataset.name ) )\n //??\n .data( 'dataset', dataset );\n },\n /** render the button that may go between unpaired datasets, allowing the user to pair a row */\n _renderPairButton : function(){\n //TODO: *not* a dataset - don't pretend like it is\n return $( '').addClass( 'dataset unpaired' )\n .append( $( '' ).addClass( 'dataset-name' ).text( _l( 'Pair these datasets' ) ) );\n },\n /** a message to display when no unpaired left */\n _renderUnpairedEmpty : function(){\n //this.debug( '-- renderUnpairedEmpty' );\n var $msg = $( '' )\n .text( '(' + _l( 'no remaining unpaired datasets' ) + ')' );\n this.$( '.unpaired-columns .paired-column .column-datasets' ).empty().prepend( $msg );\n return $msg;\n },\n /** a message to display when no unpaired can be shown with the current filters */\n _renderUnpairedNotShown : function(){\n //this.debug( '-- renderUnpairedEmpty' );\n var $msg = $( '' )\n .text( '(' + _l( 'no datasets were found matching the current filters' ) + ')' );\n this.$( '.unpaired-columns .paired-column .column-datasets' ).empty().prepend( $msg );\n return $msg;\n },\n /** try to detect if the unpaired section has a scrollbar and adjust left column for better centering of all */\n _adjUnpairedOnScrollbar : function(){\n var $unpairedColumns = this.$( '.unpaired-columns' ).last(),\n $firstDataset = this.$( '.unpaired-columns .reverse-column .dataset' ).first();\n if( !$firstDataset.length ){ return; }\n var ucRight = $unpairedColumns.offset().left + $unpairedColumns.outerWidth(),\n dsRight = $firstDataset.offset().left + $firstDataset.outerWidth(),\n rightDiff = Math.floor( ucRight ) - Math.floor( dsRight );\n //this.debug( 'rightDiff:', ucRight, '-', dsRight, '=', rightDiff );\n this.$( '.unpaired-columns .forward-column' )\n .css( 'margin-left', ( rightDiff > 0 )? rightDiff: 0 );\n },\n\n /** render the paired section and update counts of paired datasets */\n _renderPaired : function( speed, callback ){\n //this.debug( '-- _renderPaired' );\n this.$( '.paired-column-title .title' ).text([ this.paired.length, _l( 'paired' ) ].join( ' ' ) );\n // show/hide the unpair all link\n this.$( '.unpair-all-link' ).toggle( this.paired.length !== 0 );\n if( this.paired.length === 0 ){\n this._renderPairedEmpty();\n return;\n //TODO: would be best to return here (the $columns)\n } else {\n // show/hide 'remove extensions link' when any paired and they seem to have extensions\n this.$( '.remove-extensions-link' ).show();\n }\n\n this.$( '.paired-columns .column-datasets' ).empty();\n var creator = this;\n this.paired.forEach( function( pair, i ){\n //TODO: cache these?\n var pairView = new PairView({ pair: pair });\n creator.$( '.paired-columns .column-datasets' )\n .append( pairView.render().$el )\n .append([\n ''\n ].join( '' ));\n });\n },\n /** a message to display when none paired */\n _renderPairedEmpty : function(){\n var $msg = $( '' )\n .text( '(' + _l( 'no paired datasets yet' ) + ')' );\n this.$( '.paired-columns .column-datasets' ).empty().prepend( $msg );\n return $msg;\n },\n\n footerSettings : {\n '.hide-originals': 'hideOriginals',\n '.remove-extensions': 'removeExtensions'\n },\n\n /** add any jQuery/bootstrap/custom plugins to elements rendered */\n _addPluginComponents : function(){\n this._chooseFiltersPopover( '.choose-filters-link' );\n this.$( '.help-content i' ).hoverhighlight( '.collection-creator', 'rgba( 64, 255, 255, 1.0 )' );\n },\n\n /** build a filter selection popover allowing selection of common filter pairs */\n _chooseFiltersPopover : function( selector ){\n function filterChoice( val1, val2 ){\n return [\n ''\n ].join('');\n }\n var $popoverContent = $( _.template([\n '
', _l([\n 'Collections of paired datasets are ordered lists of dataset pairs (often forward and reverse reads). ',\n 'These collections can be passed to tools and workflows in order to have analyses done on each member of ',\n 'the entire group. This interface allows you to create a collection, choose which datasets are paired, ',\n 'and re-order the final collection.'\n ].join( '' )), '
',\n '', _l([\n 'Unpaired datasets are shown in the unpaired section ',\n '(hover over the underlined words to highlight below). ',\n 'Paired datasets are shown in the paired section.',\n '
', _l([\n '
', _l([\n 'To unpair individual dataset pairs, click the ',\n 'unpair buttons ( ). ',\n 'Click the \"Unpair all\" link to unpair all pairs.'\n ].join( '' )), '
',\n '', _l([\n 'You can include or remove the file extensions (e.g. \".fastq\") from your pair names by toggling the ',\n '\"Remove file extensions from pair names?\" control.'\n ].join( '' )), '
',\n '', _l([\n 'Once your collection is complete, enter a name and ',\n 'click \"Create list\". ',\n '(Note: you do not have to pair all unpaired datasets to finish.)'\n ].join( '' )), '
'\n ].join(''))\n })\n});\n\n//=============================================================================\n/** a modal version of the paired collection creator */\nvar pairedCollectionCreatorModal = function _pairedCollectionCreatorModal( datasets, options ){\n\n var deferred = jQuery.Deferred(),\n creator;\n\n options = _.defaults( options || {}, {\n datasets : datasets,\n oncancel : function(){\n Galaxy.modal.hide();\n deferred.reject( 'cancelled' );\n },\n oncreate : function( creator, response ){\n Galaxy.modal.hide();\n deferred.resolve( response );\n }\n });\n\n if( !window.Galaxy || !Galaxy.modal ){\n throw new Error( 'Galaxy or Galaxy.modal not found' );\n }\n\n creator = new PairedCollectionCreator( options );\n Galaxy.modal.show({\n title : 'Create a collection of paired datasets',\n body : creator.$el,\n width : '80%',\n height : '800px',\n closing_events: true\n });\n creator.render();\n window.creator = creator;\n\n //TODO: remove modal header\n return deferred;\n};\n\n\n//=============================================================================\nfunction createListOfPairsCollection( collection, defaultHideSourceItems ){\n var elements = collection.toJSON();\n//TODO: validate elements\n return pairedCollectionCreatorModal( elements, {\n historyId : collection.historyId,\n defaultHideSourceItems: defaultHideSourceItems\n });\n}\n\n\n//=============================================================================\n return {\n PairedCollectionCreator : PairedCollectionCreator,\n pairedCollectionCreatorModal : pairedCollectionCreatorModal,\n createListOfPairsCollection : createListOfPairsCollection\n };\n});\n"]} \ No newline at end of file diff --git a/static/maps/mvc/dataset/dataset-choice.js.map b/static/maps/mvc/dataset/dataset-choice.js.map index eb9e187b6a1..18f166f5d8f 100644 --- a/static/maps/mvc/dataset/dataset-choice.js.map +++ b/static/maps/mvc/dataset/dataset-choice.js.map @@ -1 +1 @@ -{"version":3,"sources":["mvc/dataset/dataset-choice.js"],"names":["define","DATASET","DATASET_LIST","MODAL","BASE_MVC","_l","_filterDatasetJSON","hasOwnProperty","where","datasetsOnly","matches","obj","toMatch","key","console","datasetJSON","filter","json","debug","deleted","visible","undefined","collection_type","DatasetChoiceModal","options","multiselect","selected","state","filterFn","promise","length","reject","resolveWithSelected","modal","height","map","model","buttons","toJSON","body","closing_events","resolve","join","title","subtitle","el","find","selecting","list","$body","addClass","collection","DatasetAssociationCollection","show","$el","on","render","hide","view","always","DatasetChoice","Backbone","View","extend","LoggableMixin","_logNamespace","className","initialize","attributes","this","label","_setUpListeners","_template","_","template","html","$","replaceWith","_renderSelected","datasets","chooser","variable","trigger","id","findWhere","events","click","_createModal","done","pluck","fail","arguments","_getModalOptions","cells","hid","name","misc_blurb","toString","showHeaders","prototype","file_ext","tags","annotation","call","MultiDatasetChoice"],"mappings":"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","file":"../../../scripts/mvc/dataset/dataset-choice.js","sourcesContent":["define([\n 'mvc/dataset/dataset-model',\n 'mvc/dataset/dataset-list',\n 'mvc/ui/ui-modal',\n 'mvc/base-mvc',\n 'utils/localization'\n], function( DATASET, DATASET_LIST, MODAL, BASE_MVC, _l ){\n'use strict';\n\nvar logNamespace = 'dataset';\n/* ============================================================================\nTODO:\n does this really work with mixed contents?\n Single dataset choice: allow none?\n tooltips rendered *behind* modal\n collection selector\n better handling when no results returned from filterDatasetJSON\n pass optional subtitle from choice display to modal\n onfirstclick\n drop target\n return modal with promise?\n\n auto showing the modal may not be best\n\n============================================================================ */\n/** Filters an array of dataset plain JSON objs.\n */\nfunction _filterDatasetJSON( datasetJSON, where, datasetsOnly ){\n//TODO: replace with _.matches (underscore 1.6.0)\n function matches( obj, toMatch ){\n for( var key in toMatch ){\n if( toMatch.hasOwnProperty( key ) ){\n if( obj[ key ] !== toMatch[ key ] ){\n return false;\n }\n }\n }\n return true;\n }\n\n return datasetJSON.filter( function( json ){\n console.debug( json )\n return ( !json.deleted && json.visible )\n && ( !datasetsOnly || json.collection_type === undefined )\n && ( matches( json, where ) );\n });\n}\n\n// ============================================================================\n/** Given an array of plain JSON objs rep. datasets, show a modal allowing a choice\n * of one or more of those datasets.\n *\n * Pass:\n * an array of plain JSON objects representing allowed dataset choices\n * a map of options (see below)\n *\n * Options:\n * datasetsOnly: T: display only datasets, F: datasets + dataset collections\n * where: a map of attributes available choices *must have* (defaults to { state: 'ok' })\n * multiselect: T: user can select more than one, F: only one\n * selected: array of dataset ids to make them selected by default\n *\n * @example:\n * var datasetJSON = // from ajax or bootstrap\n * // returns a jQuery promise (that 'fail's only if no datasets are found matching 'where' below)\n * var choice = new DatasetChoiceModal( datasetJSON, {\n * datasetsOnly : false,\n * where : { state: 'ok', file_ext: 'bed', ... },\n * multiselect : true,\n * selected : [ 'df7a1f0c02a5b08e', 'abcdef0123456789' ]\n *\n * }).done( function( json ){\n * if( json ){\n * console.debug( json );\n * // returned choice will always be an array (single or multi)\n * // [{| <%- val %> | ',\n '<% }); %>',\n '
|---|
| \"><%- selected[ key ] %> | ',\n '<% }) %>',\n '
| <%- val %> | ',\n '<% }); %>',\n '
|---|
| \"><%- selected[ key ] %> | ',\n '<% }) %>',\n '
<%= dataset.peek %>',\n '<% } %>',\n '<% } %>',\n '
<%= dataset.peek %>',\n '<% } %>',\n '<% } %>',\n '
| ' +\n ' | ' +\n '' +\n ' ' + options.title + ' ' +\n '' + options.description + ' ' +\n ' | ' +\n '
| ' +\n ' | ' +\n '' +\n ' ' + options.title + ' ' +\n '' + options.description + ' ' +\n ' | ' +\n '').addClass('settings').appendTo(this.$el),\n settings_div = $('').addClass('track-info').hide().appendTo(settings_td);\n settings_div.append( $('').css('font-weight', 'bold').text('Track Settings') );\n settings.get('inputs').each(function(input) {\n settings_div.append( input.get('label') + ': ' + values[input.get('name')] + ' | ').addClass('tile').html(\n $(' |