ImageGrid/Viewer/index.html
Alex A. Naanou 141e2e8295 added a tool to track stray globals...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2023-05-24 01:54:55 +03:00

200 lines
6.7 KiB
HTML

<!DOCTYPE html>
<html>
<head>
<title>ImageGrid.Viewer</title>
<meta charset="utf-8" />
<!--meta http-equiv="Content-Security-Policy"
content="script-src 'self' 'unsafe-inline' 'unsafe-eval';"-->
<meta name="msapplication-tap-highlight" content="no" />
<meta name="viewport" content="width=device-width, user-scalable=no" />
<!-- Fonts -->
<link rel="prefetch" href="css/fonts/Open_Sans/OpenSans-Bold.ttf" />
<link rel="prefetch" href="css/fonts/Open_Sans/OpenSans-BoldItalic.ttf" />
<link rel="prefetch" href="css/fonts/Open_Sans/OpenSans-ExtraBold.ttf" />
<link rel="prefetch" href="css/fonts/Open_Sans/OpenSans-ExtraBoldItalic.ttf" />
<link rel="prefetch" href="css/fonts/Open_Sans/OpenSans-Italic.ttf" />
<link rel="prefetch" href="css/fonts/Open_Sans/OpenSans-Light.ttf" />
<link rel="prefetch" href="css/fonts/Open_Sans/OpenSans-LightItalic.ttf" />
<link rel="prefetch" href="css/fonts/Open_Sans/OpenSans-Regular.ttf" />
<link rel="prefetch" href="css/fonts/Open_Sans/OpenSans-Semibold.ttf" />
<link rel="prefetch" href="css/fonts/Open_Sans/OpenSans-SemiboldItalic.ttf" />
<!-- CSS -->
<link rel="stylesheet" href="css/fonts.css" />
<link rel="stylesheet" href="css/layout.css" />
<link rel="stylesheet" href="css/editor.css" />
<link rel="stylesheet" href="css/widget/browse.css" />
<link rel="stylesheet" href="css/widget/overlay.css" />
<link rel="stylesheet" href="css/widget/drawer.css" />
<link rel="stylesheet" href="css/loader.css" />
<link rel="stylesheet" href="css/experimenting.css" />
<!-- Scripts -->
<!-- Global scope pollution test -->
<!--script>
var __window = {...window}
function scopeDiff(cur=window, base=__window){
return Object.keys(cur)
.filter(function(k){
return base[k] !== cur[k] })
.reduce(function(res, k){
res[k] = cur[k]
return res }, {})}
</script-->
<!-- DevTools fail-safe for electron/nw... -->
<script>
// used to track stray globals...
var trackGlobal = function(name){
Object.defineProperty(window, name, {
get: function(){
return this['__tracked_'+name] },
set: function(value){
this['__tracked_'+name] = value
debugger },
}) }
if(window.require){
Object.defineProperty(window, 'STARTUP_DEVTOOLS_TIMEOUT', {
get: function(){
return parseInt(localStorage.STARTUP_DEVTOOLS_TIMEOUT || 5000) },
set: function(value){
if(value == null){
delete localStorage.STARTUP_DEVTOOLS_TIMEOUT
return }
value = parseInt(value)
;(value || value == 0)
&& (localStorage.STARTUP_DEVTOOLS_TIMEOUT = value) }, })
window.__devtools_failsafe = setTimeout(function(){
// nw...
if(window.nw){
nw.Window.get().showDevTools()
// electron...
} else {
try{
require('electron').ipcRenderer.send('openDevTools')
} catch(err){ } }
}, STARTUP_DEVTOOLS_TIMEOUT) }
</script>
<!-- Electron fix -->
<script>if(typeof(module) == 'object'){ window.__module = module; module = undefined }</script>
<!-- jQuery -->
<script src="ext-lib/jquery.js"></script>
<script src="ext-lib/jquery-ui.js"></script>
<script src="ext-lib/jquery.ui.touch-punch.min.js"></script>
<!-- velocity.js -->
<script src="ext-lib/velocity.min.js"></script>
<!-- hammer.js -->
<script src="ext-lib/hammer.min.js"></script>
<script src="ext-lib/jquery.hammer.js"></script>
<!-- lib -->
<script src="lib/jli.js"></script>
<!-- Electron unfix -->
<script>if(window.__module){ module = window.__module; delete window.__module }</script>
<!-- RequireJS -->
<script>
// Electron...
// NOTE: we need to load the electron way first because the other way
// around requirejs messes things up...
if(typeof(process) != 'undefined'){
require('./cfg/requirejs')(require)
requirejs('ui') }
</script>
<script src="node_modules/requirejs/require.js"></script>
<script>
// Browser...
if(typeof(process) == 'undefined'){
requirejs(['cfg/requirejs'])
requirejs(['ui']) }
</script>
</head>
<body>
<!-- XXX STUB: this fixes Chrome's tendency to mess up full screen colors
unless a video is present and visible... -->
<video style="display:block; position:absolute; width:1px; height:1px; top:0px; left:0px" tabindex="-1">
<source src="data/blank.mp4" type="video/mp4">
</video>
<!-- XXX STUB: this lives in css/filters.svg but Chrome refuses to reference
it's internals from the file:// protocol... -->
<svg xmlns="http://www.w3.org/2000/svg" version="1.1" width="0%" height="0%" class="svg-filters">
<!-- edge detect -->
<filter id="EdgeDetect">
<!--feConvolveMatrix order="3 3" preserveAlpha="true" divisor="1" bias="-1.4" kernelMatrix="-1 -1 -1 -1 9 -1 -1 -1 -1"/-->
<feConvolveMatrix order="3 3" preserveAlpha="true" kernelMatrix="-1 -1 -1 -1 8 -1 -1 -1 -1"/>
</filter>
<!-- shadows and highlights
gradient map: [blue 0-5% black 93-96% white]
via: https://justcode.today/filters/ -->
<!-- NOTE: not sure about the tail end here (white zone) might be a
bit too flat... -->
<filter id="ShadowsAndHilights">
<fecolormatrix type="saturate" values="0" />
<feComponentTransfer color-interpolation-filters="sRGB" result="cutoff">
<feFuncR type="table" tableValues="
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0.33 0.67 1 1 1 1" />
<feFuncG type="table" tableValues="
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0.33 0.67 1 1 1 1" />
<feFuncB type="table" tableValues="
1 0.8 0.6 0.4 0.2 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0.33 0.67 1 1 1 1"/>
</feComponentTransfer>
<feBlend mode="difference" in="SourceGraphic" in2="cutoff"/>
</filter>
<!-- gamma shadows -->
<!-- XXX should this be gamma or a transfer function?? -->
<filter id="GammaShadows">
<feComponentTransfer color-interpolation-filters="sRGB">
<feFuncR type="gamma" exponent="0.3" amplitude="1.0" offset="0"></feFuncR>
<feFuncG type="gamma" exponent="0.3" amplitude="1.0" offset="0"></feFuncG>
<feFuncB type="gamma" exponent="0.3" amplitude="1.0" offset="0"></feFuncB>
</feComponentTransfer>
</filter>
</svg>
<!-- The Viewer block (see: imagegrid/ribbons.js) -->
<div class="viewer gray marks-visible" tabindex="0">
<div class="drag-bar"></div>
</div>
<!-- vim:set ts=4 sw=4 spell nowrap : -->
</body>
</html>