|
@ -4,7 +4,10 @@ var mkdirp = require("mkdirp");
|
||||||
var moduleDeps = require("./module-deps");
|
var moduleDeps = require("./module-deps");
|
||||||
var path = require("path");
|
var path = require("path");
|
||||||
|
|
||||||
function build(config, opts, callback){
|
function build(config, opts, callback) {
|
||||||
|
if (opts.compileLess && opts.sources)
|
||||||
|
return compileLess(opts, opts.sources, callback);
|
||||||
|
|
||||||
if (!opts.configFile) {
|
if (!opts.configFile) {
|
||||||
opts.configFile = "\nrequire.plugins = "
|
opts.configFile = "\nrequire.plugins = "
|
||||||
+ JSON.stringify(config, null, 4)
|
+ JSON.stringify(config, null, 4)
|
||||||
|
@ -155,50 +158,147 @@ function createOutputFolder(opts, cb) {
|
||||||
}
|
}
|
||||||
|
|
||||||
function compileLess(opts, sources, callback) {
|
function compileLess(opts, sources, callback) {
|
||||||
|
var libs = opts.lessLibs;
|
||||||
var less = stripLess(sources);
|
var less = stripLess(sources);
|
||||||
var cssCode = [];
|
var cssCode = [];
|
||||||
var code = [];
|
var code = [];
|
||||||
var cache = opts.cache;
|
var cache = opts.cache;
|
||||||
if (cache && !cache.less)
|
if (cache && !cache.less)
|
||||||
cache.less = Object.create(null);
|
cache.less = Object.create(null);
|
||||||
|
if (cache && !cache.images)
|
||||||
|
cache.images = Object.create(null);
|
||||||
|
|
||||||
var libs = opts.lessLibs;
|
function readLibs(cb) {
|
||||||
less.forEach(function(file) {
|
async.forEach(Object.keys(libs), function(key, next) {
|
||||||
var plugin = file.pkg.parent.plugin || {};
|
var lib = libs[key];
|
||||||
if (file.pkg.id.match(/(keyframes|font-awesome)\.css$/)) {
|
if (typeof lib !== "string")
|
||||||
cssCode.push(file.code
|
return next();
|
||||||
.replace(/@\{image-path\}/g, plugin.staticPrefix + "/images")
|
var path = moduleDeps.resolveModulePath(lib, opts.pathConfig.pathMap);
|
||||||
.replace(/@\{icon-path\}/g, plugin.staticPrefix + "/icons")
|
fs.readFile(path, "utf8", function(e, code) {
|
||||||
.replace(/@\{base-path\}/g, plugin.staticPrefix)
|
libs[key] = { code: code || "", id: lib };
|
||||||
);
|
next();
|
||||||
return;
|
});
|
||||||
|
}, function() {
|
||||||
|
cb();
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
var staticPrefix = plugin.staticPrefix || libs.staticPrefix;
|
function expandVariables(code, variables, plugin) {
|
||||||
// Complete paths, but not subdirectories like foo/images/bar.png
|
variables["base-path"] = (plugin && plugin.staticPrefix || opts.staticPrefix);
|
||||||
var lessCode = file.code.replace(/(["(])(images|icons)\//g, "$1" + staticPrefix + "/$2/");
|
variables["icon-path"] = variables["base-path"] + "/icons";
|
||||||
code.push("ß{" + lessPathLib(staticPrefix) + lessCode + "}");
|
variables["image-path"] = variables["base-path"] + "/images";
|
||||||
});
|
variables["plugin-path"] = plugin
|
||||||
|
? "/static/" + path.dirname(plugin.packagePath)
|
||||||
|
: "plugin-path";
|
||||||
|
|
||||||
|
return code.replace(/@({([\w-]+)}|[\w-]+)/g, function(_, m, m1) {
|
||||||
|
var name = m1 || m;
|
||||||
|
return variables[name] || _;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
function preprocess() {
|
||||||
|
less.forEach(function(file) {
|
||||||
|
var plugin = file.pkg.parent.plugin;
|
||||||
|
|
||||||
|
var id = file.pkg.id.replace(/^[^!]+!/, "");
|
||||||
|
code.push(
|
||||||
|
"/* @file " + id + " */\nß{"
|
||||||
|
+ expandVariables(file.code, Object.create(null), plugin)
|
||||||
|
+ "}"
|
||||||
|
);
|
||||||
|
});
|
||||||
|
code = code.join("\n")
|
||||||
|
+ expandVariables(libs.map(function(l) {
|
||||||
|
return l.code ? "/* @file " + l.id + " */\n" + l.code : "";
|
||||||
|
}).join("\n"), Object.create(null));
|
||||||
|
}
|
||||||
|
|
||||||
|
function compile() {
|
||||||
var ctx = {
|
var ctx = {
|
||||||
paths: ["/"],
|
paths: ["/"],
|
||||||
filename: opts.basepath + '/unknown.less',
|
filename: opts.basepath + '/unknown.less',
|
||||||
compress: !!opts.compress
|
compress: !!opts.compress
|
||||||
};
|
};
|
||||||
code = lessPathLib("/static/" + libs.staticPrefix) + libs.join("\n") + code.join("\n");
|
|
||||||
|
|
||||||
var lessParser = require("less");
|
var lessParser = require("less");
|
||||||
return lessParser.parse(code, ctx, function(err, tree, imports, options) {
|
return lessParser.parse(code, ctx, function(err, tree, imports, options) {
|
||||||
if (err) return callback(err);
|
if (err) return callback(err);
|
||||||
|
|
||||||
toCss(tree, imports, options, function(err, css) {
|
toCss(tree, imports, options, function(err, css) {
|
||||||
if (err) return callback(err);
|
if (err) return callback(err);
|
||||||
|
css = css.replace(/ß /g, "").replace(/^ +/gm, "\t");
|
||||||
callback(null, { code: css.replace(/ß /g, "").replace(/^ +/gm, "\t") });
|
css = checkImages(css, opts, cache);
|
||||||
|
css = addCssPrefixes(css);
|
||||||
|
callback(null, { code: css });
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
readLibs(function() {
|
||||||
|
preprocess();
|
||||||
|
compile();
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function checkImages(css, opts, cache) {
|
||||||
|
var images = cache && cache.images || Object.create(null);
|
||||||
|
var t = Date.now();
|
||||||
|
var file;
|
||||||
|
var count = 0;
|
||||||
|
var missingCount = 0;
|
||||||
|
css = css.replace(/(url\(['"]?)(?:\/static\/)?([^"')]+)|@file (\S+)/g, function(_, prefix, imagePath, fileId) {
|
||||||
|
if (fileId) {
|
||||||
|
file = fileId;
|
||||||
|
return _;
|
||||||
|
}
|
||||||
|
if (/^data:|^#/.test(imagePath))
|
||||||
|
return _;
|
||||||
|
count++;
|
||||||
|
|
||||||
|
if (/^(images|icons)/.test(imagePath))
|
||||||
|
imagePath = opts.staticPrefix + "/" + imagePath;
|
||||||
|
|
||||||
|
var dir = path.dirname(imagePath);
|
||||||
|
var name = path.basename(imagePath);
|
||||||
|
try {
|
||||||
|
if (!images[dir]) {
|
||||||
|
var absPath = moduleDeps.resolveModulePath(dir, opts.pathConfig.pathMap);
|
||||||
|
images[dir] = fs.readdirSync(absPath);
|
||||||
|
}
|
||||||
|
} catch (e) {
|
||||||
|
images[dir] = [];
|
||||||
|
}
|
||||||
|
var nameNx = name.replace("@1x", "");
|
||||||
|
var name1x = nameNx.replace(/\.\w+$/, "@1x$&");
|
||||||
|
var name2x = nameNx.replace(/\.\w+$/, "@2x$&");
|
||||||
|
|
||||||
|
var hasNx = images[dir].indexOf(nameNx) != -1;
|
||||||
|
var has1x = images[dir].indexOf(name1x) != -1;
|
||||||
|
var has2x = images[dir].indexOf(name2x) != -1;
|
||||||
|
|
||||||
|
if (hasNx) {
|
||||||
|
name = nameNx;
|
||||||
|
} else if (has1x) {
|
||||||
|
name = name1x;
|
||||||
|
if (!has2x)
|
||||||
|
reportError(imagePath + " 2x");
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
reportError(imagePath);
|
||||||
|
}
|
||||||
|
|
||||||
|
// todo check image sizes
|
||||||
|
return prefix + "/static/" + dir + "/" + name;
|
||||||
|
});
|
||||||
|
|
||||||
|
function reportError(imagePath) {
|
||||||
|
missingCount++;
|
||||||
|
console.log("" + missingCount + " missing image: " + imagePath, "from /" + file);
|
||||||
|
}
|
||||||
|
console.log("checked " + count + " images in " + (t - Date.now()) + "ms");
|
||||||
|
return css;
|
||||||
|
}
|
||||||
|
|
||||||
function addCssPrefixes(css) {
|
function addCssPrefixes(css) {
|
||||||
return css.replace(/\b(user-select|font-smoothing)\b([^;\n]+);?/g, function(_, prop, value, index, string) {
|
return css.replace(/\b(user-select|font-smoothing)\b([^;\n]+);?/g, function(_, prop, value, index, string) {
|
||||||
|
@ -226,24 +326,14 @@ function toCss(tree, imports, options, callback) {
|
||||||
catch (err) {
|
catch (err) {
|
||||||
return callback(err);
|
return callback(err);
|
||||||
}
|
}
|
||||||
css = addCssPrefixes(css);
|
|
||||||
callback(null, css);
|
callback(null, css);
|
||||||
}
|
}
|
||||||
|
|
||||||
function lessPathLib(staticPrefix) {
|
|
||||||
if (!staticPrefix) return "";
|
|
||||||
|
|
||||||
staticPrefix = staticPrefix.replace(/^(\/static\/)?(plugins\/)?/, "/static/plugins/");
|
|
||||||
|
|
||||||
return "@base-path : \"" + staticPrefix + "\";\n"
|
|
||||||
+ "@image-path : \"" + staticPrefix + "/images\";\n"
|
|
||||||
+ "@icon-path : \"" + staticPrefix + "/icons\";\n";
|
|
||||||
}
|
|
||||||
|
|
||||||
function stripLess(sources) {
|
function stripLess(sources) {
|
||||||
var less = [];
|
var less = [];
|
||||||
|
|
||||||
function addLessFile(pkg, code, file) {
|
function addLessFile(pkg, code, file) {
|
||||||
|
pkg.cssSource = code;
|
||||||
less.push({
|
less.push({
|
||||||
pkg: pkg,
|
pkg: pkg,
|
||||||
code: code,
|
code: code,
|
||||||
|
@ -252,7 +342,10 @@ function stripLess(sources) {
|
||||||
}
|
}
|
||||||
|
|
||||||
sources.forEach(function(pkg) {
|
sources.forEach(function(pkg) {
|
||||||
if (pkg.id && (pkg.id.indexOf("text!") > -1) && pkg.id.match(/text\!.*\.(less|css)$/)) {
|
if (pkg.cssSource != null) {
|
||||||
|
addLessFile(pkg, pkg.cssSource);
|
||||||
|
}
|
||||||
|
else if (pkg.id && (pkg.id.indexOf("text!") > -1) && pkg.id.match(/text\!.*\.(less|css)$/)) {
|
||||||
var source = pkg.source;
|
var source = pkg.source;
|
||||||
pkg.source = "";
|
pkg.source = "";
|
||||||
|
|
||||||
|
|
|
@ -86,30 +86,10 @@
|
||||||
border: @gotoline-border-dark;
|
border: @gotoline-border-dark;
|
||||||
border-left: 0;
|
border-left: 0;
|
||||||
}
|
}
|
||||||
.brGtlContent {
|
|
||||||
}
|
|
||||||
.barGotoline .brGtlTop {
|
|
||||||
background: url(images/barGotoLineCorners.png) no-repeat 0 0;
|
|
||||||
height: 3px;
|
|
||||||
width: 4px;
|
|
||||||
position: absolute;
|
|
||||||
top: -3px;
|
|
||||||
left:0;
|
|
||||||
}
|
|
||||||
.barGotoline .brGtlBottom {
|
|
||||||
background: url(images/barGotoLineCorners.png) no-repeat 0 -3px;
|
|
||||||
height: 3px;
|
|
||||||
width: 4px;
|
|
||||||
position: absolute;
|
|
||||||
bottom: -3px;
|
|
||||||
left:0;
|
|
||||||
}
|
|
||||||
]]></a:style>
|
]]></a:style>
|
||||||
<a:presentation>
|
<a:presentation>
|
||||||
<a:main container=".">
|
<a:main container=".">
|
||||||
<div class="barGotoline">
|
<div class="barGotoline">
|
||||||
<div class="brGtlTop"></div>
|
|
||||||
<div class="brGtlBottom"></div>
|
|
||||||
</div>
|
</div>
|
||||||
</a:main>
|
</a:main>
|
||||||
</a:presentation>
|
</a:presentation>
|
||||||
|
|
|
@ -34,7 +34,7 @@
|
||||||
skin = "btn-statusbar-icon"
|
skin = "btn-statusbar-icon"
|
||||||
skinset = "c9statusbar"
|
skinset = "c9statusbar"
|
||||||
height = "23"
|
height = "23"
|
||||||
icon = "pref-ico.png"
|
icon = "true"
|
||||||
submenudir = "up" />
|
submenudir = "up" />
|
||||||
</a:bar>
|
</a:bar>
|
||||||
</a:application>
|
</a:application>
|
Przed Szerokość: | Wysokość: | Rozmiar: 3.1 KiB Po Szerokość: | Wysokość: | Rozmiar: 3.1 KiB |
Przed Szerokość: | Wysokość: | Rozmiar: 658 B Po Szerokość: | Wysokość: | Rozmiar: 658 B |
Przed Szerokość: | Wysokość: | Rozmiar: 647 B Po Szerokość: | Wysokość: | Rozmiar: 647 B |
Przed Szerokość: | Wysokość: | Rozmiar: 1.6 KiB Po Szerokość: | Wysokość: | Rozmiar: 1.6 KiB |
Przed Szerokość: | Wysokość: | Rozmiar: 1.1 KiB Po Szerokość: | Wysokość: | Rozmiar: 1.1 KiB |
Przed Szerokość: | Wysokość: | Rozmiar: 1021 B Po Szerokość: | Wysokość: | Rozmiar: 1021 B |
Przed Szerokość: | Wysokość: | Rozmiar: 2.2 KiB Po Szerokość: | Wysokość: | Rozmiar: 2.2 KiB |
Przed Szerokość: | Wysokość: | Rozmiar: 4.7 KiB Po Szerokość: | Wysokość: | Rozmiar: 4.7 KiB |
Przed Szerokość: | Wysokość: | Rozmiar: 2.8 KiB Po Szerokość: | Wysokość: | Rozmiar: 2.8 KiB |
Przed Szerokość: | Wysokość: | Rozmiar: 126 B Po Szerokość: | Wysokość: | Rozmiar: 126 B |
Przed Szerokość: | Wysokość: | Rozmiar: 3.1 KiB Po Szerokość: | Wysokość: | Rozmiar: 3.1 KiB |
Przed Szerokość: | Wysokość: | Rozmiar: 144 B Po Szerokość: | Wysokość: | Rozmiar: 144 B |
Przed Szerokość: | Wysokość: | Rozmiar: 399 B Po Szerokość: | Wysokość: | Rozmiar: 399 B |
Przed Szerokość: | Wysokość: | Rozmiar: 2.8 KiB Po Szerokość: | Wysokość: | Rozmiar: 2.8 KiB |
Przed Szerokość: | Wysokość: | Rozmiar: 276 B Po Szerokość: | Wysokość: | Rozmiar: 276 B |
|
@ -8,12 +8,5 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
.console .console_close_btn {
|
.console .console_close_btn {
|
||||||
background-image: url("@{icon-path}/@{button-console-close}");
|
.image-2x("@{icon-path}/@{button-console-close}", 22px, 66px);
|
||||||
}
|
|
||||||
|
|
||||||
@media print, (-o-min-device-pixel-ratio: 5/4), (-webkit-min-device-pixel-ratio: 1.25), (min-resolution: 1.25dppx) {
|
|
||||||
.console .console_close_btn {
|
|
||||||
background-image: url("@{icon-path}/@{button-console-close-retina}");
|
|
||||||
background-size: 22px 66px;
|
|
||||||
}
|
|
||||||
}
|
}
|
|
@ -18,10 +18,10 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
.btnquicksearchnav.btnquicksearchnavLeft .lbl span {
|
.btnquicksearchnav.btnquicksearchnavLeft .lbl span {
|
||||||
background-image: url("@{icon-path}/@{find-next-image}");
|
.image-2x("@{icon-path}/@{find-next-image}", 20px, 100px);
|
||||||
}
|
}
|
||||||
.btnquicksearchnav.btnquicksearchnavRight .lbl span {
|
.btnquicksearchnav.btnquicksearchnavRight .lbl span {
|
||||||
background-image: url("@{icon-path}/@{find-previous-image}");
|
.image-2x("@{icon-path}/@{find-previous-image}", 20px, 100px);
|
||||||
}
|
}
|
||||||
|
|
||||||
.findInRangeMarker {
|
.findInRangeMarker {
|
||||||
|
|
Przed Szerokość: | Wysokość: | Rozmiar: 426 B Po Szerokość: | Wysokość: | Rozmiar: 426 B |
Przed Szerokość: | Wysokość: | Rozmiar: 631 B Po Szerokość: | Wysokość: | Rozmiar: 631 B |
Przed Szerokość: | Wysokość: | Rozmiar: 427 B Po Szerokość: | Wysokość: | Rozmiar: 427 B |
Przed Szerokość: | Wysokość: | Rozmiar: 597 B Po Szerokość: | Wysokość: | Rozmiar: 597 B |
|
@ -15,7 +15,7 @@
|
||||||
.aboutDialogBox .aboutImage {
|
.aboutDialogBox .aboutImage {
|
||||||
position:relative;
|
position:relative;
|
||||||
color: white;
|
color: white;
|
||||||
background: url(images/about_cloud.png) no-repeat 0 0;
|
background: url(@plugin-path/images/about_cloud.png) no-repeat 0 0;
|
||||||
width: 515px;
|
width: 515px;
|
||||||
height: 339px;
|
height: 339px;
|
||||||
}
|
}
|
||||||
|
@ -29,7 +29,7 @@
|
||||||
.win-help-about .buttons .close {
|
.win-help-about .buttons .close {
|
||||||
height: 20px;
|
height: 20px;
|
||||||
width: 19px;
|
width: 19px;
|
||||||
background: url(images/close.png) no-repeat 4px 3px;
|
background: url(@plugin-path/images/close.png) no-repeat 4px 3px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.win-help-about .buttons .close.hover {
|
.win-help-about .buttons .close.hover {
|
||||||
|
|
|
@ -42,7 +42,7 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
.imgeditor canvas{
|
.imgeditor canvas{
|
||||||
background: url("@{image-path}/background.png");
|
background: url("@{plugin-path}/images/background.png");
|
||||||
cursor: crosshair;
|
cursor: crosshair;
|
||||||
box-shadow: 0 0 8px rgba(0,0,0,0.5);
|
box-shadow: 0 0 8px rgba(0,0,0,0.5);
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
|
|
Przed Szerokość: | Wysokość: | Rozmiar: 1.1 KiB Po Szerokość: | Wysokość: | Rozmiar: 1.1 KiB |
Przed Szerokość: | Wysokość: | Rozmiar: 214 B Po Szerokość: | Wysokość: | Rozmiar: 214 B |
Przed Szerokość: | Wysokość: | Rozmiar: 1.1 KiB Po Szerokość: | Wysokość: | Rozmiar: 1.1 KiB |
Przed Szerokość: | Wysokość: | Rozmiar: 216 B Po Szerokość: | Wysokość: | Rozmiar: 216 B |
Przed Szerokość: | Wysokość: | Rozmiar: 1.1 KiB Po Szerokość: | Wysokość: | Rozmiar: 1.1 KiB |
Przed Szerokość: | Wysokość: | Rozmiar: 196 B Po Szerokość: | Wysokość: | Rozmiar: 196 B |
Przed Szerokość: | Wysokość: | Rozmiar: 951 B Po Szerokość: | Wysokość: | Rozmiar: 951 B |
Przed Szerokość: | Wysokość: | Rozmiar: 112 B Po Szerokość: | Wysokość: | Rozmiar: 112 B |
Przed Szerokość: | Wysokość: | Rozmiar: 1.1 KiB Po Szerokość: | Wysokość: | Rozmiar: 1.1 KiB |
Przed Szerokość: | Wysokość: | Rozmiar: 222 B Po Szerokość: | Wysokość: | Rozmiar: 222 B |
Przed Szerokość: | Wysokość: | Rozmiar: 1.1 KiB Po Szerokość: | Wysokość: | Rozmiar: 1.1 KiB |
Przed Szerokość: | Wysokość: | Rozmiar: 199 B Po Szerokość: | Wysokość: | Rozmiar: 199 B |
Przed Szerokość: | Wysokość: | Rozmiar: 2.9 KiB Po Szerokość: | Wysokość: | Rozmiar: 2.9 KiB |
Przed Szerokość: | Wysokość: | Rozmiar: 200 B Po Szerokość: | Wysokość: | Rozmiar: 200 B |
Przed Szerokość: | Wysokość: | Rozmiar: 251 B Po Szerokość: | Wysokość: | Rozmiar: 251 B |
Przed Szerokość: | Wysokość: | Rozmiar: 4.6 KiB Po Szerokość: | Wysokość: | Rozmiar: 4.6 KiB |
Przed Szerokość: | Wysokość: | Rozmiar: 1.5 KiB Po Szerokość: | Wysokość: | Rozmiar: 1.5 KiB |
Przed Szerokość: | Wysokość: | Rozmiar: 1.5 KiB Po Szerokość: | Wysokość: | Rozmiar: 1.5 KiB |
Przed Szerokość: | Wysokość: | Rozmiar: 1.3 KiB Po Szerokość: | Wysokość: | Rozmiar: 1.3 KiB |
Przed Szerokość: | Wysokość: | Rozmiar: 1.5 KiB Po Szerokość: | Wysokość: | Rozmiar: 1.5 KiB |
Przed Szerokość: | Wysokość: | Rozmiar: 197 B Po Szerokość: | Wysokość: | Rozmiar: 197 B |
Przed Szerokość: | Wysokość: | Rozmiar: 1.5 KiB Po Szerokość: | Wysokość: | Rozmiar: 1.5 KiB |
Przed Szerokość: | Wysokość: | Rozmiar: 1.5 KiB Po Szerokość: | Wysokość: | Rozmiar: 1.5 KiB |
Przed Szerokość: | Wysokość: | Rozmiar: 1.4 KiB Po Szerokość: | Wysokość: | Rozmiar: 1.4 KiB |
Przed Szerokość: | Wysokość: | Rozmiar: 1.6 KiB Po Szerokość: | Wysokość: | Rozmiar: 1.6 KiB |
Przed Szerokość: | Wysokość: | Rozmiar: 1.5 KiB Po Szerokość: | Wysokość: | Rozmiar: 1.5 KiB |
Przed Szerokość: | Wysokość: | Rozmiar: 1.6 KiB Po Szerokość: | Wysokość: | Rozmiar: 1.6 KiB |
Przed Szerokość: | Wysokość: | Rozmiar: 1.5 KiB Po Szerokość: | Wysokość: | Rozmiar: 1.5 KiB |
Przed Szerokość: | Wysokość: | Rozmiar: 1.4 KiB Po Szerokość: | Wysokość: | Rozmiar: 1.4 KiB |
Przed Szerokość: | Wysokość: | Rozmiar: 1.6 KiB Po Szerokość: | Wysokość: | Rozmiar: 1.6 KiB |
Przed Szerokość: | Wysokość: | Rozmiar: 3.3 KiB Po Szerokość: | Wysokość: | Rozmiar: 3.3 KiB |
Przed Szerokość: | Wysokość: | Rozmiar: 1.5 KiB Po Szerokość: | Wysokość: | Rozmiar: 1.5 KiB |
Przed Szerokość: | Wysokość: | Rozmiar: 1.5 KiB Po Szerokość: | Wysokość: | Rozmiar: 1.5 KiB |
Przed Szerokość: | Wysokość: | Rozmiar: 139 B Po Szerokość: | Wysokość: | Rozmiar: 139 B |
Przed Szerokość: | Wysokość: | Rozmiar: 1.2 KiB Po Szerokość: | Wysokość: | Rozmiar: 1.2 KiB |
Przed Szerokość: | Wysokość: | Rozmiar: 191 B Po Szerokość: | Wysokość: | Rozmiar: 191 B |
Przed Szerokość: | Wysokość: | Rozmiar: 377 B Po Szerokość: | Wysokość: | Rozmiar: 377 B |
Przed Szerokość: | Wysokość: | Rozmiar: 1.3 KiB Po Szerokość: | Wysokość: | Rozmiar: 1.3 KiB |
Przed Szerokość: | Wysokość: | Rozmiar: 4.3 KiB Po Szerokość: | Wysokość: | Rozmiar: 4.3 KiB |
Przed Szerokość: | Wysokość: | Rozmiar: 806 B Po Szerokość: | Wysokość: | Rozmiar: 806 B |
Przed Szerokość: | Wysokość: | Rozmiar: 843 B Po Szerokość: | Wysokość: | Rozmiar: 843 B |
Przed Szerokość: | Wysokość: | Rozmiar: 3.0 KiB Po Szerokość: | Wysokość: | Rozmiar: 3.0 KiB |
Przed Szerokość: | Wysokość: | Rozmiar: 3.0 KiB Po Szerokość: | Wysokość: | Rozmiar: 3.0 KiB |
Przed Szerokość: | Wysokość: | Rozmiar: 3.0 KiB Po Szerokość: | Wysokość: | Rozmiar: 3.0 KiB |
Przed Szerokość: | Wysokość: | Rozmiar: 1.3 KiB Po Szerokość: | Wysokość: | Rozmiar: 1.3 KiB |
Przed Szerokość: | Wysokość: | Rozmiar: 1.4 KiB Po Szerokość: | Wysokość: | Rozmiar: 1.4 KiB |
Przed Szerokość: | Wysokość: | Rozmiar: 247 B Po Szerokość: | Wysokość: | Rozmiar: 247 B |
Przed Szerokość: | Wysokość: | Rozmiar: 243 B Po Szerokość: | Wysokość: | Rozmiar: 243 B |
Przed Szerokość: | Wysokość: | Rozmiar: 1.3 KiB Po Szerokość: | Wysokość: | Rozmiar: 1.3 KiB |
Przed Szerokość: | Wysokość: | Rozmiar: 3.1 KiB Po Szerokość: | Wysokość: | Rozmiar: 3.1 KiB |
Przed Szerokość: | Wysokość: | Rozmiar: 371 B Po Szerokość: | Wysokość: | Rozmiar: 371 B |
Przed Szerokość: | Wysokość: | Rozmiar: 389 B Po Szerokość: | Wysokość: | Rozmiar: 389 B |
Przed Szerokość: | Wysokość: | Rozmiar: 3.6 KiB Po Szerokość: | Wysokość: | Rozmiar: 3.6 KiB |
Przed Szerokość: | Wysokość: | Rozmiar: 709 B Po Szerokość: | Wysokość: | Rozmiar: 709 B |
Przed Szerokość: | Wysokość: | Rozmiar: 706 B Po Szerokość: | Wysokość: | Rozmiar: 706 B |
Przed Szerokość: | Wysokość: | Rozmiar: 6.2 KiB Po Szerokość: | Wysokość: | Rozmiar: 6.2 KiB |
Przed Szerokość: | Wysokość: | Rozmiar: 1.0 KiB Po Szerokość: | Wysokość: | Rozmiar: 1.0 KiB |
Przed Szerokość: | Wysokość: | Rozmiar: 1.7 KiB Po Szerokość: | Wysokość: | Rozmiar: 1.7 KiB |
Przed Szerokość: | Wysokość: | Rozmiar: 3.2 KiB Po Szerokość: | Wysokość: | Rozmiar: 3.2 KiB |
Przed Szerokość: | Wysokość: | Rozmiar: 1.1 KiB Po Szerokość: | Wysokość: | Rozmiar: 1.1 KiB |
Przed Szerokość: | Wysokość: | Rozmiar: 1.2 KiB Po Szerokość: | Wysokość: | Rozmiar: 1.2 KiB |
Przed Szerokość: | Wysokość: | Rozmiar: 1.7 KiB Po Szerokość: | Wysokość: | Rozmiar: 1.7 KiB |
Przed Szerokość: | Wysokość: | Rozmiar: 3.1 KiB Po Szerokość: | Wysokość: | Rozmiar: 3.1 KiB |
Przed Szerokość: | Wysokość: | Rozmiar: 2.2 KiB Po Szerokość: | Wysokość: | Rozmiar: 2.2 KiB |
Przed Szerokość: | Wysokość: | Rozmiar: 885 B Po Szerokość: | Wysokość: | Rozmiar: 885 B |
Przed Szerokość: | Wysokość: | Rozmiar: 887 B Po Szerokość: | Wysokość: | Rozmiar: 887 B |
Przed Szerokość: | Wysokość: | Rozmiar: 1.4 KiB Po Szerokość: | Wysokość: | Rozmiar: 1.4 KiB |
Przed Szerokość: | Wysokość: | Rozmiar: 654 B Po Szerokość: | Wysokość: | Rozmiar: 654 B |
Przed Szerokość: | Wysokość: | Rozmiar: 325 B Po Szerokość: | Wysokość: | Rozmiar: 325 B |
Przed Szerokość: | Wysokość: | Rozmiar: 4.2 KiB Po Szerokość: | Wysokość: | Rozmiar: 4.2 KiB |
Przed Szerokość: | Wysokość: | Rozmiar: 1.0 KiB Po Szerokość: | Wysokość: | Rozmiar: 1.0 KiB |
Przed Szerokość: | Wysokość: | Rozmiar: 1.1 KiB Po Szerokość: | Wysokość: | Rozmiar: 1.1 KiB |
Przed Szerokość: | Wysokość: | Rozmiar: 3.7 KiB Po Szerokość: | Wysokość: | Rozmiar: 3.7 KiB |
Przed Szerokość: | Wysokość: | Rozmiar: 615 B Po Szerokość: | Wysokość: | Rozmiar: 615 B |