# HG changeset patch # User Marcin Kuzminski # Date 2018-10-16 16:24:44 # Node ID 4c30a2d8fb3f067533f14afe1232687c724fdf00 # Parent 353768204a3638ae6dd9e8781dd556eaa58803b5 diffs: sticky top-file bar + context aware file labels. - when browsing diffs now we show context file path so every time you know what file diff you're seeing - block file selector on range diffs - update bower packages diff --git a/grunt_config.json b/grunt_config.json --- a/grunt_config.json +++ b/grunt_config.json @@ -37,6 +37,10 @@ "<%= dirs.js.node_modules %>/moment/min/moment.min.js", "<%= dirs.js.node_modules %>/clipboard/dist/clipboard.min.js", "<%= dirs.js.node_modules %>/favico.js/favico-0.3.10.min.js", + "<%= dirs.js.node_modules %>/sticky-sidebar/dist/sticky-sidebar.min.js", + "<%= dirs.js.node_modules %>/sticky-sidebar/dist/jquery.sticky-sidebar.min.js", + "<%= dirs.js.node_modules %>/waypoints/lib/noframework.waypoints.min.js", + "<%= dirs.js.node_modules %>/waypoints/lib/jquery.waypoints.min.js", "<%= dirs.js.node_modules %>/appenlight-client/appenlight-client.min.js", "<%= dirs.js.src %>/logging.js", "<%= dirs.js.src %>/bootstrap.js", diff --git a/package.json b/package.json --- a/package.json +++ b/package.json @@ -28,6 +28,8 @@ "qrious": "^4.0.2", "moment": "^2.18.1", "mousetrap": "^1.6.1", + "sticky-sidebar": "3.3.1", + "waypoints": "4.0.1", "appenlight-client": "git+https://git@github.com/AppEnlight/appenlight-client-js.git#0.5.1" } } diff --git a/pkgs/bower-packages.nix b/pkgs/bower-packages.nix --- a/pkgs/bower-packages.nix +++ b/pkgs/bower-packages.nix @@ -1,9 +1,9 @@ # Generated by bower2nix v3.2.0 (https://github.com/rvl/bower2nix) { fetchbower, buildEnv }: buildEnv { name = "bower-env"; ignoreCollisions = true; paths = [ - (fetchbower "webcomponentsjs" "1.2.3" "^1.2.3" "0db2fjk779rhl9d4ifpk1j9a83vngx6j3hk7si1752dqxj857267") - (fetchbower "polymer" "Polymer/polymer#2.6.0" "Polymer/polymer#^2.6.0" "1jw5syjn0naa7dlxzxvsgwb20zbkbpx0pcg0wzjq4wr49c20nw0k") - (fetchbower "paper-button" "PolymerElements/paper-button#2.1.2" "PolymerElements/paper-button#^2.1.2" "1lwmjwhvimh02gss39yjp5h7yg9mxl1ig59yrk085v86y5f5ilz1") + (fetchbower "webcomponentsjs" "1.2.7" "^1.2.3" "0wbybia53zjfcyh4yvjc4ds8vvfizmmsyd35qgja4v0hlyvf4zms") + (fetchbower "polymer" "Polymer/polymer#2.6.1" "Polymer/polymer#^2.6.0" "0zr44hh50851hfqwgw5r4pa330p1jp60rrffcqrw3wwggfl38s4n") + (fetchbower "paper-button" "PolymerElements/paper-button#2.1.3" "PolymerElements/paper-button#^2.1.2" "1w016daj1l8hyklaqskcz4c3zxcm77cd5k3lj0324xn45n3vvphc") (fetchbower "paper-spinner" "PolymerElements/paper-spinner#2.1.0" "PolymerElements/paper-spinner#^2.1.0" "07jamgxzvy4r9pgf5ikj1fm8nkrw6sywgcxvmm7ax58hjvmd4i45") (fetchbower "paper-tooltip" "PolymerElements/paper-tooltip#2.1.1" "PolymerElements/paper-tooltip#^2.1.1" "0ja9vz4xps7dxfx6kmrwq0gifbjsyc3pk9l3hd5233ss72ghlvgb") (fetchbower "paper-toast" "PolymerElements/paper-toast#2.1.2" "PolymerElements/paper-toast#^2.1.2" "0mkj9ayjx2l9hvrz4kw3yjbgrs9w873k05ywv94nh92mzpjkxn04") @@ -11,7 +11,7 @@ buildEnv { name = "bower-env"; ignoreCol (fetchbower "iron-ajax" "PolymerElements/iron-ajax#2.1.3" "PolymerElements/iron-ajax#^2.1.3" "187zb6lkv18yapl292qhn611mbl4i2bqs2dimlwmdjaln285nc1l") (fetchbower "iron-autogrow-textarea" "PolymerElements/iron-autogrow-textarea#2.2.0" "PolymerElements/iron-autogrow-textarea#^2.2.0" "1cx7g49m20z08x25z24g2pvv6m6dwfbkga3nsw0rpi3jk7xhznqw") (fetchbower "iron-a11y-keys" "PolymerElements/iron-a11y-keys#2.1.2" "PolymerElements/iron-a11y-keys#^2.1.2" "0zdn3bzfrk88iwahmmzvcjn3m90zga1l8dx42b365n8if0n0zapj") - (fetchbower "shadycss" "webcomponents/shadycss#1.3.5" "webcomponents/shadycss#^v1.1.0" "1xp07d6jlmc3ywg4cdp2nijwi0vrbzw468242xz0s6zx5z2n2wzf") + (fetchbower "shadycss" "webcomponents/shadycss#1.5.2" "webcomponents/shadycss#^v1.1.0" "03fgbgvb80zjrgnq43gk0hr4cbvjs8rkqpfv1c2qsn7b6q71izlx") (fetchbower "iron-flex-layout" "PolymerElements/iron-flex-layout#2.0.3" "PolymerElements/iron-flex-layout#1 - 2" "1ir9ili3rkcgbfj6is5s70vyb7m6avz0av0lpjjlhhsplrrl90bk") (fetchbower "paper-behaviors" "PolymerElements/paper-behaviors#2.1.1" "PolymerElements/paper-behaviors#1 - 2" "0wzyznmy1q64jsm6lck0xma92lg2hz9h9m05r68iy20iyrvbjld7") (fetchbower "paper-styles" "PolymerElements/paper-styles#2.1.0" "PolymerElements/paper-styles#1 - 2" "0xzsd7pvjsk7lgcmvx4q0dvps40q3mymkx26zgs8ns91s1ssfqbx") diff --git a/pkgs/node-packages.nix b/pkgs/node-packages.nix --- a/pkgs/node-packages.nix +++ b/pkgs/node-packages.nix @@ -13,22 +13,22 @@ let sha1 = "e7365648c1b42136a59c7d5040637b3b5c83b614"; }; }; - "@types/node-4.2.23" = { + "@types/node-4.9.0" = { name = "_at_types_slash_node"; packageName = "@types/node"; - version = "4.2.23"; - src = fetchurl { - url = "https://registry.npmjs.org/@types/node/-/node-4.2.23.tgz"; - sha512 = "U6IchCNLRyswc9p6G6lxWlbE+KwAhZp6mGo6MD2yWpmFomhYmetK+c98OpKyvphNn04CU3aXeJrXdOqbXVTS/w=="; - }; - }; - "@types/node-6.0.114" = { + version = "4.9.0"; + src = fetchurl { + url = "https://registry.npmjs.org/@types/node/-/node-4.9.0.tgz"; + sha512 = "xUFkZ+er9gUGw0x9qyfmr/Th0LuX6IB0m7HrRMB6sO6vcBVRFZ/3YV1EeiOC2fG50RX09avDfKwGBHOnPVxFeg=="; + }; + }; + "@types/node-6.0.118" = { name = "_at_types_slash_node"; packageName = "@types/node"; - version = "6.0.114"; - src = fetchurl { - url = "https://registry.npmjs.org/@types/node/-/node-6.0.114.tgz"; - sha512 = "5ViC9dwf1VIAtrOFTvOuN04lJgw28eKjuy0Vg2Bd/fSlxKP2feCSkIw04ZgOENL2ywdWrtbkthp1XVLEjJmouw=="; + version = "6.0.118"; + src = fetchurl { + url = "https://registry.npmjs.org/@types/node/-/node-6.0.118.tgz"; + sha512 = "N33cKXGSqhOYaPiT4xUGsYlPPDwFtQM/6QxJxuMXA/7BcySW+lkn2yigWP7vfs4daiL/7NJNU6DMCqg5N4B+xQ=="; }; }; "@types/parse5-0.0.31" = { @@ -36,7 +36,7 @@ let packageName = "@types/parse5"; version = "0.0.31"; src = fetchurl { - url = "https://registry.npmjs.org/@types/parse5/-/parse5-0.0.31.tgz"; + url = "http://registry.npmjs.org/@types/parse5/-/parse5-0.0.31.tgz"; sha1 = "e827a493a443b156e1b582a2e4c3bdc0040f2ee7"; }; }; @@ -58,13 +58,13 @@ let sha1 = "45e37fb39e8da3f25baee3ff5369e2bb5f22017a"; }; }; - "acorn-5.7.1" = { + "acorn-5.7.3" = { name = "acorn"; packageName = "acorn"; - version = "5.7.1"; - src = fetchurl { - url = "https://registry.npmjs.org/acorn/-/acorn-5.7.1.tgz"; - sha512 = "d+nbxBUGKg7Arpsvbnlq61mc12ek3EY8EQldM3GPAhWJ1UVxC6TDGbIvUMNU6obBX3i1+ptCIzV4vq0gFPEGVQ=="; + version = "5.7.3"; + src = fetchurl { + url = "https://registry.npmjs.org/acorn/-/acorn-5.7.3.tgz"; + sha512 = "T/zvzYRfbVojPWahDsE5evJdHb3oJoQfFbsrKM7w5Zcs++Tr257tia3BmMP8XYVjp1S9RZXQMh7gao96BlqZOw=="; }; }; "acorn-jsx-3.0.1" = { @@ -194,13 +194,13 @@ let sha1 = "e50347611d7e690943208bbdafebcbc2fb866d46"; }; }; - "asn1-0.2.3" = { + "asn1-0.2.4" = { name = "asn1"; packageName = "asn1"; - version = "0.2.3"; - src = fetchurl { - url = "https://registry.npmjs.org/asn1/-/asn1-0.2.3.tgz"; - sha1 = "dac8787713c9966849fc8180777ebe9c1ddf3b86"; + version = "0.2.4"; + src = fetchurl { + url = "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz"; + sha512 = "jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg=="; }; }; "assert-plus-0.2.0" = { @@ -275,13 +275,13 @@ let sha1 = "14342dd38dbcc94d0e5b87d763cd63612c0e794f"; }; }; - "aws4-1.7.0" = { + "aws4-1.8.0" = { name = "aws4"; packageName = "aws4"; - version = "1.7.0"; - src = fetchurl { - url = "https://registry.npmjs.org/aws4/-/aws4-1.7.0.tgz"; - sha512 = "32NDda82rhwD9/JBCCkB+MRYDp0oSvlo2IL6rQWA10PQi7tDUM3eqMSltXmY+Oyl/7N3P3qNtAlv7X0d9bI28w=="; + version = "1.8.0"; + src = fetchurl { + url = "https://registry.npmjs.org/aws4/-/aws4-1.8.0.tgz"; + sha512 = "ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ=="; }; }; "babel-polyfill-6.26.0" = { @@ -482,13 +482,13 @@ let sha1 = "0433f44d809680fdeb60ed260f1b0c262e82a40b"; }; }; - "combined-stream-1.0.6" = { + "combined-stream-1.0.7" = { name = "combined-stream"; packageName = "combined-stream"; - version = "1.0.6"; - src = fetchurl { - url = "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.6.tgz"; - sha1 = "723e7df6e801ac5613113a7e445a9b69cb632818"; + version = "1.0.7"; + src = fetchurl { + url = "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.7.tgz"; + sha512 = "brWl9y6vOB1xYPZcpZde3N9zDByXTosAeMDo4p1wzo6UMOX4vumB+TP1RZ76sfE6Md68Q0NJSrE/gbezd4Ul+w=="; }; }; "command-line-args-3.0.5" = { @@ -527,13 +527,13 @@ let sha512 = "27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw=="; }; }; - "config-chain-1.1.11" = { + "config-chain-1.1.12" = { name = "config-chain"; packageName = "config-chain"; - version = "1.1.11"; - src = fetchurl { - url = "https://registry.npmjs.org/config-chain/-/config-chain-1.1.11.tgz"; - sha1 = "aba09747dfbe4c3e70e766a6e41586e1859fc6f2"; + version = "1.1.12"; + src = fetchurl { + url = "https://registry.npmjs.org/config-chain/-/config-chain-1.1.12.tgz"; + sha512 = "a1eOIcu8+7lUInge4Rpf/n4Krkf3Dd9lqhljRzII1/Zno/kRtUWnznPO3jOKBmTEktkt3fkxisUcivoj0ebzoA=="; }; }; "console-browserify-1.1.0" = { @@ -815,13 +815,13 @@ let sha1 = "96edb9f2fdb01995822b263dd8aadab6748181bc"; }; }; - "es6-promise-4.2.4" = { + "es6-promise-4.2.5" = { name = "es6-promise"; packageName = "es6-promise"; - version = "4.2.4"; - src = fetchurl { - url = "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.4.tgz"; - sha512 = "/NdNZVJg+uZgtm9eS3O6lrOLYmQag2DjdEXuPaHlZ6RuVqgqaVZfgYCepEIKsLqwdQArOPtC3XzRLqGGfT8KQQ=="; + version = "4.2.5"; + src = fetchurl { + url = "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.5.tgz"; + sha512 = "n6wvpdE43VFtJq+lUDYDBFUwV8TZbuGXLV4D6wKafg13ldznKsyEvatubnmUe31zcvelSzOHF+XbaT+Bl9ObDg=="; }; }; "escape-string-regexp-1.0.5" = { @@ -1157,13 +1157,13 @@ let sha1 = "4a973f635b9190f715d10987d5c00fd2815ebe3d"; }; }; - "glob-7.1.2" = { + "glob-7.1.3" = { name = "glob"; packageName = "glob"; - version = "7.1.2"; - src = fetchurl { - url = "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz"; - sha512 = "MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ=="; + version = "7.1.3"; + src = fetchurl { + url = "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz"; + sha512 = "vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ=="; }; }; "globule-0.1.0" = { @@ -1706,13 +1706,13 @@ let sha1 = "fadd834b9683073da179b3eae6d9c0d15053f73e"; }; }; - "lodash-4.17.10" = { + "lodash-4.17.11" = { name = "lodash"; packageName = "lodash"; - version = "4.17.10"; - src = fetchurl { - url = "https://registry.npmjs.org/lodash/-/lodash-4.17.10.tgz"; - sha512 = "UejweD1pDoXu+AD825lWwp4ZGtSwgnpZxb3JDViD7StjQz+Nb/6l093lx4OQ0foGWNRoc19mWy7BzL+UAK2iVg=="; + version = "4.17.11"; + src = fetchurl { + url = "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz"; + sha512 = "cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg=="; }; }; "lru-cache-2.7.3" = { @@ -1733,22 +1733,22 @@ let sha512 = "x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg=="; }; }; - "mime-db-1.35.0" = { + "mime-db-1.36.0" = { name = "mime-db"; packageName = "mime-db"; - version = "1.35.0"; - src = fetchurl { - url = "https://registry.npmjs.org/mime-db/-/mime-db-1.35.0.tgz"; - sha512 = "JWT/IcCTsB0Io3AhWUMjRqucrHSPsSf2xKLaRldJVULioggvkJvggZ3VXNNSRkCddE6D+BUI4HEIZIA2OjwIvg=="; - }; - }; - "mime-types-2.1.19" = { + version = "1.36.0"; + src = fetchurl { + url = "https://registry.npmjs.org/mime-db/-/mime-db-1.36.0.tgz"; + sha512 = "L+xvyD9MkoYMXb1jAmzI/lWYAxAMCPvIBSWur0PZ5nOf5euahRLVqH//FKW9mWp2lkqUgYiXPgkzfMUFi4zVDw=="; + }; + }; + "mime-types-2.1.20" = { name = "mime-types"; packageName = "mime-types"; - version = "2.1.19"; - src = fetchurl { - url = "https://registry.npmjs.org/mime-types/-/mime-types-2.1.19.tgz"; - sha512 = "P1tKYHVSZ6uFo26mtnve4HQFE3koh1UWVkp8YUC+ESBHe945xWSoXuHHiGarDqcEZ+whpCDnlNw5LON0kLo+sw=="; + version = "2.1.20"; + src = fetchurl { + url = "https://registry.npmjs.org/mime-types/-/mime-types-2.1.20.tgz"; + sha512 = "HrkrPaP9vGuWbLK1B1FfgAkbqNjIuy4eHlIYnFi7kamZyLLrGlo2mpcx0bBmNpKqBtYtAfGbodDddIgddSJC2A=="; }; }; "minimatch-0.2.14" = { @@ -1787,22 +1787,22 @@ let sha1 = "857fcabfc3397d2625b8228262e86aa7a011b05d"; }; }; - "minipass-2.3.3" = { + "minipass-2.3.4" = { name = "minipass"; packageName = "minipass"; - version = "2.3.3"; - src = fetchurl { - url = "https://registry.npmjs.org/minipass/-/minipass-2.3.3.tgz"; - sha512 = "/jAn9/tEX4gnpyRATxgHEOV6xbcyxgT7iUnxo9Y3+OB0zX00TgKIv/2FZCf5brBbICcwbLqVv2ImjvWWrQMSYw=="; - }; - }; - "minizlib-1.1.0" = { + version = "2.3.4"; + src = fetchurl { + url = "https://registry.npmjs.org/minipass/-/minipass-2.3.4.tgz"; + sha512 = "mlouk1OHlaUE8Odt1drMtG1bAJA4ZA6B/ehysgV0LUIrDHdKgo1KorZq3pK0b/7Z7LJIQ12MNM6aC+Tn6lUZ5w=="; + }; + }; + "minizlib-1.1.1" = { name = "minizlib"; packageName = "minizlib"; - version = "1.1.0"; - src = fetchurl { - url = "https://registry.npmjs.org/minizlib/-/minizlib-1.1.0.tgz"; - sha512 = "4T6Ur/GctZ27nHfpt9THOdRZNgyJ9FZchYO1ceg5S8Q3DNLCKYy44nCZzgCJgcvx2UM8czmqak5BCxJMrq37lA=="; + version = "1.1.1"; + src = fetchurl { + url = "https://registry.npmjs.org/minizlib/-/minizlib-1.1.1.tgz"; + sha512 = "TrfjCjk4jLhcJyGMYymBH6oTXcWjYbUAXTHDbtnWHjZC25h0cdajHuPE1zxb4DVmu8crfh+HwH/WMuyLG0nHBg=="; }; }; "mkdirp-0.3.5" = { @@ -2336,13 +2336,13 @@ let sha1 = "300bc6e0e86374f7ba61068b5b1ecd57fc6532da"; }; }; - "semver-5.5.0" = { + "semver-5.5.1" = { name = "semver"; packageName = "semver"; - version = "5.5.0"; - src = fetchurl { - url = "https://registry.npmjs.org/semver/-/semver-5.5.0.tgz"; - sha512 = "4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA=="; + version = "5.5.1"; + src = fetchurl { + url = "https://registry.npmjs.org/semver/-/semver-5.5.1.tgz"; + sha512 = "PqpAxfrEhlSUWge8dwIp4tZnQ25DIOthpiaHNIthsjEFQD6EvqUKUDM7L8O2rShkFccYo1VjJR0coWfNkCubRw=="; }; }; "set-blocking-2.0.0" = { @@ -2435,22 +2435,22 @@ let sha512 = "UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="; }; }; - "spdx-correct-3.0.0" = { + "spdx-correct-3.0.2" = { name = "spdx-correct"; packageName = "spdx-correct"; - version = "3.0.0"; - src = fetchurl { - url = "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.0.0.tgz"; - sha512 = "N19o9z5cEyc8yQQPukRCZ9EUmb4HUpnrmaL/fxS2pBo2jbfcFRVuFZ/oFC+vZz0MNNk0h80iMn5/S6qGZOL5+g=="; - }; - }; - "spdx-exceptions-2.1.0" = { + version = "3.0.2"; + src = fetchurl { + url = "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.0.2.tgz"; + sha512 = "q9hedtzyXHr5S0A1vEPoK/7l8NpfkFYTq6iCY+Pno2ZbdZR6WexZFtqeVGkGxW3TEJMN914Z55EnAGMmenlIQQ=="; + }; + }; + "spdx-exceptions-2.2.0" = { name = "spdx-exceptions"; packageName = "spdx-exceptions"; - version = "2.1.0"; - src = fetchurl { - url = "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.1.0.tgz"; - sha512 = "4K1NsmrlCU1JJgUrtgEeTVyfx8VaYea9J9LvARxhbHtVtohPs/gFGG5yy49beySjlIMhhXZ4QqujIZEfS4l6Cg=="; + version = "2.2.0"; + src = fetchurl { + url = "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.2.0.tgz"; + sha512 = "2XQACfElKi9SlVb1CYadKDXvoajPgBVPn/gOQLrTvHdElaVhr7ZEbqJaRnJLVNeaI4cMEAgVCeBMKF6MWRDCRA=="; }; }; "spdx-expression-parse-3.0.0" = { @@ -2462,13 +2462,13 @@ let sha512 = "Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg=="; }; }; - "spdx-license-ids-3.0.0" = { + "spdx-license-ids-3.0.1" = { name = "spdx-license-ids"; packageName = "spdx-license-ids"; - version = "3.0.0"; - src = fetchurl { - url = "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.0.tgz"; - sha512 = "2+EPwgbnmOIl8HjGBXXMd9NAu02vLjOO1nWw4kmeRDFyHn+M/ETfHxQUK0oXg8ctgVnl9t3rosNVsZ1jG61nDA=="; + version = "3.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.1.tgz"; + sha512 = "TfOfPcYGBB5sDuPn3deByxPhmfegAhpDYKSOXZQN81Oyrrif8ZCodOLzK3AesELnCx03kikhyDwh0pfvvQvF8w=="; }; }; "split-1.0.1" = { @@ -2480,13 +2480,13 @@ let sha512 = "mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg=="; }; }; - "sshpk-1.14.2" = { + "sshpk-1.15.1" = { name = "sshpk"; packageName = "sshpk"; - version = "1.14.2"; - src = fetchurl { - url = "https://registry.npmjs.org/sshpk/-/sshpk-1.14.2.tgz"; - sha1 = "c6fc61648a3d9c4e764fd3fcdf4ea105e492ba98"; + version = "1.15.1"; + src = fetchurl { + url = "https://registry.npmjs.org/sshpk/-/sshpk-1.15.1.tgz"; + sha512 = "mSdgNUaidk+dRU5MhYtN9zebdzF2iG0cNPWy8HG+W8y+fT1JnSkh0fzzpjOa0L7P8i1Rscz38t0h4gPcKz43xA=="; }; }; "ssri-5.3.0" = { @@ -2507,6 +2507,15 @@ let sha1 = "547c70b347e8d32b4e108ea1a2a159e5fdde19c0"; }; }; + "sticky-sidebar-3.3.1" = { + name = "sticky-sidebar"; + packageName = "sticky-sidebar"; + version = "3.3.1"; + src = fetchurl { + url = "https://registry.npmjs.org/sticky-sidebar/-/sticky-sidebar-3.3.1.tgz"; + sha1 = "142bf6b64c2b416e4b707ebf8f09b8b5a5043877"; + }; + }; "string-width-1.0.2" = { name = "string-width"; packageName = "string-width"; @@ -2786,13 +2795,13 @@ let sha512 = "yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA=="; }; }; - "validate-npm-package-license-3.0.3" = { + "validate-npm-package-license-3.0.4" = { name = "validate-npm-package-license"; packageName = "validate-npm-package-license"; - version = "3.0.3"; - src = fetchurl { - url = "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.3.tgz"; - sha512 = "63ZOUnL4SIXj4L0NixR3L1lcjO38crAbgrTpl28t8jjrfuiOBL5Iygm+60qPs/KsZGzPNg6Smnc/oY16QTjF0g=="; + version = "3.0.4"; + src = fetchurl { + url = "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz"; + sha512 = "DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew=="; }; }; "validate-npm-package-name-3.0.0" = { @@ -2831,6 +2840,15 @@ let sha512 = "5skcWAUmySj6hkBdH6B6+3ddMjVQYH5Qy9QGbPmN8kVmLteXk+yVXg+yfk1nbX30EYakahLrr8iPcCxJQSCBeg=="; }; }; + "waypoints-4.0.1" = { + name = "waypoints"; + packageName = "waypoints"; + version = "4.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/waypoints/-/waypoints-4.0.1.tgz"; + sha1 = "09979a0573810b29627cba4366a284a062ec69c8"; + }; + }; "which-1.0.9" = { name = "which"; packageName = "which"; @@ -2858,13 +2876,13 @@ let sha512 = "QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA=="; }; }; - "winston-2.4.3" = { + "winston-2.4.4" = { name = "winston"; packageName = "winston"; - version = "2.4.3"; - src = fetchurl { - url = "https://registry.npmjs.org/winston/-/winston-2.4.3.tgz"; - sha512 = "GYKuysPz2pxYAVJD2NPsDLP5Z79SDEzPm9/j4tCjkF/n89iBNGBMJcR+dMUqxgPNgoSs6fVygPi+Vl2oxIpBuw=="; + version = "2.4.4"; + src = fetchurl { + url = "https://registry.npmjs.org/winston/-/winston-2.4.4.tgz"; + sha512 = "NBo2Pepn4hK4V01UfcWcDlmiVTs7VTB1h7bgnB0rgP146bYhMxX0ypCz3lBOfNxCO4Zuek7yeT+y/zM1OfMw4Q=="; }; }; "wordwrap-1.0.0" = { @@ -2920,10 +2938,10 @@ let src = ./..; dependencies = [ sources."@types/clone-0.1.30" - sources."@types/node-4.2.23" + sources."@types/node-4.9.0" (sources."@types/parse5-0.0.31" // { dependencies = [ - sources."@types/node-6.0.114" + sources."@types/node-6.0.118" ]; }) sources."abbrev-1.1.1" @@ -2944,12 +2962,12 @@ let }) sources."array-back-1.0.4" sources."asap-2.0.6" - sources."asn1-0.2.3" + sources."asn1-0.2.4" sources."assert-plus-0.2.0" sources."async-0.1.22" sources."asynckit-0.4.0" sources."aws-sign2-0.6.0" - sources."aws4-1.7.0" + sources."aws4-1.8.0" sources."babel-polyfill-6.26.0" (sources."babel-runtime-6.26.0" // { dependencies = [ @@ -2969,7 +2987,7 @@ let sources."chalk-1.1.3" (sources."cli-1.0.1" // { dependencies = [ - sources."glob-7.1.2" + sources."glob-7.1.3" sources."minimatch-3.0.4" ]; }) @@ -2979,12 +2997,12 @@ let sources."code-point-at-1.1.0" sources."coffee-script-1.3.3" sources."colors-0.6.2" - sources."combined-stream-1.0.6" + sources."combined-stream-1.0.7" sources."command-line-args-3.0.5" sources."command-line-usage-3.0.8" sources."concat-map-0.0.1" sources."concat-stream-1.6.2" - sources."config-chain-1.1.11" + sources."config-chain-1.1.12" sources."console-browserify-1.1.0" sources."console-control-strings-1.1.0" sources."core-js-2.5.7" @@ -3031,7 +3049,7 @@ let }) (sources."espree-3.5.4" // { dependencies = [ - sources."acorn-5.7.1" + sources."acorn-5.7.3" ]; }) sources."esprima-1.0.4" @@ -3112,7 +3130,7 @@ let (sources."grunt-contrib-less-1.4.1" // { dependencies = [ sources."async-2.6.1" - sources."lodash-4.17.10" + sources."lodash-4.17.11" ]; }) (sources."grunt-contrib-watch-0.6.1" // { @@ -3179,7 +3197,7 @@ let sources."jsbn-0.1.1" (sources."jshint-2.9.6" // { dependencies = [ - sources."lodash-4.17.10" + sources."lodash-4.17.11" sources."minimatch-3.0.4" ]; }) @@ -3209,12 +3227,12 @@ let sources."lodash-0.9.2" sources."lru-cache-2.7.3" sources."mime-1.6.0" - sources."mime-db-1.35.0" - sources."mime-types-2.1.19" + sources."mime-db-1.36.0" + sources."mime-types-2.1.20" sources."minimatch-0.2.14" sources."minimist-0.0.8" - sources."minipass-2.3.3" - sources."minizlib-1.1.0" + sources."minipass-2.3.4" + sources."minizlib-1.1.1" sources."mkdirp-0.5.1" sources."moment-2.22.2" sources."mousetrap-1.6.2" @@ -3260,7 +3278,7 @@ let sources."phantom-4.0.12" (sources."phantomjs-prebuilt-2.1.16" // { dependencies = [ - sources."es6-promise-4.2.4" + sources."es6-promise-4.2.5" sources."fs-extra-1.0.0" sources."graceful-fs-4.1.11" sources."jsonfile-2.4.0" @@ -3292,7 +3310,7 @@ let sources."safe-buffer-5.1.2" sources."safer-buffer-2.1.2" sources."select-1.1.2" - sources."semver-5.5.0" + sources."semver-5.5.1" sources."set-blocking-2.0.0" sources."shelljs-0.3.0" sources."sigmund-1.0.1" @@ -3301,18 +3319,19 @@ let sources."slide-1.1.6" sources."sntp-1.0.9" sources."source-map-0.3.0" - sources."spdx-correct-3.0.0" - sources."spdx-exceptions-2.1.0" + sources."spdx-correct-3.0.2" + sources."spdx-exceptions-2.2.0" sources."spdx-expression-parse-3.0.0" - sources."spdx-license-ids-3.0.0" + sources."spdx-license-ids-3.0.1" sources."split-1.0.1" - (sources."sshpk-1.14.2" // { + (sources."sshpk-1.15.1" // { dependencies = [ sources."assert-plus-1.0.0" ]; }) sources."ssri-5.3.0" sources."stack-trace-0.0.10" + sources."sticky-sidebar-3.3.1" sources."string-width-1.0.2" sources."string_decoder-1.1.1" sources."stringstream-0.0.6" @@ -3343,7 +3362,7 @@ let sources."unicode-5.2.0-0.7.5" sources."util-deprecate-1.0.2" sources."uuid-3.3.2" - sources."validate-npm-package-license-3.0.3" + sources."validate-npm-package-license-3.0.4" sources."validate-npm-package-name-3.0.0" (sources."verror-1.10.0" // { dependencies = [ @@ -3356,9 +3375,10 @@ let ]; }) sources."walk-2.3.14" + sources."waypoints-4.0.1" sources."which-1.0.9" sources."wide-align-1.1.3" - (sources."winston-2.4.3" // { + (sources."winston-2.4.4" // { dependencies = [ sources."async-1.0.0" sources."colors-1.0.3" diff --git a/rhodecode/apps/repository/tests/test_repo_commit_comments.py b/rhodecode/apps/repository/tests/test_repo_commit_comments.py --- a/rhodecode/apps/repository/tests/test_repo_commit_comments.py +++ b/rhodecode/apps/repository/tests/test_repo_commit_comments.py @@ -135,18 +135,18 @@ class TestRepoCommitCommentsView(TestCon if backend.alias == 'svn': response.mustcontain( '''data-f-path="vcs/commands/summary.py" ''' - '''id="a_c-300-ad05457a43f8"''' + '''data-anchor-id="c-300-ad05457a43f8"''' ) if backend.alias == 'git': response.mustcontain( '''data-f-path="vcs/backends/hg.py" ''' - '''id="a_c-883e775e89ea-9c390eb52cd6"''' + '''data-anchor-id="c-883e775e89ea-9c390eb52cd6"''' ) if backend.alias == 'hg': response.mustcontain( '''data-f-path="vcs/backends/hg.py" ''' - '''id="a_c-e58d85a3973b-9c390eb52cd6"''' + '''data-anchor-id="c-e58d85a3973b-9c390eb52cd6"''' ) assert Notification.query().count() == 1 diff --git a/rhodecode/apps/repository/tests/test_repo_compare.py b/rhodecode/apps/repository/tests/test_repo_compare.py --- a/rhodecode/apps/repository/tests/test_repo_compare.py +++ b/rhodecode/apps/repository/tests/test_repo_compare.py @@ -618,7 +618,7 @@ class ComparePage(AssertResponse): for filename, file_id in files: self.contains_one_anchor(file_id) diffblock = doc.cssselect('[data-f-path="%s"]' % filename) - assert len(diffblock) == 1 + assert len(diffblock) == 2 assert len(diffblock[0].cssselect('a[href="#%s"]' % file_id)) == 1 def contains_change_summary(self, files_changed, inserted, deleted): diff --git a/rhodecode/lib/diffs.py b/rhodecode/lib/diffs.py --- a/rhodecode/lib/diffs.py +++ b/rhodecode/lib/diffs.py @@ -1136,7 +1136,7 @@ class DiffLimitExceeded(Exception): # NOTE(marcink): if diffs.mako change, probably this # needs a bump to next version -CURRENT_DIFF_VERSION = 'v2' +CURRENT_DIFF_VERSION = 'v3' def _cleanup_cache_file(cached_diff_file): diff --git a/rhodecode/public/css/code-block.less b/rhodecode/public/css/code-block.less --- a/rhodecode/public/css/code-block.less +++ b/rhodecode/public/css/code-block.less @@ -668,7 +668,7 @@ input.filediff-collapse-state { .filediff-menu { display: none; } - margin: 10px 0 0 0; + } &+ .filediff { /* file diff is expanded */ @@ -690,10 +690,59 @@ input.filediff-collapse-state { } } } + +.filediffs .anchor { + display: block; + height: 40px; + margin-top: -40px; + visibility: hidden; +} + +.filediffs .anchor:nth-of-type(1) { + display: block; + height: 80px; + margin-top: -80px; + visibility: hidden; +} + .cs_files { clear: both; } +#diff-file-sticky{ + will-change: min-height; +} + +.sidebar__inner{ + transform: translate(0, 0); /* For browsers don't support translate3d. */ + transform: translate3d(0, 0, 0); + will-change: position, transform; + height: 60px; +} + +.fpath-placeholder { + clear: both; + visibility: hidden +} + +.is-affixed { + .sidebar_inner_shadow { + position: fixed; + top: 43px; + right: 0; + left: 0; + z-index: 28; + display: block; + height: 5px; + content: ""; + background: linear-gradient(rgba(0, 0, 0, 0.075), rgba(0, 0, 0, 0.001)) repeat-x 0 0; + border-top: 1px solid rgba(0, 0, 0, 0.15); + } + .fpath-placeholder { + visibility: visible !important; + } +} + .diffset-menu { margin-bottom: 20px; } diff --git a/rhodecode/public/js/src/rhodecode/comments.js b/rhodecode/public/js/src/rhodecode/comments.js --- a/rhodecode/public/js/src/rhodecode/comments.js +++ b/rhodecode/public/js/src/rhodecode/comments.js @@ -774,6 +774,13 @@ var CommentsController = function() { // re trigger the linkification of next/prev navigation linkifyComments($('.inline-comment-injected')); timeagoActivate(); + + if (window.Waypoint !== undefined) { + // potentially our comments change the active window size, so we + // notify waypint to re-paint + Waypoint.refreshAll() + } + commentForm.setActionButtonsDisabled(false); }; diff --git a/rhodecode/public/js/vendors/webcomponentsjs/webcomponents-lite.js b/rhodecode/public/js/vendors/webcomponentsjs/webcomponents-lite.js --- a/rhodecode/public/js/vendors/webcomponentsjs/webcomponents-lite.js +++ b/rhodecode/public/js/vendors/webcomponentsjs/webcomponents-lite.js @@ -16,32 +16,31 @@ subject to an additional IP rights grant Code distributed by Google as part of the polymer project is also subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt */ -'use strict';var p,aa="function"==typeof Object.defineProperties?Object.defineProperty:function(a,b,c){a!=Array.prototype&&a!=Object.prototype&&(a[b]=c.value)},ea="undefined"!=typeof window&&window===this?this:"undefined"!=typeof global&&null!=global?global:this;function ha(){ha=function(){};ea.Symbol||(ea.Symbol=ia)}var ia=function(){var a=0;return function(b){return"jscomp_symbol_"+(b||"")+a++}}(); -function ja(){ha();var a=ea.Symbol.iterator;a||(a=ea.Symbol.iterator=ea.Symbol("iterator"));"function"!=typeof Array.prototype[a]&&aa(Array.prototype,a,{configurable:!0,writable:!0,value:function(){return ka(this)}});ja=function(){}}function ka(a){var b=0;return la(function(){return b\x20\t\r\n\f]+)/i.exec(b)||["",""])[1].toLowerCase()];if(c)for(var d= -0;d"+b+"";V.body.innerHTML=b;for(a.C(V);this.content.firstChild;)k.call(this.content,this.content.firstChild);b=V.body;if(c)for(d=0;d"+this.innerHTML+""},set:function(a){if(this.parentNode){V.body.innerHTML=a;for(a=this.ownerDocument.createDocumentFragment();V.body.firstChild;)l.call(a, -V.body.firstChild);m.call(this.parentNode,a,this)}else throw Error("Failed to set the 'outerHTML' property on 'Element': This element has no parent node.");},configurable:!0})};T(a.prototype);da(a.prototype);a.C=function(c){c=b(c,"template");for(var d=0,e=c.length,f;d]/g,Lc=function(a){switch(a){case "&":return"&";case "<":return"<";case ">":return">";case '"':return""";case "\u00a0":return" "}};ca=function(a){for(var b={},c=0;c";break a;case Node.TEXT_NODE:g=g.data;g=k&&uf[k.localName]?g:g.replace(Kc,Lc); -break a;case Node.COMMENT_NODE:g="\x3c!--"+g.data+"--\x3e";break a;default:throw window.console.error(g),Error("not implemented");}}c+=g}return c}}if(c||rb){a.a=function(a,b){var c=f.call(a,!1);this.I&&this.I(c);b&&(l.call(c.content,f.call(a.content,!0)),tb(c.content,a.content));return c};var tb=function(c,d){if(d.querySelectorAll&&(d=b(d,"template"),0!==d.length)){c=b(c,"template");for(var e=0,f=c.length,h,g;e\x20\t\r\n\f]+)/i.exec(b)|| +["",""])[1].toLowerCase()];if(c)for(var d=0;d"+b+"";T.body.innerHTML=b;for(a.C(T);this.content.firstChild;)k.call(this.content,this.content.firstChild);b=T.body;if(c)for(d=0;d"+this.innerHTML+""},set:function(a){if(this.parentNode){T.body.innerHTML=a;for(a=this.ownerDocument.createDocumentFragment();T.body.firstChild;)l.call(a, +T.body.firstChild);m.call(this.parentNode,a,this)}else throw Error("Failed to set the 'outerHTML' property on 'Element': This element has no parent node.");},configurable:!0})};Q(a.prototype);aa(a.prototype);a.C=function(c){c=b(c,"template");for(var d=0,e=c.length,f;d]/g,zc=function(a){switch(a){case "&":return"&";case "<":return"<";case ">":return">";case '"':return""";case "\u00a0":return" "}};Z=function(a){for(var b={},c=0;c";break a;case Node.TEXT_NODE:g=g.data;g=k&&df[k.localName]?g:g.replace(yc,zc);break a; +case Node.COMMENT_NODE:g="\x3c!--"+g.data+"--\x3e";break a;default:throw window.console.error(g),Error("not implemented");}}c+=g}return c}}if(c||kb){a.a=function(a,b){var c=f.call(a,!1);this.H&&this.H(c);b&&(l.call(c.content,f.call(a.content,!0)),mb(c.content,a.content));return c};var mb=function(c,d){if(d.querySelectorAll&&(d=b(d,"template"),0!==d.length)){c=b(c,"template");for(var e=0,f=c.length,h,g;e]*)(rel=['|"]?stylesheet['|"]?[^>]*>)/g,D={Pa:function(a,b){a.href&&a.setAttribute("href",D.ba(a.getAttribute("href"),b));a.src&&a.setAttribute("src",D.ba(a.getAttribute("src"),b));if("style"===a.localName){var c=D.za(a.textContent,b,qb);a.textContent=D.za(c,b,rb)}},za:function(a,b,c){return a.replace(c, -function(a,c,d,e){a=d.replace(/["']/g,"");b&&(a=D.ba(a,b));return c+"'"+a+"'"+e})},ba:function(a,b){if(void 0===D.ha){D.ha=!1;try{var c=new URL("b","http://a");c.pathname="c%20d";D.ha="http://a/c%20d"===c.href}catch(Kc){}}if(D.ha)return(new URL(a,b)).href;c=D.Ha;c||(c=document.implementation.createHTMLDocument("temp"),D.Ha=c,c.ra=c.createElement("base"),c.head.appendChild(c.ra),c.qa=c.createElement("a"));c.ra.href=b;c.qa.href=a;return c.qa.href||a}},ca={async:!0,load:function(a,b,c){if(a)if(a.match(/^data:/)){a= -a.split(",");var d=a[1];d=-1e.status?b(d,a):c(d)};e.send()}else c("error: href must be specified")}},oa=/Trident/.test(navigator.userAgent)||/Edge\/\d./i.test(navigator.userAgent); -k.prototype.loadImports=function(a){var b=this;a=m(a,"link[rel=import]");n(a,function(a){return b.o(a)})};k.prototype.o=function(a){var b=this,c=a.href;if(void 0!==this.a[c]){var d=this.a[c];d&&d.__loaded&&(a.__import=d,this.i(a))}else this.b++,this.a[c]="pending",ca.load(c,function(a,d){a=b.Wa(a,d||c);b.a[c]=a;b.b--;b.loadImports(a);b.J()},function(){b.a[c]=null;b.b--;b.J()})};k.prototype.Wa=function(a,b){if(!a)return document.createDocumentFragment();oa&&(a=a.replace(V,function(a,b,c){return-1=== -a.indexOf("type=")?b+" type=import-disable "+c:a}));var c=document.createElement("template");c.innerHTML=a;if(c.content)a=c.content,l(a);else for(a=document.createDocumentFragment();c.firstChild;)a.appendChild(c.firstChild);if(c=a.querySelector("base"))b=D.ba(c.getAttribute("href"),b),c.removeAttribute("href");c=m(a,'link[rel=import],link[rel=stylesheet][href][type=import-disable],style:not([type]),link[rel=stylesheet][href]:not([type]),script:not([type]),script[type="application/javascript"],script[type="text/javascript"],script[type="module"]'); -var d=0;n(c,function(a){h(a);D.Pa(a,b);a.setAttribute("import-dependency","");if("script"===a.localName&&!a.src&&a.textContent){if("module"===a.type)throw Error("Inline module scripts are not supported in HTML Imports.");a.setAttribute("src","data:text/javascript;charset=utf-8,"+encodeURIComponent(a.textContent+("\n//# sourceURL="+b+(d?"-"+d:"")+".js\n")));a.textContent="";d++}});return a};k.prototype.J=function(){var a=this;if(!this.b){this.c.disconnect();this.flatten(document);var b=!1,c=!1,d=function(){c&& -b&&(a.loadImports(document),a.b||(a.c.observe(document.head,{childList:!0,subtree:!0}),a.Ta()))};this.Ya(function(){c=!0;d()});this.Xa(function(){b=!0;d()})}};k.prototype.flatten=function(a){var b=this;a=m(a,"link[rel=import]");n(a,function(a){var c=b.a[a.href];(a.__import=c)&&c.nodeType===Node.DOCUMENT_FRAGMENT_NODE&&(b.a[a.href]=a,a.readyState="loading",a.__import=a,b.flatten(c),a.appendChild(c))})};k.prototype.Xa=function(a){function b(e){if(e]*)(rel=['|"]?stylesheet['|"]?[^>]*>)/g,C={La:function(a,b){a.href&&a.setAttribute("href",C.Z(a.getAttribute("href"),b));a.src&&a.setAttribute("src",C.Z(a.getAttribute("src"),b));if("style"===a.localName){var c=C.ua(a.textContent,b,jb);a.textContent=C.ua(c,b,kb)}},ua:function(a,b,c){return a.replace(c, +function(a,c,d,e){a=d.replace(/["']/g,"");b&&(a=C.Z(a,b));return c+"'"+a+"'"+e})},Z:function(a,b){if(void 0===C.fa){C.fa=!1;try{var c=new URL("b","http://a");c.pathname="c%20d";C.fa="http://a/c%20d"===c.href}catch(yc){}}if(C.fa)return(new URL(a,b)).href;c=C.Ea;c||(c=document.implementation.createHTMLDocument("temp"),C.Ea=c,c.ma=c.createElement("base"),c.head.appendChild(c.ma),c.la=c.createElement("a"));c.ma.href=b;c.la.href=a;return c.la.href||a}},Z={async:!0,load:function(a,b,c){if(a)if(a.match(/^data:/)){a= +a.split(",");var d=a[1];d=-1e.status?b(d,a):c(d)};e.send()}else c("error: href must be specified")}},oa=/Trident/.test(navigator.userAgent)||/Edge\/\d./i.test(navigator.userAgent); +k.prototype.loadImports=function(a){var b=this;a=m(a,"link[rel=import]");p(a,function(a){return b.h(a)})};k.prototype.h=function(a){var b=this,c=a.href;if(void 0!==this.a[c]){var d=this.a[c];d&&d.__loaded&&(a.__import=d,this.f(a))}else this.b++,this.a[c]="pending",Z.load(c,function(a,d){a=b.Ra(a,d||c);b.a[c]=a;b.b--;b.loadImports(a);b.o()},function(){b.a[c]=null;b.b--;b.o()})};k.prototype.Ra=function(a,b){if(!a)return document.createDocumentFragment();oa&&(a=a.replace(T,function(a,b,c){return-1=== +a.indexOf("type=")?b+" type=import-disable "+c:a}));var c=document.createElement("template");c.innerHTML=a;if(c.content)a=c.content,l(a);else for(a=document.createDocumentFragment();c.firstChild;)a.appendChild(c.firstChild);if(c=a.querySelector("base"))b=C.Z(c.getAttribute("href"),b),c.removeAttribute("href");c=m(a,'link[rel=import],link[rel=stylesheet][href][type=import-disable],style:not([type]),link[rel=stylesheet][href]:not([type]),script:not([type]),script[type="application/javascript"],script[type="text/javascript"],script[type="module"]'); +var d=0;p(c,function(a){h(a);C.La(a,b);a.setAttribute("import-dependency","");if("script"===a.localName&&!a.src&&a.textContent){if("module"===a.type)throw Error("Inline module scripts are not supported in HTML Imports.");a.setAttribute("src","data:text/javascript;charset=utf-8,"+encodeURIComponent(a.textContent+("\n//# sourceURL="+b+(d?"-"+d:"")+".js\n")));a.textContent="";d++}});return a};k.prototype.o=function(){var a=this;if(!this.b){this.c.disconnect();this.flatten(document);var b=!1,c=!1,d=function(){c&& +b&&(a.loadImports(document),a.b||(a.c.observe(document.head,{childList:!0,subtree:!0}),a.ha()))};this.Ta(function(){c=!0;d()});this.Sa(function(){b=!0;d()})}};k.prototype.flatten=function(a){var b=this;a=m(a,"link[rel=import]");p(a,function(a){var c=b.a[a.href];(a.__import=c)&&c.nodeType===Node.DOCUMENT_FRAGMENT_NODE&&(b.a[a.href]=a,a.readyState="loading",a.__import=a,b.flatten(c),a.appendChild(c))})};k.prototype.Sa=function(a){function b(e){if(e]/g;function uc(a){switch(a){case "&":return"&";case "<":return"<";case ">":return">";case '"':return""";case "\u00a0":return" "}}function vc(a){for(var b={},c=0;c";break a;case Node.TEXT_NODE:g=g.data;g=k&&xc[k.localName]?g:g.replace(tc,uc);break a;case Node.COMMENT_NODE:g="\x3c!--"+g.data+"--\x3e";break a;default:throw window.console.error(g), -Error("not implemented");}}c+=g}return c};var B={},E=document.createTreeWalker(document,NodeFilter.SHOW_ALL,null,!1),F=document.createTreeWalker(document,NodeFilter.SHOW_ELEMENT,null,!1);function zc(a){var b=[];E.currentNode=a;for(a=E.firstChild();a;)b.push(a),a=E.nextSibling();return b}B.parentNode=function(a){E.currentNode=a;return E.parentNode()};B.firstChild=function(a){E.currentNode=a;return E.firstChild()};B.lastChild=function(a){E.currentNode=a;return E.lastChild()};B.previousSibling=function(a){E.currentNode=a;return E.previousSibling()}; -B.nextSibling=function(a){E.currentNode=a;return E.nextSibling()};B.childNodes=zc;B.parentElement=function(a){F.currentNode=a;return F.parentNode()};B.firstElementChild=function(a){F.currentNode=a;return F.firstChild()};B.lastElementChild=function(a){F.currentNode=a;return F.lastChild()};B.previousElementSibling=function(a){F.currentNode=a;return F.previousSibling()};B.nextElementSibling=function(a){F.currentNode=a;return F.nextSibling()}; -B.children=function(a){var b=[];F.currentNode=a;for(a=F.firstChild();a;)b.push(a),a=F.nextSibling();return Ob(b)};B.innerHTML=function(a){return yc(a,function(a){return zc(a)})};B.textContent=function(a){switch(a.nodeType){case Node.ELEMENT_NODE:case Node.DOCUMENT_FRAGMENT_NODE:a=document.createTreeWalker(a,NodeFilter.SHOW_TEXT,null,!1);for(var b="",c;c=a.nextNode();)b+=c.nodeValue;return b;default:return a.nodeValue}};var G={},Ac=y.w,Bc=[Node.prototype,Element.prototype,HTMLElement.prototype];function H(a){var b;a:{for(b=0;be.assignedNodes.length&&(e.Z=!0)}e.Z&&(e.Z=!1,Yd(this,c))}b=this.g;c=[];for(e=0;ec.indexOf(d))||c.push(d);for(b=0;b "+b}))}a=a.replace(Dg,function(a,b,c){return'[dir="'+c+'"] '+b+", "+b+'[dir="'+c+'"]'});return{value:a,Oa:b,stop:f}}function Bg(a,b){a=a.split(Eg);a[0]+=b;return a.join(Eg)} -function Ag(a,b){var c=a.match(Fg);return(c=c&&c[2].trim()||"")?c[0].match(Gg)?a.replace(Fg,function(a,c,f){return b+f}):c.split(Gg)[0]===b?c:Hg:a.replace(wg,b)}function Ig(a){a.selector===Jg&&(a.selector="html")}gg.prototype.c=function(a){return a.match(zg)?this.b(a,Kg):Bg(a.trim(),Kg)};ea.Object.defineProperties(gg.prototype,{a:{configurable:!0,enumerable:!0,get:function(){return"style-scope"}}}); -var ug=/:(nth[-\w]+)\(([^)]+)\)/,Kg=":not(.style-scope)",sg=",",xg=/(^|[\s>+~]+)((?:\[.+?\]|[^\s>+~=[])+)/g,Gg=/[[.:#*]/,wg=":host",Jg=":root",zg="::slotted",vg=new RegExp("^("+zg+")"),Fg=/(:host)(?:\(((?:\([^)(]*\)|[^)(]*)+?)\))/,Cg=/(?:::slotted)(?:\(((?:\([^)(]*\)|[^)(]*)+?)\))/,Dg=/(.*):dir\((?:(ltr|rtl))\)/,qg=".",Eg=":",kg="class",Hg="should_not_match",W=new gg;function Lg(a,b,c,d){this.B=a||null;this.b=b||null;this.oa=c||[];this.L=null;this.P=d||"";this.a=this.v=this.G=null}function X(a){return a?a.__styleInfo:null}function Mg(a,b){return a.__styleInfo=b}Lg.prototype.c=function(){return this.B};Lg.prototype._getStyleRules=Lg.prototype.c;function Ng(a){var b=this.matches||this.matchesSelector||this.mozMatchesSelector||this.msMatchesSelector||this.oMatchesSelector||this.webkitMatchesSelector;return b&&b.call(this,a)}var Og=navigator.userAgent.match("Trident");function Pg(){}function Qg(a){var b={},c=[],d=0;Yf(a,function(a){Rg(a);a.index=d++;a=a.m.cssText;for(var c;c=Sf.exec(a);){var e=c[1];":"!==c[2]&&(b[e]=!0)}},function(a){c.push(a)});a.b=c;a=[];for(var e in b)a.push(e);return a} -function Rg(a){if(!a.m){var b={},c={};Sg(a,c)&&(b.A=c,a.rules=null);b.cssText=a.parsedCssText.replace(Vf,"").replace(Qf,"");a.m=b}}function Sg(a,b){var c=a.m;if(c){if(c.A)return Object.assign(b,c.A),!0}else{c=a.parsedCssText;for(var d;a=Qf.exec(c);){d=(a[2]||a[3]).trim();if("inherit"!==d||"unset"!==d)b[a[1].trim()]=d;d=!0}return d}} -function Tg(a,b,c){b&&(b=0<=b.indexOf(";")?Ug(a,b,c):dg(b,function(b,e,f,h){if(!e)return b+h;(e=Tg(a,c[e],c))&&"initial"!==e?"apply-shim-inherit"===e&&(e="inherit"):e=Tg(a,c[f]||f,c)||f;return b+(e||"")+h}));return b&&b.trim()||""} -function Ug(a,b,c){b=b.split(";");for(var d=0,e,f;d *"===f||"html"===f,g=0===f.indexOf(":host")&&!h;"shady"===c&&(h=f===e+" > *."+e||-1!==f.indexOf("html"),g=!h&&0===f.indexOf(e));"shadow"===c&&(h=":host > *"===f||"html"===f,g=g&&!h);if(h||g)c=e,g&&(b.s||(b.s=rg(W,b,W.b,a?qg+a:"",e)),c=b.s||e),d({ab:c,Ua:g,ub:h})}} -function Xg(a,b){var c={},d={},e=b&&b.__cssBuild;Yf(b,function(b){Wg(a,b,e,function(e){Ng.call(a.lb||a,e.ab)&&(e.Ua?Sg(b,c):Sg(b,d))})},null,!0);return{$a:d,Sa:c}} -function Yg(a,b,c,d){var e=fg(b),f=pg(e.is,e.P),h=new RegExp("(?:^|[^.#[:])"+(b.extends?"\\"+f.slice(0,-1)+"\\]":f)+"($|[.:[\\s>+~])");e=X(b).B;var g=Zg(e,d);return ng(b,e,function(b){var e="";b.m||Rg(b);b.m.cssText&&(e=Ug(a,b.m.cssText,c));b.cssText=e;if(!S&&!$f(b)&&b.cssText){var k=e=b.cssText;null==b.wa&&(b.wa=Tf.test(e));if(b.wa)if(null==b.$){b.$=[];for(var n in g)k=g[n],k=k(e),e!==k&&(e=k,b.$.push(n))}else{for(n=0;n=l._useCount&&l.parentNode&&l.parentNode.removeChild(l));S?f.a?(f.a.textContent=e,d=f.a):e&&(d=ag(e,g,a.shadowRoot,f.b)):d?d.parentNode|| -(Og&&-1]/g;function Lb(a){switch(a){case "&":return"&";case "<":return"<";case ">":return">";case '"':return""";case "\u00a0":return" "}}function Mb(a){for(var b={},c=0;c";break a;case Node.TEXT_NODE:g=g.data;g=k&&Ob[k.localName]?g:g.replace(Kb,Lb);break a;case Node.COMMENT_NODE:g="\x3c!--"+g.data+"--\x3e";break a;default:throw window.console.error(g), +Error("not implemented");}}c+=g}return c};var A=document.createTreeWalker(document,NodeFilter.SHOW_ALL,null,!1),B=document.createTreeWalker(document,NodeFilter.SHOW_ELEMENT,null,!1);function Qb(a){var b=[];A.currentNode=a;for(a=A.firstChild();a;)b.push(a),a=A.nextSibling();return b} +var D={parentNode:function(a){A.currentNode=a;return A.parentNode()},firstChild:function(a){A.currentNode=a;return A.firstChild()},lastChild:function(a){A.currentNode=a;return A.lastChild()},previousSibling:function(a){A.currentNode=a;return A.previousSibling()},nextSibling:function(a){A.currentNode=a;return A.nextSibling()}};D.childNodes=Qb;D.parentElement=function(a){B.currentNode=a;return B.parentNode()};D.firstElementChild=function(a){B.currentNode=a;return B.firstChild()}; +D.lastElementChild=function(a){B.currentNode=a;return B.lastChild()};D.previousElementSibling=function(a){B.currentNode=a;return B.previousSibling()};D.nextElementSibling=function(a){B.currentNode=a;return B.nextSibling()};D.children=function(a){var b=[];B.currentNode=a;for(a=B.firstChild();a;)b.push(a),a=B.nextSibling();return bb(b)};D.innerHTML=function(a){return Pb(a,function(a){return Qb(a)})}; +D.textContent=function(a){switch(a.nodeType){case Node.ELEMENT_NODE:case Node.DOCUMENT_FRAGMENT_NODE:a=document.createTreeWalker(a,NodeFilter.SHOW_TEXT,null,!1);for(var b="",c;c=a.nextNode();)b+=c.nodeValue;return b;default:return a.nodeValue}};var Rb=w.w,Sb=[Node.prototype,Element.prototype,HTMLElement.prototype];function E(a){var b;a:{for(b=0;be.assignedNodes.length&&(e.W=!0)}e.W&&(e.W=!1,zd(this,c))}c=this.g;b=[];for(e=0;eb.indexOf(d))||b.push(d);for(c=0;c "+b}))}a=a.replace(mg,function(a,b,c){return'[dir="'+c+'"] '+b+", "+b+'[dir="'+c+'"]'});return{value:a,Ja:b,stop:f}}function kg(a,b){a=a.split(ng);a[0]+=b;return a.join(ng)} +function jg(a,b){var c=a.match(og);return(c=c&&c[2].trim()||"")?c[0].match(pg)?a.replace(og,function(a,c,f){return b+f}):c.split(pg)[0]===b?c:qg:a.replace(fg,b)}function rg(a){a.selector===sg&&(a.selector="html")}Nf.prototype.c=function(a){return a.match(fg)?"":a.match(ig)?this.b(a,tg):kg(a.trim(),tg)};q.Object.defineProperties(Nf.prototype,{a:{configurable:!0,enumerable:!0,get:function(){return"style-scope"}}}); +var ag=/:(nth[-\w]+)\(([^)]+)\)/,tg=":not(.style-scope)",Zf=",",gg=/(^|[\s>+~]+)((?:\[.+?\]|[^\s>+~=[])+)/g,pg=/[[.:#*]/,fg=":host",sg=":root",ig="::slotted",eg=new RegExp("^("+ig+")"),og=/(:host)(?:\(((?:\([^)(]*\)|[^)(]*)+?)\))/,lg=/(?:::slotted)(?:\(((?:\([^)(]*\)|[^)(]*)+?)\))/,mg=/(.*):dir\((?:(ltr|rtl))\)/,Xf=".",ng=":",Rf="class",qg="should_not_match",cg=/:(?:matches|any|-(?:webkit|moz)-any)/,U=new Nf;function ug(a,b,c,d,e){this.B=a||null;this.b=b||null;this.c=c||[];this.J=null;this.V=e||"";this.N=d||"";this.a=this.u=this.F=null}function V(a){return a?a.__styleInfo:null}function vg(a,b){return a.__styleInfo=b}ug.prototype.f=function(){return this.B};ug.prototype._getStyleRules=ug.prototype.f;function wg(a){var b=this.matches||this.matchesSelector||this.mozMatchesSelector||this.msMatchesSelector||this.oMatchesSelector||this.webkitMatchesSelector;return b&&b.call(this,a)}var xg=navigator.userAgent.match("Trident");function yg(){}function zg(a){var b={},c=[],d=0;Af(a,function(a){Ag(a);a.index=d++;a=a.l.cssText;for(var c;c=uf.exec(a);){var e=c[1];":"!==c[2]&&(b[e]=!0)}},function(a){c.push(a)});a.b=c;a=[];for(var e in b)a.push(e);return a} +function Ag(a){if(!a.l){var b={},c={};Bg(a,c)&&(b.A=c,a.rules=null);b.cssText=a.parsedCssText.replace(xf,"").replace(sf,"");a.l=b}}function Bg(a,b){var c=a.l;if(c){if(c.A)return Object.assign(b,c.A),!0}else{c=a.parsedCssText;for(var d;a=sf.exec(c);){d=(a[2]||a[3]).trim();if("inherit"!==d||"unset"!==d)b[a[1].trim()]=d;d=!0}return d}} +function Cg(a,b,c){b&&(b=0<=b.indexOf(";")?Dg(a,b,c):If(b,function(b,e,f,h){if(!e)return b+h;(e=Cg(a,c[e],c))&&"initial"!==e?"apply-shim-inherit"===e&&(e="inherit"):e=Cg(a,c[f]||f,c)||f;return b+(e||"")+h}));return b&&b.trim()||""} +function Dg(a,b,c){b=b.split(";");for(var d=0,e,f;d *"===f||"html"===f,g=0===f.indexOf(":host")&&!h;"shady"===c&&(h=f===e+" > *."+e||-1!==f.indexOf("html"),g=!h&&0===f.indexOf(e));if(h||g)c=e,g&&(b.m||(b.m=Yf(U,b,U.b,a?Xf+a:"",e)),c=b.m||e),d({ka:c,Pa:g,sb:h})}}function Gg(a,b,c){var d={},e={};Af(b,function(b){Fg(a,b,c,function(c){wg.call(a.jb||a,c.ka)&&(c.Pa?Bg(b,d):Bg(b,e))})},null,!0);return{Xa:e,Oa:d}} +function Hg(a,b,c,d){var e=Kf(b),f=Wf(e.is,e.N),h=new RegExp("(?:^|[^.#[:])"+(b.extends?"\\"+f.slice(0,-1)+"\\]":f)+"($|[.:[\\s>+~])"),g=V(b);e=g.B;g=g.V;var k=Ig(e,d);return Uf(b,e,function(b){var e="";b.l||Ag(b);b.l.cssText&&(e=Dg(a,b.l.cssText,c));b.cssText=e;if(!R&&!Cf(b)&&b.cssText){var g=e=b.cssText;null==b.ra&&(b.ra=vf.test(e));if(b.ra)if(null==b.X){b.X=[];for(var l in k)g=k[l],g=g(e),e!==g&&(e=g,b.X.push(l))}else{for(l=0;l=l._useCount&&l.parentNode&&l.parentNode.removeChild(l));R?e.a?(e.a.textContent=d,c=e.a):d&&(c=Df(d, +g,a.shadowRoot,e.b)):c?c.parentNode||(xg&&-1 coll %endif
+ ## initial value could be marked as False later on <% over_lines_changed_limit = False %> %for i, filediff in enumerate(diffset.files): @@ -153,20 +154,22 @@ collapse_all = len(diffset.files) > coll lines_changed = filediff.patch['stats']['added'] + filediff.patch['stats']['deleted'] over_lines_changed_limit = lines_changed > lines_changed_limit %> + ## anchor with support of sticky header +
- +
- + ${diff_menu(filediff, use_comments=use_comments)} - +
## new/deleted/empty content case % if not filediff.hunks: @@ -289,7 +292,7 @@ collapse_all = len(diffset.files) > coll display_state = '' %>
- +