- npm: Update devDeps
- Fix: Enforce stylesheet ordering sequence - Fix: Ensure SVG-edit hidden until stylesheets loaded - Fix: Avoid abandoning stylesheet loading if one load failsmaster
parent
83e3e66ddc
commit
a353d6fc89
|
@ -1,6 +1,7 @@
|
|||
function loadStylesheets(stylesheets, {
|
||||
before: beforeDefault, after: afterDefault, favicon: faviconDefault,
|
||||
canvas: canvasDefault, image: imageDefault = true
|
||||
canvas: canvasDefault, image: imageDefault = true,
|
||||
acceptErrors
|
||||
} = {}) {
|
||||
stylesheets = Array.isArray(stylesheets) ? stylesheets : [stylesheets];
|
||||
|
||||
|
@ -28,6 +29,11 @@ function loadStylesheets(stylesheets, {
|
|||
|
||||
const link = document.createElement('link');
|
||||
return new Promise((resolve, reject) => {
|
||||
if (acceptErrors) {
|
||||
reject = typeof acceptErrors === 'function' ? error => {
|
||||
acceptErrors({ error, stylesheetURL, options, resolve, reject });
|
||||
} : resolve;
|
||||
}
|
||||
if (stylesheetURL.endsWith('.css')) {
|
||||
favicon = false;
|
||||
} else if (stylesheetURL.endsWith('.ico')) {
|
||||
|
|
|
@ -38,6 +38,8 @@
|
|||
<title>SVG-edit</title>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div id="svg_container" style="visibility: hidden;">
|
||||
<div id="svg_editor">
|
||||
<div id="rulers">
|
||||
<div id="ruler_corner"></div>
|
||||
|
@ -762,5 +764,7 @@
|
|||
<li><a href="#merge_down">Merge Down</a></li>
|
||||
<li><a href="#merge_all">Merge All</a></li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
|
|
|
@ -39,6 +39,8 @@
|
|||
<title>SVG-edit</title>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div id="svg_container" style="visibility: hidden;">
|
||||
<div id="svg_editor">
|
||||
<div id="rulers">
|
||||
<div id="ruler_corner"></div>
|
||||
|
@ -763,5 +765,7 @@
|
|||
<li><a href="#merge_down">Merge Down</a></li>
|
||||
<li><a href="#merge_all">Merge All</a></li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
|
|
|
@ -1013,7 +1013,28 @@ editor.init = function () {
|
|||
}
|
||||
});
|
||||
|
||||
let stylesheets = $.loadingStylesheets;
|
||||
function getStylesheetPriority (stylesheet) {
|
||||
switch (stylesheet) {
|
||||
case 'jgraduate/css/jPicker.css':
|
||||
return 1;
|
||||
case 'jgraduate/css/jgraduate.css':
|
||||
return 2;
|
||||
case 'svg-editor.css':
|
||||
return 3;
|
||||
case 'spinbtn/JQuerySpinBtn.css':
|
||||
return 4;
|
||||
default:
|
||||
return Infinity;
|
||||
}
|
||||
}
|
||||
let stylesheets = $.loadingStylesheets.sort((a, b) => {
|
||||
const priorityA = getStylesheetPriority(a);
|
||||
const priorityB = getStylesheetPriority(b);
|
||||
if (priorityA === priorityB) {
|
||||
return 0;
|
||||
}
|
||||
return priorityA > priorityB;
|
||||
});
|
||||
if (curConfig.stylesheets.length) {
|
||||
// Ensure a copy with unique items
|
||||
stylesheets = [...new Set(curConfig.stylesheets)];
|
||||
|
@ -1022,7 +1043,14 @@ editor.init = function () {
|
|||
stylesheets.splice(idx, 1, ...$.loadingStylesheets);
|
||||
}
|
||||
}
|
||||
loadStylesheets(stylesheets).then(() => {
|
||||
loadStylesheets(stylesheets, {acceptErrors: ({stylesheetURL, reject, resolve}) => {
|
||||
if ($.loadingStylesheets.includes(stylesheetURL)) {
|
||||
reject(new Error(`Missing expected stylesheet: ${stylesheetURL}`));
|
||||
return;
|
||||
}
|
||||
resolve();
|
||||
}}).then(() => {
|
||||
$('#svg_container')[0].style.visibility = 'visible';
|
||||
editor.runCallbacks();
|
||||
|
||||
setTimeout(function () {
|
||||
|
|
|
@ -2099,9 +2099,9 @@
|
|||
}
|
||||
},
|
||||
"eslint-plugin-promise": {
|
||||
"version": "3.7.0",
|
||||
"resolved": "https://registry.npmjs.org/eslint-plugin-promise/-/eslint-plugin-promise-3.7.0.tgz",
|
||||
"integrity": "sha512-2WO+ZFh7vxUKRfR0cOIMrWgYKdR6S1AlOezw6pC52B6oYpd5WFghN+QHxvrRdZMtbo8h3dfUZ2o1rWb0UPbKtg==",
|
||||
"version": "3.8.0",
|
||||
"resolved": "https://registry.npmjs.org/eslint-plugin-promise/-/eslint-plugin-promise-3.8.0.tgz",
|
||||
"integrity": "sha512-JiFL9UFR15NKpHyGii1ZcvmtIqa3UTwiDAGb8atSffe43qJ3+1czVGN6UtkklpcJ2DVnqvTMzEKRaJdBkAL2aQ==",
|
||||
"dev": true
|
||||
},
|
||||
"eslint-plugin-qunit": {
|
||||
|
@ -4169,9 +4169,9 @@
|
|||
}
|
||||
},
|
||||
"load-stylesheets": {
|
||||
"version": "0.4.0",
|
||||
"resolved": "https://registry.npmjs.org/load-stylesheets/-/load-stylesheets-0.4.0.tgz",
|
||||
"integrity": "sha512-TdQ1o1VoEeWHroccgJiQrH9q/ospM3gjEEJRgmYSzvtmdNDMeaKHMJGbrMh2XIIvBvST79e9ZZq4BXIjO6V/bw==",
|
||||
"version": "0.5.0",
|
||||
"resolved": "https://registry.npmjs.org/load-stylesheets/-/load-stylesheets-0.5.0.tgz",
|
||||
"integrity": "sha512-ij2m0dWH8BUPDgfzAJEyFjrfAlLUDg7Xme8okc7ruijjzBpNa0Eh+SzjdbxYtKW5hj+hid+otXCibUDYqz+NRA==",
|
||||
"dev": true
|
||||
},
|
||||
"locate-path": {
|
||||
|
@ -5369,9 +5369,9 @@
|
|||
}
|
||||
},
|
||||
"rollup": {
|
||||
"version": "0.59.2",
|
||||
"resolved": "https://registry.npmjs.org/rollup/-/rollup-0.59.2.tgz",
|
||||
"integrity": "sha512-lu+yLa4xXMccYCKCQLIcGp4Rw2ZefFvJJUjuGQuFhZpCtggwe4SI0RYq2mV9/YDwYFXBYB7z3HrSxq1tSnzjkw==",
|
||||
"version": "0.59.4",
|
||||
"resolved": "https://registry.npmjs.org/rollup/-/rollup-0.59.4.tgz",
|
||||
"integrity": "sha512-ISiMqq/aJa+57QxX2MRcvLESHdJ7wSavmr6U1euMr+6UgFe6KM+3QANrYy8LQofwhTC1I7BcAdlLnDiaODs1BA==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@types/estree": "0.0.39",
|
||||
|
@ -5751,9 +5751,9 @@
|
|||
}
|
||||
},
|
||||
"sinon-test": {
|
||||
"version": "2.1.3",
|
||||
"resolved": "https://registry.npmjs.org/sinon-test/-/sinon-test-2.1.3.tgz",
|
||||
"integrity": "sha512-8hGEAOj5maRRDhcWv81uAOmSZQwQXd+ymvB3h5NnwYDOQYRx1CFE/LORYI7T4mDgNpUJJ30ruu1pjN3+k34Vsw==",
|
||||
"version": "2.2.0",
|
||||
"resolved": "https://registry.npmjs.org/sinon-test/-/sinon-test-2.2.0.tgz",
|
||||
"integrity": "sha512-CWHb3fDDJZ9844ZwP3mWRw4XFdbyYyqhLHN+HegYtBwhMjeDgHA8/+YbN28A3zjgx1icHy1tMP/HCvQXptd3iw==",
|
||||
"dev": true
|
||||
},
|
||||
"slash": {
|
||||
|
|
|
@ -54,15 +54,15 @@
|
|||
"eslint-config-standard": "11.0.0",
|
||||
"eslint-plugin-import": "2.12.0",
|
||||
"eslint-plugin-node": "6.0.1",
|
||||
"eslint-plugin-promise": "3.7.0",
|
||||
"eslint-plugin-promise": "3.8.0",
|
||||
"eslint-plugin-qunit": "^3.2.1",
|
||||
"eslint-plugin-standard": "3.1.0",
|
||||
"imageoptim-cli": "^2.0.2",
|
||||
"load-stylesheets": "^0.4.0",
|
||||
"load-stylesheets": "^0.5.0",
|
||||
"node-static": "^0.7.10",
|
||||
"opn-cli": "^3.1.0",
|
||||
"qunit": "^2.6.1",
|
||||
"rollup": "0.59.2",
|
||||
"rollup": "0.59.4",
|
||||
"rollup-plugin-babel": "^3.0.4",
|
||||
"rollup-plugin-commonjs": "^9.1.3",
|
||||
"rollup-plugin-json": "^3.0.0",
|
||||
|
@ -71,7 +71,7 @@
|
|||
"rollup-plugin-re": "^1.0.7",
|
||||
"rollup-plugin-uglify": "^4.0.0",
|
||||
"sinon": "^5.0.10",
|
||||
"sinon-test": "^2.1.3",
|
||||
"sinon-test": "^2.2.0",
|
||||
"uglify-es": "^3.3.9"
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue