diff --git a/package-lock.json b/package-lock.json
index 9c54ac0..deac0fd 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -10,6 +10,7 @@
"dependencies": {
"codemirror": "^5.65.2",
"electron-squirrel-startup": "^1.0.1",
+ "jszip": "^3.10.1",
"node-abi": "^4.11.0",
"qunit": "^2.24.1",
"simplycode": "github:simplyedit/simplycode",
@@ -2578,6 +2579,11 @@
"integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==",
"devOptional": true
},
+ "node_modules/core-util-is": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz",
+ "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ=="
+ },
"node_modules/cross-dirname": {
"version": "0.1.0",
"resolved": "https://registry.npmjs.org/cross-dirname/-/cross-dirname-0.1.0.tgz",
@@ -4217,6 +4223,11 @@
"node": ">=6.9.0"
}
},
+ "node_modules/immediate": {
+ "version": "3.0.6",
+ "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz",
+ "integrity": "sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ=="
+ },
"node_modules/imul": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/imul/-/imul-1.0.1.tgz",
@@ -4264,8 +4275,7 @@
"node_modules/inherits": {
"version": "2.0.4",
"resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
- "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
- "devOptional": true
+ "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
},
"node_modules/ini": {
"version": "2.0.0",
@@ -4418,6 +4428,11 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
+ "node_modules/isarray": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
+ "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ=="
+ },
"node_modules/isbinaryfile": {
"version": "4.0.10",
"resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-4.0.10.tgz",
@@ -4519,6 +4534,44 @@
"node": ">=0.10.0"
}
},
+ "node_modules/jszip": {
+ "version": "3.10.1",
+ "resolved": "https://registry.npmjs.org/jszip/-/jszip-3.10.1.tgz",
+ "integrity": "sha512-xXDvecyTpGLrqFrvkrUSoxxfJI5AH7U8zxxtVclpsUtMCq4JQ290LY8AW5c7Ggnr/Y/oK+bQMbqK2qmtk3pN4g==",
+ "dependencies": {
+ "lie": "~3.3.0",
+ "pako": "~1.0.2",
+ "readable-stream": "~2.3.6",
+ "setimmediate": "^1.0.5"
+ }
+ },
+ "node_modules/jszip/node_modules/readable-stream": {
+ "version": "2.3.8",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz",
+ "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==",
+ "dependencies": {
+ "core-util-is": "~1.0.0",
+ "inherits": "~2.0.3",
+ "isarray": "~1.0.0",
+ "process-nextick-args": "~2.0.0",
+ "safe-buffer": "~5.1.1",
+ "string_decoder": "~1.1.1",
+ "util-deprecate": "~1.0.1"
+ }
+ },
+ "node_modules/jszip/node_modules/safe-buffer": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
+ "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
+ },
+ "node_modules/jszip/node_modules/string_decoder": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
+ "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
+ "dependencies": {
+ "safe-buffer": "~5.1.0"
+ }
+ },
"node_modules/junk": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/junk/-/junk-3.1.0.tgz",
@@ -4537,6 +4590,14 @@
"json-buffer": "3.0.1"
}
},
+ "node_modules/lie": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/lie/-/lie-3.3.0.tgz",
+ "integrity": "sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==",
+ "dependencies": {
+ "immediate": "~3.0.5"
+ }
+ },
"node_modules/listr2": {
"version": "7.0.2",
"resolved": "https://registry.npmjs.org/listr2/-/listr2-7.0.2.tgz",
@@ -5432,6 +5493,11 @@
"node": ">=4"
}
},
+ "node_modules/pako": {
+ "version": "1.0.11",
+ "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz",
+ "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw=="
+ },
"node_modules/parse-author": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/parse-author/-/parse-author-2.0.0.tgz",
@@ -5625,6 +5691,11 @@
"node": "^12.13.0 || ^14.15.0 || >=16.0.0"
}
},
+ "node_modules/process-nextick-args": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz",
+ "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag=="
+ },
"node_modules/progress": {
"version": "2.0.3",
"resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz",
@@ -6144,6 +6215,11 @@
"randombytes": "^2.1.0"
}
},
+ "node_modules/setimmediate": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz",
+ "integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA=="
+ },
"node_modules/shebang-command": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
@@ -6836,8 +6912,7 @@
"node_modules/util-deprecate": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
- "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==",
- "devOptional": true
+ "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw=="
},
"node_modules/validate-npm-package-license": {
"version": "3.0.4",
diff --git a/package.json b/package.json
index 73d6f69..28f1593 100644
--- a/package.json
+++ b/package.json
@@ -33,17 +33,18 @@
"electron": "^37.3.1"
},
"optionalDependencies": {
- "electron-installer-redhat": "^3.4.0",
- "electron-installer-debian": "^3.2.0",
"@electron-forge/maker-dmg": "^7.5.0",
"appdmg": "^0.6.6",
- "electron-installer-dmg": "^5.0.1"
+ "electron-installer-debian": "^3.2.0",
+ "electron-installer-dmg": "^5.0.1",
+ "electron-installer-redhat": "^3.4.0"
},
"dependencies": {
"codemirror": "^5.65.2",
"electron-squirrel-startup": "^1.0.1",
- "qunit": "^2.24.1",
+ "jszip": "^3.10.1",
"node-abi": "^4.11.0",
+ "qunit": "^2.24.1",
"simplycode": "github:simplyedit/simplycode",
"simplyedit": "github:simplyedit/simplyedit",
"simplyview": "github:simplyedit/simplyview"
diff --git a/scripts/post-install.sh b/scripts/post-install.sh
index f4d8afe..0a26bdc 100755
--- a/scripts/post-install.sh
+++ b/scripts/post-install.sh
@@ -75,17 +75,31 @@ installQunit() {
cp -f "${sSourceDir}/qunit/qunit/qunit.css"* "${sTargetDir}/qunit/qunit.css"
}
+installJsZip() {
+ local sSourceDir sTargetDir
+
+ sSourceDir="${npm_config_local_prefix}/node_modules"
+ sTargetDir="${npm_config_local_prefix}/simplycode/js"
+
+ mkdir -p \
+ "${sTargetDir}/jszip/"
+
+ cp -f "${sSourceDir}/jszip/dist/jszip.js"* "${sTargetDir}/jszip/jszip.js"
+}
+
if [[ ${BASH_SOURCE[0]} != "${0}" ]]; then
export -f installSimplyEdit
export -f installSimplyView
export -f installCodeMirror
export -f installSimplyCode
export -f installQunit
+ export -f installJsZip
else
installSimplyEdit
installSimplyView
installSimplyCode
installCodeMirror
installQunit
+ installJsZip
exit $?
fi
diff --git a/simplycode/index.html b/simplycode/index.html
index a8b0d0a..25314e5 100644
--- a/simplycode/index.html
+++ b/simplycode/index.html
@@ -949,6 +949,18 @@
.simplycode-editor-code textarea {
margin-top: -1px;
}
+ strong.simplycode-module {
+ color: var(--simplycode-highlight-dark);
+ float: right;
+ padding-right: 5px;
+ }
+
+ /* simplycode-import-url (component/component-import-url) */
+ .simplycode-editor-url input {
+ width: 100%;
+ padding: 10px;
+ font-size: 1.2em;
+ }
/* QUnit iframe (component/component-qunit-tests) */
.qunit-code {
display: none;
@@ -1244,6 +1256,9 @@
src: local('Cocon'), url('/assets/fonts/CoconRegularFont.woff') format('woff');
}
+
+
+