|
1 | 1 |
|
2 | 2 |
|
| 3 | +<!DOCTYPE html> |
3 | 4 |
|
4 | 5 | <html> |
5 | 6 |
|
6 | 7 | <head> |
7 | | - |
8 | | - <title>zip</title> |
| 8 | + <meta charset=utf-8> |
| 9 | + |
| 10 | + <title> |
| 11 | + zip |
| 12 | + </title> |
| 13 | + |
| 14 | + <meta name=description content='Use this tool to build a zip archive directly in the browser.'> |
9 | 15 |
|
10 | 16 | <base href='https://ext-code.com/utils/misc/zip/'> |
11 | | - <base href='https://javascript-2020.github.io/utils/misc/zip/'> |
12 | | - |
13 | | - <link rel=icon type='image/png' href='images/zip-30.png'> |
| 17 | + <link rel=canonical href='https://ext-code.com/utils/misc/zip/zip.html'> |
| 18 | + |
| 19 | + <link rel=icon type='image/png' href='data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAMAAAAM7l6QAAABIFBMVEVHcEwLCQc7MxwAAQEeHh4jHhUuJhIAAAAGBQUCAgIBAQIHBwcBAQILCwsODQwAAAAdGxVXSCM8PD0VEQoAAAMAAADs6u3u7O9fTyr/4HWniT2mpakvLi/r6ezRz9LHxchPRSpbUTHu6+/Ny87w7vG1tLj/4ndUUUywr7NGRUX623Pvxlv01nHl4+eXg0asllD/5Hjx7/Lo5unW1Ne4oVSqjUDt0G3702RUSCVXVla6ubxIPyT50GLlymuTkpQzMjG5o1XfxWjDwsS+vL9gX2CHd0BLSkza2Nvg3+LDq1uqqazZvmXmvVTKycxqaWuBbjc9PT6ZmJr/3m85ODNsXzLRtmZkVi93dXbHr1wmJymGhYh+b0y5pHPFoEbFoUhWTCumkv3wAAAAFnRSTlMAkv8KxfziBXUVJIk4o71D0vTzsDAdMqg2MwAAAa1JREFUKM9104lymkAAgGFTqzVHczQJK9HYzS5iCYcWGoMcIirexHjmaJO8/1t0F2MigfzMLDvzzS7DLCQSQcn9L9FSmRUmtg/S5cYfWoPeGvdVmrK10m/ffwilVc6MDLOUwvL89OqVk1+bqkxTcamtyWpdEIhv8E/A0IDh3PqAq9+0iMcwFmoaItwjHsPN2w4G3KTWbOacs1guAFCoCULnQT+LsE83Z5CsadokG+WWI/hkihBiclFGhU67i4LpeQyDQX5mgM/5Zjx/5D7l83bj6u7D6uT2zprV0n25HX72znE6nXpl5u4F1sOrM2Nx9Ff7DWicnBuoHADonbeyz0//iusMgw7k5d7YvMhehIO1HnrjMntJkiTpklwSnY9MDN65wrK8u4RL17PH0JNYVoR+mFlp8TK34VBXzH4lhit9aFfhEJq6y0dYkqqm5warbTayOd/vL0w4H3q255KtpgEPlgHvKtNry7JEUby2yEWyRhADFS+Cj2nv8OhIz4bSyXvLLWV1JKd7B4f14q+Nil1G7eVS6cz6QI1uYTOMfTzZP0muf6K8k/+Q87BL5D8NUW1MDvRgFwAAAABJRU5ErkJggg=='> |
| 20 | + <meta name=viewport content='width=device-width, initial-scale=1'> |
| 21 | + |
| 22 | + <script type='application/ld+json'> |
| 23 | + { |
| 24 | + "@context" : "https://schema.org", |
| 25 | + "@type" : "SoftwareApplication", |
| 26 | + "name" : "zip", |
| 27 | + "url" : "https://ext-code.com/utils/misc/zip/zip.html", |
| 28 | + "author" : {"@type":"Person","name":"Matthew Richards"}, |
| 29 | + "description" : "Use this tool to build a zip archive directly in the browser.", |
| 30 | + "applicationCategory" : "DeveloperApplication", |
| 31 | + "operatingSystem" : "All", |
| 32 | + "browserRequirements" : "Requires JavaScript-enabled browser", |
| 33 | + "softwareVersion" : "1.0.0", |
| 34 | + "offers" : {"@type":"Offer","price":"0","priceCurrency":"GBP"} |
| 35 | + } |
| 36 | + </script> |
| 37 | + |
14 | 38 |
|
15 | | - |
16 | 39 | <script src='https://libs.ext-code.com/js/dom/component/component.js'></script> |
17 | 40 |
|
18 | 41 | <script init> |
|
21 | 44 | console.log('zip-v2.0.html'); |
22 | 45 | console.log(); |
23 | 46 | console.json=v=>console.log(JSON.stringify(v,null,4)); |
24 | | - var df = true; |
| 47 | + var df=true,version='v2.0' |
| 48 | + ; |
25 | 49 |
|
26 | 50 | var jszip; |
27 | 51 |
|
|
47 | 71 | //: |
48 | 72 |
|
49 | 73 |
|
50 | | - mod.stack.add = init; |
51 | | - |
52 | 74 | async function init(){ |
53 | 75 |
|
54 | 76 |
|
55 | 77 | //keydown = keydown(); |
56 | 78 | menu = menumod(); |
57 | 79 |
|
58 | | - hdr = mod.hdr; |
| 80 | + hdr = mod['misc-hdr']; |
59 | 81 | //mod.menu.main = mod.menu.main(); |
60 | | - filemod = mod.filemod; |
61 | | - add.file = mod['filemod[add]']; |
| 82 | + filemod = mod['file-mod']; |
| 83 | + add.file = mod['file-add']; |
62 | 84 | filenav = mod['file-nav']; |
63 | | - log = mod.log; |
| 85 | + log = mod['log-mod']; |
64 | 86 |
|
65 | 87 | hdr.initmod({$,menumod,menu}); |
66 | 88 | //mod.menu.main.initmod({ext,$,menu,editor,filemod}); |
|
71 | 93 | filenav.dir = dir; |
72 | 94 | log.initmod({ext,$}); |
73 | 95 |
|
74 | | - await hdr.init(); |
75 | | - //mod.menu.main.init(); |
76 | | - await filemod.init(); |
77 | | - await add.file.init(); |
78 | | - await filenav.init(); |
79 | | - await log.init(); |
| 96 | + await Promise.all([ |
| 97 | + hdr.init(), |
| 98 | + //mod.menu.main.init(), |
| 99 | + filemod.init(), |
| 100 | + add.file.init(), |
| 101 | + filenav.init(), |
| 102 | + log.init(), |
| 103 | + ]); |
80 | 104 |
|
81 | 105 | //: |
82 | 106 |
|
|
90 | 114 |
|
91 | 115 |
|
92 | 116 |
|
93 | | - await initdom(document.body); |
| 117 | + initdom(document.body); |
94 | 118 |
|
95 | 119 |
|
96 | 120 |
|
|
186 | 210 | </style> |
187 | 211 |
|
188 | 212 |
|
189 | | - <hdr component=grp v2.0> |
190 | | - <img class=title src='image/zip-title.png' style='top:5px;height:55px'> |
191 | | - <span slot=date>28 Jul 2025</span> |
192 | | - </hdr> |
| 213 | + <misc-hdr component=grp> |
| 214 | + <img class=title src='image/zip.png' style='top:-15px;height:55px'> |
| 215 | + <time slot=date datetime=2025-10-31>31 Oct 2025</time> |
| 216 | + </misc-hdr> |
193 | 217 |
|
194 | 218 |
|
195 | 219 | <div id=hdr> |
196 | 220 |
|
197 | | - <filemod component v2.0></filemod> |
| 221 | + <file-mod component></file-mod> |
198 | 222 |
|
199 | 223 | <input value=save type=button> |
200 | 224 | <input value='list files' type=button> |
|
233 | 257 | add file |
234 | 258 | </div> |
235 | 259 |
|
236 | | - <filemod inst=add component v2.0></filemod> |
| 260 | + <file-mod id=file-add component></file-mod> |
237 | 261 |
|
238 | 262 | </div> |
239 | 263 |
|
240 | 264 |
|
241 | 265 | <div id=view> |
242 | 266 |
|
243 | | - <file-nav component v2.0></file-nav> |
| 267 | + <file-nav component></file-nav> |
244 | 268 |
|
245 | 269 | </div> |
246 | 270 |
|
247 | 271 |
|
248 | | - <log component v2.0></log> |
| 272 | + <log-mod component></log-mod> |
249 | 273 |
|
250 | 274 |
|
251 | 275 | <script> |
|
276 | 300 | root = rootnode; |
277 | 301 |
|
278 | 302 |
|
279 | | - hdr.initdom(root); |
| 303 | + hdr.initdom(); |
280 | 304 |
|
281 | 305 |
|
282 | | - filemod.initdom(root); |
| 306 | + filemod.initdom(); |
283 | 307 |
|
284 | 308 |
|
285 | 309 | info = $(root,'#info'); |
286 | 310 | ui.info(); |
287 | 311 |
|
288 | 312 |
|
289 | 313 | add.root = $(root,'#add'); |
290 | | - add.file.initdom(add.root); |
| 314 | + add.file.initdom(); |
291 | 315 |
|
292 | 316 | $(root,'[value=save]').onclick = btn.save; |
293 | 317 | $(root,'[value="list files"]').onclick = btn['list-files']; |
294 | 318 |
|
295 | 319 |
|
296 | 320 | view = $(root,'#view'); |
297 | 321 |
|
298 | | - filenav.initdom(view); |
| 322 | + filenav.initdom(); |
299 | 323 |
|
300 | 324 |
|
301 | 325 | log.initdom(); |
|
0 commit comments