Fix up rotate in Gallery pull request. #2364

This commit is contained in:
ccd0 2019-07-18 18:56:19 -07:00
parent 3409132961
commit dbe676eb36
3 changed files with 149 additions and 156 deletions

250
package-lock.json generated
View File

@ -9,10 +9,10 @@
"integrity": "sha512-w1YQaVGNC6t2UCPjEawK/vo/dG8OOrVtUmhBT1uJJYxbl5kU2Tj3v6LGqBcsysN1yhuCStJCCA3GqdvKY8sqXQ==", "integrity": "sha512-w1YQaVGNC6t2UCPjEawK/vo/dG8OOrVtUmhBT1uJJYxbl5kU2Tj3v6LGqBcsysN1yhuCStJCCA3GqdvKY8sqXQ==",
"dev": true, "dev": true,
"requires": { "requires": {
"fast-deep-equal": "^2.0.1", "fast-deep-equal": "2.0.1",
"fast-json-stable-stringify": "^2.0.0", "fast-json-stable-stringify": "2.0.0",
"json-schema-traverse": "^0.4.1", "json-schema-traverse": "0.4.1",
"uri-js": "^4.2.2" "uri-js": "4.2.2"
} }
}, },
"argparse": { "argparse": {
@ -21,7 +21,7 @@
"integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==",
"dev": true, "dev": true,
"requires": { "requires": {
"sprintf-js": "~1.0.2" "sprintf-js": "1.0.3"
} }
}, },
"asn1": { "asn1": {
@ -30,7 +30,7 @@
"integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==",
"dev": true, "dev": true,
"requires": { "requires": {
"safer-buffer": "~2.1.0" "safer-buffer": "2.1.2"
} }
}, },
"assert-plus": { "assert-plus": {
@ -69,7 +69,7 @@
"integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=",
"dev": true, "dev": true,
"requires": { "requires": {
"tweetnacl": "^0.14.3" "tweetnacl": "0.14.5"
} }
}, },
"brace-expansion": { "brace-expansion": {
@ -78,7 +78,7 @@
"integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
"dev": true, "dev": true,
"requires": { "requires": {
"balanced-match": "^1.0.0", "balanced-match": "1.0.0",
"concat-map": "0.0.1" "concat-map": "0.0.1"
} }
}, },
@ -100,7 +100,7 @@
"integrity": "sha512-4lqjRnG9MbqWpWgaQDORUB8jcTwEpWGGFWwTiVy00MMrYshV085uwqtHDNNLtHrnnB5U+rwtVV/sHAocm+CVNQ==", "integrity": "sha512-4lqjRnG9MbqWpWgaQDORUB8jcTwEpWGGFWwTiVy00MMrYshV085uwqtHDNNLtHrnnB5U+rwtVV/sHAocm+CVNQ==",
"dev": true, "dev": true,
"requires": { "requires": {
"got": "^6.3.0" "got": "6.7.1"
} }
}, },
"cli": { "cli": {
@ -110,7 +110,7 @@
"dev": true, "dev": true,
"requires": { "requires": {
"exit": "0.1.2", "exit": "0.1.2",
"glob": "^7.1.1" "glob": "7.1.4"
} }
}, },
"coffeescript": { "coffeescript": {
@ -125,7 +125,7 @@
"integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
"dev": true, "dev": true,
"requires": { "requires": {
"delayed-stream": "~1.0.0" "delayed-stream": "1.0.0"
} }
}, },
"concat-map": { "concat-map": {
@ -140,7 +140,7 @@
"integrity": "sha1-8CQcRXMKn8YyOyBtvzjtx0HQuxA=", "integrity": "sha1-8CQcRXMKn8YyOyBtvzjtx0HQuxA=",
"dev": true, "dev": true,
"requires": { "requires": {
"date-now": "^0.1.4" "date-now": "0.1.4"
} }
}, },
"core-util-is": { "core-util-is": {
@ -155,7 +155,7 @@
"integrity": "sha1-Br56vvlHo/FKMP1hBnHUAbyot7Y=", "integrity": "sha1-Br56vvlHo/FKMP1hBnHUAbyot7Y=",
"dev": true, "dev": true,
"requires": { "requires": {
"capture-stack-trace": "^1.0.0" "capture-stack-trace": "1.0.1"
} }
}, },
"dashdash": { "dashdash": {
@ -164,7 +164,7 @@
"integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=",
"dev": true, "dev": true,
"requires": { "requires": {
"assert-plus": "^1.0.0" "assert-plus": "1.0.0"
} }
}, },
"date-now": { "date-now": {
@ -185,8 +185,8 @@
"integrity": "sha512-l0IU0pPzLWSHBcieZbpOKgkIn3ts3vAh7ZuFyXNwJxJXk/c4Gwj9xaTJwIDVQCXawWD0qb3IzMGH5rglQaO0XA==", "integrity": "sha512-l0IU0pPzLWSHBcieZbpOKgkIn3ts3vAh7ZuFyXNwJxJXk/c4Gwj9xaTJwIDVQCXawWD0qb3IzMGH5rglQaO0XA==",
"dev": true, "dev": true,
"requires": { "requires": {
"domelementtype": "^1.3.0", "domelementtype": "1.3.1",
"entities": "^1.1.1" "entities": "1.1.2"
}, },
"dependencies": { "dependencies": {
"entities": { "entities": {
@ -209,7 +209,7 @@
"integrity": "sha1-LeWaCCLVAn+r/28DLCsloqir5zg=", "integrity": "sha1-LeWaCCLVAn+r/28DLCsloqir5zg=",
"dev": true, "dev": true,
"requires": { "requires": {
"domelementtype": "1" "domelementtype": "1.3.1"
} }
}, },
"domutils": { "domutils": {
@ -218,8 +218,8 @@
"integrity": "sha1-3NhIiib1Y9YQeeSMn3t+Mjc2gs8=", "integrity": "sha1-3NhIiib1Y9YQeeSMn3t+Mjc2gs8=",
"dev": true, "dev": true,
"requires": { "requires": {
"dom-serializer": "0", "dom-serializer": "0.1.1",
"domelementtype": "1" "domelementtype": "1.3.1"
} }
}, },
"duplexer3": { "duplexer3": {
@ -234,8 +234,8 @@
"integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=",
"dev": true, "dev": true,
"requires": { "requires": {
"jsbn": "~0.1.0", "jsbn": "0.1.1",
"safer-buffer": "^2.1.0" "safer-buffer": "2.1.2"
} }
}, },
"entities": { "entities": {
@ -298,9 +298,9 @@
"integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==",
"dev": true, "dev": true,
"requires": { "requires": {
"asynckit": "^0.4.0", "asynckit": "0.4.0",
"combined-stream": "^1.0.6", "combined-stream": "1.0.8",
"mime-types": "^2.1.12" "mime-types": "2.1.24"
} }
}, },
"fs.realpath": { "fs.realpath": {
@ -321,7 +321,7 @@
"integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=",
"dev": true, "dev": true,
"requires": { "requires": {
"assert-plus": "^1.0.0" "assert-plus": "1.0.0"
} }
}, },
"glob": { "glob": {
@ -330,12 +330,12 @@
"integrity": "sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A==", "integrity": "sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A==",
"dev": true, "dev": true,
"requires": { "requires": {
"fs.realpath": "^1.0.0", "fs.realpath": "1.0.0",
"inflight": "^1.0.4", "inflight": "1.0.6",
"inherits": "2", "inherits": "2.0.4",
"minimatch": "^3.0.4", "minimatch": "3.0.4",
"once": "^1.3.0", "once": "1.4.0",
"path-is-absolute": "^1.0.0" "path-is-absolute": "1.0.1"
} }
}, },
"got": { "got": {
@ -344,17 +344,17 @@
"integrity": "sha1-JAzQV4WpoY5WHcG0S0HHY+8ejbA=", "integrity": "sha1-JAzQV4WpoY5WHcG0S0HHY+8ejbA=",
"dev": true, "dev": true,
"requires": { "requires": {
"create-error-class": "^3.0.0", "create-error-class": "3.0.2",
"duplexer3": "^0.1.4", "duplexer3": "0.1.4",
"get-stream": "^3.0.0", "get-stream": "3.0.0",
"is-redirect": "^1.0.0", "is-redirect": "1.0.0",
"is-retry-allowed": "^1.0.0", "is-retry-allowed": "1.1.0",
"is-stream": "^1.0.0", "is-stream": "1.1.0",
"lowercase-keys": "^1.0.0", "lowercase-keys": "1.0.1",
"safe-buffer": "^5.0.1", "safe-buffer": "5.1.2",
"timed-out": "^4.0.0", "timed-out": "4.0.1",
"unzip-response": "^2.0.1", "unzip-response": "2.0.1",
"url-parse-lax": "^1.0.0" "url-parse-lax": "1.0.0"
} }
}, },
"har-schema": { "har-schema": {
@ -369,8 +369,8 @@
"integrity": "sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g==", "integrity": "sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g==",
"dev": true, "dev": true,
"requires": { "requires": {
"ajv": "^6.5.5", "ajv": "6.10.1",
"har-schema": "^2.0.0" "har-schema": "2.0.0"
} }
}, },
"htmlparser2": { "htmlparser2": {
@ -379,11 +379,11 @@
"integrity": "sha1-mWwosZFRaovoZQGn15dX5ccMEGg=", "integrity": "sha1-mWwosZFRaovoZQGn15dX5ccMEGg=",
"dev": true, "dev": true,
"requires": { "requires": {
"domelementtype": "1", "domelementtype": "1.3.1",
"domhandler": "2.3", "domhandler": "2.3.0",
"domutils": "1.5", "domutils": "1.5.1",
"entities": "1.0", "entities": "1.0.0",
"readable-stream": "1.1" "readable-stream": "1.1.14"
} }
}, },
"http-signature": { "http-signature": {
@ -392,9 +392,9 @@
"integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=",
"dev": true, "dev": true,
"requires": { "requires": {
"assert-plus": "^1.0.0", "assert-plus": "1.0.0",
"jsprim": "^1.2.2", "jsprim": "1.4.1",
"sshpk": "^1.7.0" "sshpk": "1.16.1"
} }
}, },
"immediate": { "immediate": {
@ -409,8 +409,8 @@
"integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
"dev": true, "dev": true,
"requires": { "requires": {
"once": "^1.3.0", "once": "1.4.0",
"wrappy": "1" "wrappy": "1.0.2"
} }
}, },
"inherits": { "inherits": {
@ -467,14 +467,14 @@
"integrity": "sha512-e7KZgCSXMJxznE/4WULzybCMNXNAd/bf5TSrvVEq78Q/K8ZwFpmBqQeDtNiHc3l49nV4E/+YeHU/JZjSUIrLAA==", "integrity": "sha512-e7KZgCSXMJxznE/4WULzybCMNXNAd/bf5TSrvVEq78Q/K8ZwFpmBqQeDtNiHc3l49nV4E/+YeHU/JZjSUIrLAA==",
"dev": true, "dev": true,
"requires": { "requires": {
"cli": "~1.0.0", "cli": "1.0.1",
"console-browserify": "1.1.x", "console-browserify": "1.1.0",
"exit": "0.1.x", "exit": "0.1.2",
"htmlparser2": "3.8.x", "htmlparser2": "3.8.3",
"lodash": "~4.17.11", "lodash": "4.17.14",
"minimatch": "~3.0.2", "minimatch": "3.0.4",
"shelljs": "0.3.x", "shelljs": "0.3.0",
"strip-json-comments": "1.0.x" "strip-json-comments": "1.0.4"
} }
}, },
"json-schema": { "json-schema": {
@ -513,10 +513,10 @@
"integrity": "sha512-NmKajvAFQpbg3taXQXr/ccS2wcucR1AZ+NtyWp2Nq7HHVsXhcJFR8p0Baf32C2yVvBylFWVeKf+WI2AnvlPhpA==", "integrity": "sha512-NmKajvAFQpbg3taXQXr/ccS2wcucR1AZ+NtyWp2Nq7HHVsXhcJFR8p0Baf32C2yVvBylFWVeKf+WI2AnvlPhpA==",
"dev": true, "dev": true,
"requires": { "requires": {
"lie": "~3.3.0", "lie": "3.3.0",
"pako": "~1.0.2", "pako": "1.0.10",
"readable-stream": "~2.3.6", "readable-stream": "2.3.6",
"set-immediate-shim": "~1.0.1" "set-immediate-shim": "1.0.1"
}, },
"dependencies": { "dependencies": {
"isarray": { "isarray": {
@ -531,13 +531,13 @@
"integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==",
"dev": true, "dev": true,
"requires": { "requires": {
"core-util-is": "~1.0.0", "core-util-is": "1.0.2",
"inherits": "~2.0.3", "inherits": "2.0.4",
"isarray": "~1.0.0", "isarray": "1.0.0",
"process-nextick-args": "~2.0.0", "process-nextick-args": "2.0.1",
"safe-buffer": "~5.1.1", "safe-buffer": "5.1.2",
"string_decoder": "~1.1.1", "string_decoder": "1.1.1",
"util-deprecate": "~1.0.1" "util-deprecate": "1.0.2"
} }
}, },
"string_decoder": { "string_decoder": {
@ -546,7 +546,7 @@
"integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
"dev": true, "dev": true,
"requires": { "requires": {
"safe-buffer": "~5.1.0" "safe-buffer": "5.1.2"
} }
} }
} }
@ -557,7 +557,7 @@
"integrity": "sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==", "integrity": "sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==",
"dev": true, "dev": true,
"requires": { "requires": {
"immediate": "~3.0.5" "immediate": "3.0.6"
} }
}, },
"linkify-it": { "linkify-it": {
@ -566,7 +566,7 @@
"integrity": "sha512-4REs8/062kV2DSHxNfq5183zrqXMl7WP0WzABH9IeJI+NLm429FgE1PDecltYfnOoFDFlZGh2T8PfZn0r+GTRg==", "integrity": "sha512-4REs8/062kV2DSHxNfq5183zrqXMl7WP0WzABH9IeJI+NLm429FgE1PDecltYfnOoFDFlZGh2T8PfZn0r+GTRg==",
"dev": true, "dev": true,
"requires": { "requires": {
"uc.micro": "^1.0.1" "uc.micro": "1.0.6"
} }
}, },
"lodash": { "lodash": {
@ -587,8 +587,8 @@
"integrity": "sha512-84vYFxIkmidUiFxidA/KjjH9pAycqW+h980j7Fuz5qxRtO9pgB7MDFTdys1N7A5mcucRiDyEq4fusljItR1T/A==", "integrity": "sha512-84vYFxIkmidUiFxidA/KjjH9pAycqW+h980j7Fuz5qxRtO9pgB7MDFTdys1N7A5mcucRiDyEq4fusljItR1T/A==",
"dev": true, "dev": true,
"requires": { "requires": {
"lodash._reinterpolate": "^3.0.0", "lodash._reinterpolate": "3.0.0",
"lodash.templatesettings": "^4.0.0" "lodash.templatesettings": "4.2.0"
} }
}, },
"lodash.templatesettings": { "lodash.templatesettings": {
@ -597,7 +597,7 @@
"integrity": "sha512-stgLz+i3Aa9mZgnjr/O+v9ruKZsPsndy7qPZOchbqk2cnTU1ZaldKK+v7m54WoKIyxiuMZTKT2H81F8BeAc3ZQ==", "integrity": "sha512-stgLz+i3Aa9mZgnjr/O+v9ruKZsPsndy7qPZOchbqk2cnTU1ZaldKK+v7m54WoKIyxiuMZTKT2H81F8BeAc3ZQ==",
"dev": true, "dev": true,
"requires": { "requires": {
"lodash._reinterpolate": "^3.0.0" "lodash._reinterpolate": "3.0.0"
} }
}, },
"lowercase-keys": { "lowercase-keys": {
@ -612,11 +612,11 @@
"integrity": "sha512-bUVTYGt/K/mYr3HlE+PBe6TOTyWghcpSZqOD9t+NFRlwJMhp9Kp6WQ8fJ26I6v1Xo71UmPYt1S4Hc9Lq8GZx2Q==", "integrity": "sha512-bUVTYGt/K/mYr3HlE+PBe6TOTyWghcpSZqOD9t+NFRlwJMhp9Kp6WQ8fJ26I6v1Xo71UmPYt1S4Hc9Lq8GZx2Q==",
"dev": true, "dev": true,
"requires": { "requires": {
"argparse": "^1.0.7", "argparse": "1.0.10",
"entities": "~1.1.1", "entities": "1.1.2",
"linkify-it": "^2.0.0", "linkify-it": "2.1.0",
"mdurl": "^1.0.1", "mdurl": "1.0.1",
"uc.micro": "^1.0.5" "uc.micro": "1.0.6"
}, },
"dependencies": { "dependencies": {
"entities": { "entities": {
@ -660,7 +660,7 @@
"integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
"dev": true, "dev": true,
"requires": { "requires": {
"brace-expansion": "^1.1.7" "brace-expansion": "1.1.11"
} }
}, },
"oauth-sign": { "oauth-sign": {
@ -675,7 +675,7 @@
"integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
"dev": true, "dev": true,
"requires": { "requires": {
"wrappy": "1" "wrappy": "1.0.2"
} }
}, },
"pako": { "pako": {
@ -732,10 +732,10 @@
"integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=",
"dev": true, "dev": true,
"requires": { "requires": {
"core-util-is": "~1.0.0", "core-util-is": "1.0.2",
"inherits": "~2.0.1", "inherits": "2.0.4",
"isarray": "0.0.1", "isarray": "0.0.1",
"string_decoder": "~0.10.x" "string_decoder": "0.10.31"
} }
}, },
"request": { "request": {
@ -744,26 +744,26 @@
"integrity": "sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==", "integrity": "sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==",
"dev": true, "dev": true,
"requires": { "requires": {
"aws-sign2": "~0.7.0", "aws-sign2": "0.7.0",
"aws4": "^1.8.0", "aws4": "1.8.0",
"caseless": "~0.12.0", "caseless": "0.12.0",
"combined-stream": "~1.0.6", "combined-stream": "1.0.8",
"extend": "~3.0.2", "extend": "3.0.2",
"forever-agent": "~0.6.1", "forever-agent": "0.6.1",
"form-data": "~2.3.2", "form-data": "2.3.3",
"har-validator": "~5.1.0", "har-validator": "5.1.3",
"http-signature": "~1.2.0", "http-signature": "1.2.0",
"is-typedarray": "~1.0.0", "is-typedarray": "1.0.0",
"isstream": "~0.1.2", "isstream": "0.1.2",
"json-stringify-safe": "~5.0.1", "json-stringify-safe": "5.0.1",
"mime-types": "~2.1.19", "mime-types": "2.1.24",
"oauth-sign": "~0.9.0", "oauth-sign": "0.9.0",
"performance-now": "^2.1.0", "performance-now": "2.1.0",
"qs": "~6.5.2", "qs": "6.5.2",
"safe-buffer": "^5.1.2", "safe-buffer": "5.1.2",
"tough-cookie": "~2.4.3", "tough-cookie": "2.4.3",
"tunnel-agent": "^0.6.0", "tunnel-agent": "0.6.0",
"uuid": "^3.3.2" "uuid": "3.3.2"
} }
}, },
"safe-buffer": { "safe-buffer": {
@ -802,15 +802,15 @@
"integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==", "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==",
"dev": true, "dev": true,
"requires": { "requires": {
"asn1": "~0.2.3", "asn1": "0.2.4",
"assert-plus": "^1.0.0", "assert-plus": "1.0.0",
"bcrypt-pbkdf": "^1.0.0", "bcrypt-pbkdf": "1.0.2",
"dashdash": "^1.12.0", "dashdash": "1.14.1",
"ecc-jsbn": "~0.1.1", "ecc-jsbn": "0.1.2",
"getpass": "^0.1.1", "getpass": "0.1.7",
"jsbn": "~0.1.0", "jsbn": "0.1.1",
"safer-buffer": "^2.0.2", "safer-buffer": "2.1.2",
"tweetnacl": "~0.14.0" "tweetnacl": "0.14.5"
} }
}, },
"string_decoder": { "string_decoder": {
@ -837,8 +837,8 @@
"integrity": "sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==", "integrity": "sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==",
"dev": true, "dev": true,
"requires": { "requires": {
"psl": "^1.1.24", "psl": "1.2.0",
"punycode": "^1.4.1" "punycode": "1.4.1"
}, },
"dependencies": { "dependencies": {
"punycode": { "punycode": {
@ -855,7 +855,7 @@
"integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=",
"dev": true, "dev": true,
"requires": { "requires": {
"safe-buffer": "^5.0.1" "safe-buffer": "5.1.2"
} }
}, },
"tweetnacl": { "tweetnacl": {
@ -882,7 +882,7 @@
"integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==", "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==",
"dev": true, "dev": true,
"requires": { "requires": {
"punycode": "^2.1.0" "punycode": "2.1.1"
} }
}, },
"url-parse-lax": { "url-parse-lax": {
@ -891,7 +891,7 @@
"integrity": "sha1-evjzA2Rem9eaJy56FKxovAYJ2nM=", "integrity": "sha1-evjzA2Rem9eaJy56FKxovAYJ2nM=",
"dev": true, "dev": true,
"requires": { "requires": {
"prepend-http": "^1.0.1" "prepend-http": "1.0.4"
} }
}, },
"util-deprecate": { "util-deprecate": {
@ -912,9 +912,9 @@
"integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=",
"dev": true, "dev": true,
"requires": { "requires": {
"assert-plus": "^1.0.0", "assert-plus": "1.0.0",
"core-util-is": "1.0.2", "core-util-is": "1.0.2",
"extsprintf": "^1.2.0" "extsprintf": "1.3.0"
} }
}, },
"wrappy": { "wrappy": {

View File

@ -306,37 +306,15 @@ Gallery =
$.rmClass Gallery.nodes.buttons, 'gal-playing' $.rmClass Gallery.nodes.buttons, 'gal-playing'
Gallery.slideshow = false Gallery.slideshow = false
rotateLeft: $.debounce 100, -> rotateLeft: -> Gallery.cb.rotate 270
{current, frame} = Gallery.nodes rotateRight: -> Gallery.cb.rotate 90
{style, dataRotate} = current
dataRotate = 0 if (!dataRotate || dataRotate <= -360)
style.transform = 'rotate(' + (dataRotate - 90) + 'deg)'
current.dataRotate = dataRotate - 90
if (current.dataRotate == 90 || current.dataRotate == 270)
dim = g.posts[current.dataset.post]?.file.dimensions
[width, height] = dim.split 'x'
if (parseInt(width) > parseInt(height))
style.width = Math.min(doc.clientHeight - 25 / (width / height)) + 'px'
else
style.width = ''
else
style.width = ''
rotateRight: $.debounce 100, -> rotate: $.debounce 100, (delta) ->
{current, frame} = Gallery.nodes {current} = Gallery.nodes
{style, dataRotate} = current return if current.nodeName is 'IFRAME'
dataRotate = 0 if (!dataRotate || dataRotate >= 360) current.dataRotate = ((current.dataRotate or 0) + delta) % 360
style.transform = 'rotate(' + (dataRotate + 90) + 'deg)' current.style.transform = "rotate(#{current.dataRotate}deg)"
current.dataRotate = dataRotate + 90 Gallery.cb.setHeight()
if (current.dataRotate == 90 || current.dataRotate == 270)
dim = g.posts[current.dataset.post]?.file.dimensions
[width, height] = dim.split 'x'
if (parseInt(width) > parseInt(height))
style.width = Math.min(doc.clientHeight - 25 / (width / height)) + 'px'
else
style.width = ''
else
style.width = ''
close: -> close: ->
$.off Gallery.nodes.current, 'error', Gallery.error $.off Gallery.nodes.current, 'error', Gallery.error
@ -362,14 +340,27 @@ Gallery =
setHeight: $.debounce 100, -> setHeight: $.debounce 100, ->
{current, frame} = Gallery.nodes {current, frame} = Gallery.nodes
{style} = current {style} = current
if Conf['Stretch to Fit'] and (dim = g.posts[current.dataset.post]?.file.dimensions) if Conf['Stretch to Fit'] and (dim = g.posts[current.dataset.post]?.file.dimensions)
[width, height] = dim.split 'x' [width, height] = dim.split 'x'
minHeight = Math.min(doc.clientHeight - 25, height / width * frame.clientWidth) containerWidth = frame.clientWidth
containerHeight = doc.clientHeight - 25
if (current.dataRotate or 0) % 180 is 90
[containerWidth, containerHeight] = [containerHeight, containerWidth]
minHeight = Math.min(containerHeight, height / width * containerWidth)
style.minHeight = minHeight + 'px' style.minHeight = minHeight + 'px'
style.minWidth = (width / height * minHeight) + 'px' style.minWidth = (width / height * minHeight) + 'px'
else else
style.minHeight = style.minWidth = '' style.minHeight = style.minWidth = ''
if (current.dataRotate or 0) % 180 is 90
style.maxWidth = if Conf['Fit Height'] then "#{doc.clientHeight - 25}px" else 'none'
style.maxHeight = if Conf['Fit Width'] then "#{frame.clientWidth}px" else 'none'
margin = (current.clientWidth - current.clientHeight)/2
style.margin = "#{margin}px #{-margin}px"
else
style.maxWidth = style.maxHeight = style.margin = ''
setDelay: -> Gallery.delay = +@value setDelay: -> Gallery.delay = +@value
menu: menu:

View File

@ -2276,6 +2276,8 @@ a:only-of-type > .remove {
overflow-x: scroll !important; overflow-x: scroll !important;
} }
.gal-image a { .gal-image a {
display: -webkit-flex;
display: flex;
margin: auto; margin: auto;
line-height: 0; line-height: 0;
max-width: 100%; max-width: 100%;