Compare commits

..

No commits in common. "570fa30d4180a2070f6d03c8c1e2356da750832c" and "cb42e1d7fa0625b89131950cc7c88bcd4e73c568" have entirely different histories.

143 changed files with 238 additions and 752 deletions

View file

@ -1,16 +1,16 @@
<h1><b>Development</b></h1>
<p>Source code: &nbsp;<a href="https://code.0x2620.org/0x2620/oxjs"><code>code.0x2620.org/browser</code></a></p>
<p>Source code: &nbsp;<a href="https://trac.oxjs.org/browser"><code>trac.oxjs.org/browser</code></a></p>
<p>Open issues: &nbsp;<a href="https://code.0x2620.org/0x2620/oxjs/issues"><code>code.0x2620.org/0x2620/oxjs/issues</code></a></p>
<p>Open issues: &nbsp;<a href="https://trac.oxjs.org/report"><code>trac.oxjs.org/report</code></a></p>
<p>Bug reports and feature requests: &nbsp;<a href="https://code.0x2620.org/0x2620/oxjs/issues/new"><code>code.0x2620.org/0x2620/oxjs/issues/new</code></a></p>
<p>Bug reports and feature requests: &nbsp;<a href="https://trac.oxjs.org/newticket"><code>trac.oxjs.org/newticket</code></a></p>
<p>Mailing list: &nbsp;<a href="https://mailb.org/cgi-bin/mailman/listinfo/oxjs-dev"><code>mailb.org/cgi-bin/mailman/listinfo/oxjs-dev</code></a></p>
<p>E-mail: &nbsp;<a href="mailto:oxjs@oxjs.org"><code>oxjs@oxjs.org</code></a></p>
<p>Matrix: &nbsp;<a href="https://matrix.to/#/#oxjs:matrix.org"><code>#oxjs:matrix.org</code></a></p>
<p>IRC: &nbsp;<a href="irc://irc.freenode.net#oxjs"><code>irc.freenode.net#oxjs</code></a></p>
<p>Twitter: &nbsp;<a href="https://twitter.com/#!/OxJS"><code>@OxJS</code></a></p>

View file

@ -37,7 +37,7 @@
}
function getPath() {
var index, regexp = /Ox\.js(\?[\d\.]+|)$/,
var index, regexp = /Ox\.js(\?\d+|)$/,
scripts = document.getElementsByTagName('script'), src;
for (index = scripts.length - 1; index >= 0; index--) {
src = scripts[index].src;

View file

@ -63,8 +63,7 @@ Ox.LOCALE_NAMES = {
'el': 'Ελληνικά',
'en': 'English',
'fr': 'Français',
'hi': 'हिन्दी',
'tr': 'Türkçe'
'hi': 'हिन्दी'
};
//@ Ox.LOCALES <o> Locales per module
Ox.LOCALES = {};

View file

@ -244,7 +244,7 @@ Ox.decodeDeflate = function(string, callback) {
(function() {
function replace(string) {
return string.toString().replace(/%(?![0-9A-Fa-f]{2})/g, '%25')
return string.replace(/%(?![0-9A-Fa-f]{2})/g, '%25')
.replace(/(%[0-9A-Fa-f]{2})+/g, function(match) {
var hex = match.split('%').slice(1), ret;
Ox.forEach(Ox.range(1, hex.length + 1), function(length) {

View file

@ -1,89 +0,0 @@
{
"%": "%",
",": ",",
".": ".",
"%A, %B %e, %Y": "%A, %B %e, %Y",
"%a, %b %e, %Y": "%a, %b %e, %Y",
"AD": "MS",
"AM": "",
"Apr": "",
"April": "Nisan",
"Aug": "",
"August": "AÄźustos",
"BC": "MĂ–",
"%B %e, %Y": "",
"%b %e, %Y": "",
"d": "g",
"day": "gĂĽn",
"days": "gĂĽn",
"days{2}": "gĂĽn",
"Dec": "",
"December": "Aralık",
"Fall": "DĂĽĹźmek",
"Feb": "",
"February": "Ĺžubat",
"Fri": "",
"Friday": "Cuma",
"h": "s",
"hour": "saat",
"hours": "saat",
"hours{2}": "saat",
"%I:%M %p": "",
"%I:%M:%S %p": "",
"Jan": "",
"January": "Ocak",
"Jul": "",
"July": "Temmuz",
"Jun": "",
"June": "Haziran",
"m": "d",
"Mar": "",
"March": "Mart",
"May": "Mayıs",
"%m/%d/%Y": "",
"%m/%d/%y": "",
"minute": "dakika",
"minutes": "dakika",
"minutes{2}": "dakika",
"Mon": "",
"Monday": "Pazartesi",
"nd": ".",
"nd{22}": ".",
"no": "hayır",
"Nov": "",
"November": "Kasım",
"Oct": "",
"October": "Ekim",
"PM": "",
"rd": ".",
"rd{23}": ".",
"s": "s",
"Sat": "",
"Saturday": "Cumartesi",
"second": "saniye",
"seconds": "saniye",
"seconds{2}": "saniye",
"Sep": "",
"September": "EylĂĽl",
"Spring": "Bahar",
"st": ".",
"st{21}": ".",
"Summer": "Yaz",
"Sun": "",
"Sunday": "Pazar",
"th": ".",
"th{11}": ".",
"th{12}": ".",
"th{13}": ".",
"Thu": "",
"Thursday": "PerĹźembe",
"Tue": "",
"Tuesday": "Salı",
"Wed": "",
"Wednesday": "Çarşamba",
"Winter": "kış",
"y": "yy",
"year": "yıl",
"years": "yıl",
"years{2}": "yıl"
}

View file

@ -2458,7 +2458,6 @@ Video
font-size: 8px;
line-height: 10px;
text-align: center;
text-wrap: balance;
text-overflow: ellipsis;
text-shadow: rgba(0, 0, 0, 1) 1px 1px 1px;
color: rgb(255, 255, 255);

View file

@ -1188,11 +1188,9 @@ Scrollbars
background: -webkit-linear-gradient(left, $buttonActiveGradient);
}
@supports not selector(::-webkit-scrollbar) {
body.$themeClass {
scrollbar-color: $bodyBorder $bodyBackground;
}
}
/*
================================================================================

View file

@ -710,7 +710,6 @@
Ox.Focus.removeElement(this.oxid);
this.self(_).unbindKeyboard();
this.$tooltip && this.$tooltip.remove();
jQuery.cleanData(this.$element);
delete Ox.$elements[this.oxid];
// If setElement($element) was used, delete $element too
delete Ox.$elements[this.$element.oxid];
@ -739,7 +738,6 @@
this.findElements().forEach(function($element) {
$element.removeElement(false);
});
jQuery.cleanData(this.$element);
this.$element.replaceWith($element);
if ($element.$element) { // $element is Ox.Element
this.$element = $element.$element;

View file

@ -438,7 +438,7 @@
Ox.forEach(
Ox.makeObject(Ox.slice(arguments)),
function(data, event) {
target && target.postMessage(JSON.stringify({
target.postMessage(JSON.stringify({
data: data,
event: event,
target: isParent ? Ox.oxid : null

View file

@ -88,7 +88,6 @@ Ox.UI.getImageURL = Ox.cache(function(name, color, theme) {
color = color || 'default';
theme = theme || Ox.Theme();
themeData = Ox.Theme.getThemeData(theme);
image = image || Ox.UI.IMAGES['symbolHelp']
if (type == 'symbol') {
if (Ox.isString(color)) {
colorName = color;

View file

@ -683,21 +683,15 @@ Ox.URL = function(options) {
condition.operator = condition.operator.replace('=', '^')
}
}
var key = Ox.getObjectById(self.options.findKeys[state.type], condition.key)
if (
['date', 'enum', 'float', 'integer', 'time', 'year'].indexOf(key.type) > -1
['date', 'enum', 'float', 'integer', 'time', 'year'].indexOf(
Ox.getObjectById(self.options.findKeys[state.type], condition.key).type
) > -1
&& condition.value.indexOf(',') > -1
) {
condition.value = condition.value.split(',').map(function(value) {
return parseValue(decodeValue(value), condition.key, state);
});
} else if (Ox.isArray(key.type) && key.type[0] == "integer" && condition.value.indexOf(',') > -1) {
condition.value = condition.value.split(',').map(function(value) {
return parseValue(decodeValue(value), condition.key, state);
});
if (condition.value.length == 4) {
condition.value = [condition.value.slice(0,2), condition.value.slice(2)]
}
} else {
condition.value = parseValue(decodeValue(condition.value), condition.key, state);
}

View file

@ -31,29 +31,18 @@ Ox.ButtonGroup = function(options, self) {
.options(options || {})
.update({
value: function() {
var positions = [],
values = Ox.makeArray(self.options.value);
Ox.forEach(values, function(value) {
// fixme: this doesn't work in cases where
// multiple buttons can be selected
var position = Ox.getIndexById(
self.options.buttons, value
self.options.buttons, self.options.value
);
if (position > -1) {
positions.push(position);
}
self.$buttons[position].trigger('click');
} else if (self.options.min == 0) {
self.$buttons.forEach(function($button, i) {
$button.options('value') && $button.trigger('click');
});
if (positions.length < self.options.min) {
return;
}
Ox.forEach(self.$buttons, function(button, pos) {
var enabled = positions.indexOf(pos) > -1;
if (enabled !== button.value()) {
button.trigger('click');
}
});
}
})
.addClass(

View file

@ -87,16 +87,6 @@ Ox.Filter = function(options, self) {
{id: '=,', title: Ox._('is between')},
{id: '!=,', title: Ox._('is not between')}
],
place: [
{id: '==', title: Ox._('is')},
{id: '!==', title: Ox._('is not')},
{id: '=', title: Ox._('contains')},
{id: '!=', title: Ox._('does not contain')},
{id: '^', title: Ox._('starts with')},
{id: '!^', title: Ox._('does not start with')},
{id: '$', title: Ox._('ends with')},
{id: '!$', title: Ox._('does not end with')}
],
string: [
{id: '==', title: Ox._('is')},
{id: '!==', title: Ox._('is not')},
@ -131,7 +121,6 @@ Ox.Filter = function(options, self) {
integer: 0,
item: void 0,
list: '',
place: '',
string: '',
text: '',
time: '00:00:00',
@ -311,7 +300,7 @@ Ox.Filter = function(options, self) {
condition = {
key: key.id,
operator: condition.operator,
value: self.defaultValue[key.type] || ''
value: self.defaultValue[key.type]
};
if (isGroup) {
Ox.Log('Form', 'isGroup', self.options.value.operator)
@ -357,7 +346,7 @@ Ox.Filter = function(options, self) {
) {
condition.value = newFindKey.type == 'item'
? newFindKey.values[0].id
: (self.defaultValue[newFindKey.type] || '');
: self.defaultValue[newFindKey.type];
}
renderConditions();
}
@ -366,13 +355,6 @@ Ox.Filter = function(options, self) {
}
}
function isBetweenCondition(condition) {
if (condition.key == "resolution") {
return Ox.isArray(condition.value) && Ox.isArray(condition.value[0])
}
return Ox.isArray(condition.value)
}
function changeConditionOperator(pos, subpos, operator) {
subpos = Ox.isUndefined(subpos) ? -1 : subpos;
Ox.Log('FILTER', 'chCoOp', 'query', self.options.value)
@ -380,7 +362,7 @@ Ox.Filter = function(options, self) {
? self.options.value.conditions[pos]
: self.options.value.conditions[pos].conditions[subpos],
isBetween = operator.indexOf(',') > -1,
wasBetween = isBetweenCondition(condition),
wasBetween = Ox.isArray(condition.value),
wasUselessCondition = isUselessCondition(pos, subpos);
Ox.Log('FILTER', 'chCoOp', 'iB/wB', isBetween, wasBetween)
condition.operator = operator;
@ -587,14 +569,15 @@ Ox.Filter = function(options, self) {
}
function renderConditionOperator(condition) {
var key = Ox.getObjectById(self.options.findKeys, condition.key),
conditionType = getConditionType(key.type),
conditionOperators = self.conditionOperators[conditionType] || self.conditionOperators["string"];
Ox.Log('FILTER', 'rCO', condition, conditionType, conditionOperators)
Ox.Log('FILTER', 'rCO', condition, self.conditionOperators[getConditionType(
Ox.getObjectById(self.options.findKeys, condition.key).type
)])
return Ox.Select({
items: conditionOperators,
items: self.conditionOperators[getConditionType(
Ox.getObjectById(self.options.findKeys, condition.key).type
)],
overlap: 'right',
value: condition.operator + (isBetweenCondition(condition) ? ',' : ''),
value: condition.operator + (Ox.isArray(condition.value) ? ',' : ''),
width: 128
})
.bindEvent({
@ -610,7 +593,7 @@ Ox.Filter = function(options, self) {
}
function renderConditionValue(condition) {
return (!isBetweenCondition(condition)
return (!Ox.isArray(condition.value)
? renderInput(condition)
: Ox.InputGroup({
inputs: [
@ -716,11 +699,11 @@ Ox.Filter = function(options, self) {
Ox.Log('Form', 'renderInput', condition)
var $input,
findKey = Ox.getObjectById(self.options.findKeys, condition.key),
isBetween = isBetweenCondition(condition),
isArray = Ox.isArray(condition.value),
isHue,
// FIXME: always use 'int'
type = findKey.type == 'integer' ? 'int' : findKey.type,
value = !isBetween ? condition.value : condition.value[index],
value = !isArray ? condition.value : condition.value[index],
formatArgs, formatType, title;
if (type == 'boolean') {
$input = Ox.Select({
@ -737,7 +720,7 @@ Ox.Filter = function(options, self) {
return {id: i, title: v}
}),
value: value,
width: !isBetween ? 288 : 128
width: !isArray ? 288 : 128
});
} else if (type == 'item') {
$input = Ox.Select({
@ -764,8 +747,8 @@ Ox.Filter = function(options, self) {
$input = Ox.Range({
max: isHue ? 360 : 1,
min: 0,
size: !isBetween ? 288 : 128, // fixme: should be width!
width: !isBetween ? 288 : 128, // have to set this too, for formatting when tuple
size: !isArray ? 288 : 128, // fixme: should be width!
width: !isArray ? 288 : 128, // have to set this too, for formatting when tuple
step: isHue ? 1 : 0.01,
thumbSize: 48,
thumbValue: true,
@ -778,7 +761,7 @@ Ox.Filter = function(options, self) {
value: value
});
} else if (formatType == 'date') {
$input = Ox.DateInput(!isBetween ? {
$input = Ox.DateInput(!isArray ? {
value: value,
width: {day: 66, month: 66, year: 140}
} : {
@ -786,7 +769,7 @@ Ox.Filter = function(options, self) {
width: {day: 32, month: 32, year: 48}
});
} else if (formatType == 'duration') {
$input = Ox.TimeInput(!isBetween ? {
$input = Ox.TimeInput(!isArray ? {
seconds: true,
value: value,
width: {hours: 91, minutes: 91, seconds: 90}
@ -813,16 +796,16 @@ Ox.Filter = function(options, self) {
Ox.Input({
id: 'width',
type: 'int',
value: value[0]
value: value
}),
Ox.Input({
id: 'height',
type: 'int',
value: value[1]
value: value
})
],
separators: [{title: 'x', width: 16}],
width: !isBetween ? 288 : 128
width: !isArray ? 288 : 128
})
} else if ([
'currency', 'percent', 'unit', 'value'
@ -833,7 +816,7 @@ Ox.Filter = function(options, self) {
Ox.Input({
type: type,
value: value,
width: !isBetween ? 242 : 80
width: !isArray ? 242 : 80
}),
formatType == 'value' ? Ox.Select({
overlap: 'left',
@ -857,7 +840,7 @@ Ox.Filter = function(options, self) {
split: function(value) {
},
width: !isBetween ? 288 : 128
width: !isArray ? 288 : 128
})
}
} else {
@ -867,7 +850,7 @@ Ox.Filter = function(options, self) {
autocomplete: findKey.autocomplete,
autocompleteSelect: true,
autocompleteSelectSubmit: true,
width: !isBetween ? 288 : 128
width: !isArray ? 288 : 128
});
}
return $input;

View file

@ -15,18 +15,11 @@ Ox.FormPanel = function(options, self) {
var that = Ox.Element({}, self)
.defaults({
form: [],
listSize: 256,
section: null
listSize: 256
})
.options(options || {})
.update({
section: setSection
});
.options(options || {});
if (self.options.section === null) {
self.options.section = self.options.form[0].id;
}
self.section = Ox.getIndexById(self.options.form, self.options.section);
self.section = 0;
self.sectionTitle = self.options.form[self.section].title;
self.$list = Ox.TableList({
columns: [
@ -69,7 +62,7 @@ Ox.FormPanel = function(options, self) {
}),
max: 1,
min: 1,
selected: [self.options.section],
selected: [self.options.form[0].id],
sort: [{key: 'id', operator: '+'}],
unique: 'id',
width: self.options.listSize
@ -77,11 +70,7 @@ Ox.FormPanel = function(options, self) {
select: function(data) {
self.$sections[self.section].hide();
self.section = Ox.getIndexById(self.options.form, data.ids[0]);
if (self.section == -1) {
self.section = 0
}
self.$sections[self.section].show();
self.options.section = self.options.form[self.section].id;
that.triggerEvent('select', {section: data.ids[0]});
}
});
@ -141,18 +130,7 @@ Ox.FormPanel = function(options, self) {
});
});
self.$sections[self.section].show();
function setSection() {
var id = self.options.section,
section = Ox.getIndexById(self.options.form, id);
if (section > -1 && self.section != section) {
self.$sections[self.section].hide();
self.section = section;
self.$list.options('selected', [id]);
self.$sections[self.section].show();
}
};
self.$sections[0].show();
that.setElement(Ox.SplitPanel({
elements: [
@ -213,24 +191,13 @@ Ox.FormPanel = function(options, self) {
values <f> values
@*/
that.values = function() {
if (arguments.length === 0) {
var values = {};
self.options.form.forEach(function(section, i) {
values[section.id] = self.$forms[i].values();
});
return values;
} else {
var sections = arguments[0];
self.options.form.forEach(function(form, i) {
if (form.id in sections) {
self.$forms[i].values(sections[form.id]);
}
});
}
};
return that;
};

View file

@ -309,13 +309,6 @@ Ox.Input = function(options, self) {
click: function() {
self.options.disabled && that.gainFocus();
},
input: event => {
/*
if (!self.options.autocomplete && Ox.contains(['text', 'password'], self.options.type)) {
change(event)
}
*/
},
blur: blur,
change: change,
focus: focus

View file

@ -624,7 +624,7 @@ Ox.List = function(options, self) {
}
function getPageByPosition(pos) {
return Math.floor(pos / self.pageLength);
return Math.floor(pos / self.options.pageLength);
}
function getPageByScrollPosition(pos) {

View file

@ -922,12 +922,8 @@ Ox.Map = function(options, self) {
// This is the handler that actually adds the places to the map.
// Gets called after panning or zooming, and when the map is idle.
if (self.boundsChanged) {
var bounds = self.map.getBounds()
if (!bounds) {
self.boundsChanged = false;
return
}
var southWest = bounds.getSouthWest(),
var bounds = self.map.getBounds(),
southWest = bounds.getSouthWest(),
northEast = bounds.getNorthEast(),
south = southWest.lat(),
west = southWest.lng(),

View file

@ -1041,7 +1041,7 @@ Ox.MapEditor = function(options, self) {
var isResult = place && place.id[0] == '_',
isUndefined = !!self.options.selected
&& !self.$list.value(self.options.selected, 'type');
self.selectedPlace = place && place.id ? place.id : '';
self.selectedPlace = place.id || '';
if (isResult && isUndefined) {
Ox.print('place.id', place.id, 'self.options.selected', self.options.selected, 'type', self.$list.value(self.options.selected));
// define undefined place

View file

@ -212,7 +212,7 @@ Ox.MapMarker = function(options) {
size = that.map.options('markerSize');
//Ox.Log('Map', 'setOptions, that.map: ', that.map)
if (color == 'auto') {
that.color = typeColor[that.place.type] || typeColor['mapPlaceFeatureColor'];
that.color = typeColor[that.place.type];
} else if (Ox.isArray(color)) {
that.color = color;
} else {

View file

@ -306,7 +306,7 @@ Ox.Menu = function(options, self) {
self.optionGroup = {};
self.optionGroupOffset = {};
items.forEach(function(item, i) {
if (item.group && item.items) {
if (item.group) {
items[i] = item.items.map(function(v) {
return Ox.extend(v, {
group: item.group
@ -463,6 +463,10 @@ Ox.Menu = function(options, self) {
item = that.items[self.options.selected];
if (item) {
item.removeClass('OxSelected');
if (item.options('file')) {
item.$button.blurButton();
that.bindEvent({key_enter: clickSelectedItem})
}
}
/* disabled
that.triggerEvent('deselect', {
@ -481,6 +485,10 @@ Ox.Menu = function(options, self) {
});
item.options('items').length && that.submenus[item.options('id')].showMenu();
item.addClass('OxSelected');
if (item.options('file')) {
item.$button.focusButton();
that.unbindEvent('key_enter');
}
that.triggerEvent('select', {
id: item.options('id'),
title: Ox.isString(item.options('title')[0])

View file

@ -51,6 +51,9 @@ Ox.MenuItem = function(options, self) {
that[
self.options.disabled ? 'addClass' : 'removeClass'
]('OxDisabled');
self.options.file && that.$button.options({
disabled: self.options.disabled
});
},
keyboard: function() {
self.options.keyboard = parseKeyboard(self.options.keyboard);
@ -74,27 +77,6 @@ Ox.MenuItem = function(options, self) {
self.options.checked = false;
}
if (self.options.file) {
self.$input = $('<input>')
.attr(
Ox.extend({
type: 'file'
}, self.options.file.multiple ? {
multiple: true
} : {})
)
.on({
change: function(event) {
var filelist = this.files
var files = [];
Ox.loop(filelist.length, function(i) {
files.push(filelist.item(i));
});
self.options.menu.clickItem(self.options.position, files);
}
})
}
that.append(
that.$status = Ox.$('<td>')
.addClass('OxCell OxStatus')
@ -122,17 +104,21 @@ Ox.MenuItem = function(options, self) {
: {}
)
.html(
self.options.file
? that.$button = Ox.FileButton(Ox.extend({
disabled: self.options.disabled,
title: self.options.title[0]
}, self.options.file)).bindEvent({
click: function(data) {
self.options.menu.clickItem(self.options.position, data.files);
}
})
: (
Ox.isString(self.options.title[0])
? self.options.title[0]
: Ox.$('<div>').html(self.options.title[0]).html()
).on({
click: self.options.file ? function(event) {
!self.options.disabled && self.$input.click()
event.preventDefault()
event.stopPropagation()
} : null
})
)
)
)
.append(
that.$modifiers = Ox.$('<td>')

View file

@ -371,8 +371,7 @@ Ox.AnnotationFolder = function(options, self) {
'equal', 'e', 'f', 'g', 'h', 'i', 'minus', 'n', 'o',
'openbracket', 'p', 'shift_0', 'shift_equal',
'shift_g', 'shift_i', 'shift_minus', 'shift_o',
'slash', 'space',
'control_c', 'control_v',
'slash', 'space'
].forEach(function(key) {
key = 'key.' + key;
self.$annotations.bindEvent(key, function() {
@ -402,8 +401,7 @@ Ox.AnnotationFolder = function(options, self) {
'equal', 'f', 'g', 'h', 'i', 'minus', 'n', 'o',
'openbracket', 'p', 'shift_0', 'shift_equal',
'shift_g', 'shift_i', 'shift_minus', 'shift_o',
'slash', 'space',
'control_c', 'control_v',
'slash', 'space'
].forEach(function(key) {
key = 'key_' + key;
self.$annotations.bindEvent(key, function() {

View file

@ -325,9 +325,9 @@ Ox.AnnotationPanel = function(options, self) {
} else if (data.id == 'export') {
that.triggerEvent('exportannotations');
} else if (data.id == 'find') {
that.triggerEvent('find', {value: Ox.decodeHTMLEntities(value)});
that.triggerEvent('find', {value: value});
} else if (data.id == 'findannotations') {
that.triggerEvent('findannotations', {key: key, value: Ox.decodeHTMLEntities(value)});
that.triggerEvent('findannotations', {key: key, value: value});
} else if (data.id == 'import') {
that.triggerEvent('importannotations');
} else if (data.id == 'insert') {
@ -457,8 +457,7 @@ Ox.AnnotationPanel = function(options, self) {
'equal', 'f', 'g', 'h', 'i', 'minus', 'n', 'o',
'openbracket', 'p', 'shift_0', 'shift_equal',
'shift_g', 'shift_i', 'shift_minus', 'shift_o',
'slash', 'space',
'control_c', 'control_v',
'slash', 'space'
].forEach(function(key) {
key = 'key.' + key;
self.$folder[index].bindEvent(key, function() {

View file

@ -89,7 +89,7 @@ Ox.ClipPanel = function(options, self) {
}
});
self.columns = [].concat([
self.columns = [
{
align: 'right',
id: 'index',
@ -183,9 +183,7 @@ Ox.ClipPanel = function(options, self) {
visible: true,
width: 90
},
],
hasVolume() ?
[{
{
align: 'right',
editable: self.options.editable,
format: function(value, data) {
@ -200,8 +198,6 @@ Ox.ClipPanel = function(options, self) {
visible: false,
width: 45
},
] : [],
[
{
addable: false,
id: 'sort',
@ -209,8 +205,7 @@ Ox.ClipPanel = function(options, self) {
// title: Ox._('Sort'),
visible: false
}
]
);
];
self.$menubar = Ox.Bar({
size: 24
@ -592,12 +587,6 @@ Ox.ClipPanel = function(options, self) {
&& self.options.sort[0].operator == '+';
}
function hasVolume() {
return self.options.editable
&& self.options.sort && self.options.sort.length
&& self.options.sort[0].key == 'index'
}
function joinClips() {
var clips = getEditable(self.options.selected).map(function(id) {
return Ox.clone(Ox.getObjectById(self.options.clips, id));

View file

@ -109,11 +109,6 @@ Ox.VideoAnnotationPanel = function(options, self) {
})
.options(options || {})
.update({
enableSubtitles: function() {
self.$player.forEach(function($player) {
$player.options('enableSubtitles', self.options.enableSubtitles);
});
},
height: setSizes,
'in': function() {
setPoint('in', self.options['in']);
@ -972,8 +967,7 @@ Ox.VideoAnnotationPanel = function(options, self) {
'equal', 'f', 'g', 'h', 'i', 'minus', 'n', 'o',
'openbracket', 'p', 'shift_0', 'shift_equal',
'shift_g', 'shift_i', 'shift_minus', 'shift_o',
'slash', 'space',
'control_c', 'control_v',
'slash', 'space'
].forEach(function(key) {
key = 'key.' + key;
self.$annotationPanel.bindEvent(key, function() {
@ -1750,9 +1744,6 @@ Ox.VideoAnnotationPanel = function(options, self) {
self.$annotationPanel[i].removeItem(id);
};
*/
that.playInToOut = function() {
self.$player[0].playInToOut();
}
return that;

View file

@ -266,6 +266,9 @@ Ox.VideoEditPanel = function(options, self) {
.bindEvent({
durationchange: function(data) {
self.options.duration = data.duration;
self.$timeline && self.$timeline.replaceWith(
self.$timeline = getTimeline()
);
setPosition(self.$video.options('position'), true);
self.$clipPanel.options({duration: self.options.duration});
},

View file

@ -31,10 +31,8 @@ Ox.VideoElement = function(options, self) {
.defaults({
autoplay: false,
loop: false,
muted: false,
playbackRate: 1,
items: [],
volume: 1
items: []
})
.options(options || {})
.update({
@ -103,8 +101,7 @@ Ox.VideoElement = function(options, self) {
self.$videos = [getVideo(), getVideo()];
self.$video = self.$videos[self.currentVideo];
self.video = self.$video[0];
self.volume = self.options.volume;
self.muted = self.options.muted;
self.volume = 1;
self.$brightness = $('<div>').css({
width: '100%',
height: '100%',
@ -165,33 +162,15 @@ Ox.VideoElement = function(options, self) {
},
progress: function() {
// stop buffering if buffered to end point
var video = this,
item = self.items[self.currentItem],
nextItem = Ox.mod(self.currentItem + 1, self.numberOfItems),
next = self.items[nextItem],
nextVideo = self.$videos[Ox.mod(self.currentVideo + 1, self.$videos.length)][0];
if (self.video == video && (video.preload != 'none' || self.buffering)) {
if (clipCached(video, item)) {
if (self.video == this && self.buffering) {
var item = self.items[self.currentItem];
Ox.range(self.video.buffered.length).forEach(function(i) {
if (self.video.buffered.start(i) <= item['in']
&& self.video.buffered.end(i) >= item.out) {
self.video.preload = 'none';
self.buffering = false;
if (nextVideo != self.video) {
nextVideo.preload = 'auto';
}
}
} else if (!self.buffering && nextVideo == video && video.preload != 'none') {
if (clipCached(video, next)) {
video.preload = 'none';
}
}
function clipCached(video, item) {
var cached = false
Ox.range(video.buffered.length).forEach(function(i) {
if (video.buffered.start(i) <= item['in']
&& self.video.buffered.end(i) >= item.out) {
cached = true
}
});
return cached
}
},
seeking: function() {
@ -223,10 +202,6 @@ Ox.VideoElement = function(options, self) {
} else {
video = document.createElement('video');
}
video.playsinline = true
video.setAttribute('playsinline', 'playsinline')
video.setAttribute('webkit-playsinline', 'webkit-playsinline')
video.WebKitPlaysInline = true
return $(video);
};
@ -356,7 +331,7 @@ Ox.VideoElement = function(options, self) {
function setCurrentVideo(callback) {
var css = {},
muted = self.muted,
muted = false,
item = self.items[self.currentItem],
next;
Ox.Log('Video', 'sCV', item);
@ -368,6 +343,7 @@ Ox.VideoElement = function(options, self) {
if (self.video) {
self.$videos[self.currentVideo].hide();
self.video.pause();
muted = self.video.muted;
}
self.currentVideo = Ox.mod(self.currentVideo + 1, self.$videos.length);
self.$video = self.$videos[self.currentVideo];
@ -376,8 +352,8 @@ Ox.VideoElement = function(options, self) {
if (self.$video.attr('src') != item.src) {
self.loadedMetadata && Ox.Log('Video', 'caching next item failed, reset src');
self.video.src = item.src;
}
self.video.preload = 'auto';
}
self.video.volume = getVolume();
self.video.playbackRate = self.options.playbackRate;
self.$video.css(css);
@ -554,11 +530,8 @@ Ox.VideoElement = function(options, self) {
/*@
muted <f> get/set muted
@*/
that.muted = function(value) {
if (!Ox.isUndefined(value)) {
self.muted = value;
}
return getset('muted', value);
that.muted = function() {
return getset('muted', arguments[0]);
};
/*@

View file

@ -444,9 +444,7 @@ Ox.VideoPlayer = function(options, self) {
self.$video = Ox.VideoElement({
items: self.video,
loop: self.options.loop,
muted: self.options.muted,
playbackRate: self.options.playbackRate,
volume: self.options.volume
playbackRate: self.options.playbackRate
})
.bindEvent(Ox.extend({
durationchange: durationchange,
@ -1794,23 +1792,21 @@ Ox.VideoPlayer = function(options, self) {
function goToNext(type, direction) {
// type can be 'chapter' or 'result'
var position, positions;
if (type == 'chapter' && self.options.chapters) {
if (type == 'chapter') {
positions = self.options.chapters.map(function(chapter) {
return chapter.position;
});
} else if (type == 'result' && self.results) {
} else if (type == 'result') {
positions = Ox.unique(self.results.map(function(result) {
return result['in'];
}));
}
if (positions) {
position = Ox.nextValue(positions, self.options.position, direction);
setPosition(position);
that.triggerEvent('position', {
position: self.options.position
});
}
}
function goToPoint() {
that.triggerEvent('gotopoint');

View file

@ -478,7 +478,7 @@ Ox.VideoPlayerPanel = function(options, self) {
}
function getAnnotations() {
return !self.options.layers ? [] : Ox.flatten(self.options.layers.map(function(layer) {
return Ox.flatten(self.options.layers.map(function(layer) {
return layer.items.map(function(item) {
return {id: item.id, 'in': item['in'], out: item.out, text: item.value};
});
@ -722,10 +722,6 @@ Ox.VideoPlayerPanel = function(options, self) {
self.$videoPanel.toggleElement(1);
};
that.playInToOut = function() {
self.$video.playInToOut();
};
return that;
}

View file

@ -1,281 +0,0 @@
{
", doubleclick to edit": ", düzenlemek için çift tıkla",
"Add": "Ekle",
"Add Files": "Dosya Ekle",
"Add Place": "Yer Ekle",
"Add a condition": "koĹźul ekle",
"Add a group of conditions": "Bir grup koĹźul ekle",
"Add column after": "Sonrasına sütun ekle",
"Add column before": "Ă–nce sĂĽtun ekle",
"Add row above": "Üste satır ekle",
"Add row below": "Altına satır ekle",
"Add {0}": "{0} ekle",
"Adding...": "Ekleniyor..",
"All": "TĂĽm",
"Alternative Names": "Alternatif Ä°simler",
"Area": "Alan",
"At Current Position": "Mevcut Konumda",
"Blockquote": "Blok halinde alıntıla",
"Bold": "Kalın",
"Borough": "Mahalle",
"Building": "Bina",
"Bullets": "Madde Ä°Ĺźaretleri",
"By Duration": "Süreye göre",
"By Position": "Pozisyona Göre",
"By Text": "Metne gore",
"Cancel": "Ä°ptal et",
"Cancel/Deselect": "İptal et/Seçimi kaldır",
"Cancelled": "Ä°ptal edildi",
"City": "Ĺžehir",
"Clear": "Temizle",
"Clear Event": "EtkinliÄźi temizle",
"Clear Place": "Yeri Temizle",
"Clearing...": "Temizleniyor",
"Click to hide": "gizlemek için tıklayın",
"Click to pan, doubleclick to zoom": "Kaydırmak için tıklayın, yakınlaştırmak için çift tıklayın",
"Click to select": "Seçmek için tıklayın",
"Click to select, doubleclick to edit": "Seçmek için tıklayın, düzenlemek için çift tıklayın",
"Click to show": "Göstermek için tıklayın",
"Close": "Kapat",
"Complete": "Tamamlandı",
"Country": "Ăślke",
"Date": "Tarih",
"Date Created": "OluĹźturulma Tarihi",
"Date Modified": "DeÄźiĹźtirilme Tarihi",
"Define": "Tanımla",
"Define Event": "Etkinlik Tanımla",
"Define Place": "Yer Tanımla",
"Delete Annotation": "Ek Açıklamayı Sil",
"Deselect": "Seçimi Kaldır",
"Deselect Annotation": "Ek Açıklamanın Seçimini Kaldır",
"Don't Shuffle": "Karıştırma",
"Done": "Bitti",
"Download": "Ä°ndir",
"Download Selection...": "Seçimi İndir...",
"Download Video...": "Video Ä°ndir",
"Drag to resize": "Yeniden boyutlandırmak için sürükleyin",
"Drag to resize or click to hide": "Yeniden boyutlandırmak için sürükleyin veya gizlemek için tıklayın",
"Drag to resize or click to toggle map": "eniden boyutlandırmak için sürükleyin veya haritayı değiştirmek için tıklayın",
"Duration": "SĂĽre",
"East": "DoÄźu",
"Edit": "Kurgula",
"Edit Annotation": "Ek Açıklamayı Kurgula",
"Edit/Submit": "Kurgula/Gönder",
"Editing Options": "Kurgulama Seçenekleri",
"Embed Selection...": "Seçimi Yerleştir",
"End": "Son",
"Enter Fullscreen": "Tam Ekran Gir",
"Event": "Etkinlik",
"Events": "Etkinlikler",
"Examples...": "Ă–rnekler...",
"Exit Fullscreen": "Tam Ekrandan Çık",
"Feature": "Ă–zellik",
"Find": "Bul",
"Find in All {0}": "Tüm {0} İçinde Bul",
"Find in List": "Listede Bul",
"Find in This {0}": "Bu {0}'da Bul",
"Find on Map": "Haritada Bul",
"Find...": "Bul...",
"Find: All": "Bul: TĂĽmĂĽ",
"Find: Alternative Names": "Bul: Alternatif Ä°simler",
"Find: Geoname": "Bul: Geoisim",
"Find: Name": "Bul: Ä°sim",
"Flag": "Bayrak",
"Font Size": "Yazı Tipi Boyutu",
"Generating Documentation...": "DokĂĽmantasyon OluĹźturuyor...",
"Geoname": "Geo isim",
"Go One Frame Back": "Bir Kare Geri Git",
"Go One Frame Forward": "Bir Kare Ä°leri Git",
"Go One Line Down": "Bir Satır Aşağı Git",
"Go One Line Up": "Bir Satır Yukarı Git",
"Go One Second Back": "Bir Saniye Geri Git",
"Go One Second Forward": "Bir Saniye Ä°leriye Git",
"Go to First Frame": "Ä°lk Kareye Git",
"Go to In Point": "Giriş Noktasına Git",
"Go to Last Frame": "Son Kareye Git",
"Go to Next Annotation": "Sonraki Açıklamaya Git",
"Go to Next Cut": "Sonraki Kesime Git",
"Go to Next Result": "Sonraki Sonuca Git",
"Go to Out Point": "Çıkış Noktasına Git",
"Go to Poster Frame": "Poster Çerçevesine Git",
"Go to Previous Annotation": "Önceki Ek Açıklamaya Git",
"Go to Previous Cut": "Ă–nceki Kesmeye Git",
"Go to Previous Result": "Ă–nceki Sonuca Git",
"Headline": "Başlık",
"Hide": "Sakla",
"Hide Controls": "Kontrolleri Gizle",
"Hide Labels": "Etiketleri Gizle",
"Home": "Ana Sayfa",
"Home Channel": "Ana Kanal",
"Image": "Ä°mge",
"Import Annotations...": "Ek Açıklamaları İçe Aktar...",
"In Current Selection": "Mevcut Seçimde",
"Insert": "Ekle",
"Insert HTML": "HTML Ekle",
"Insert...": "Ekle...",
"Italic": "Ä°talik",
"Join Clip(s) at Cuts": "Klip(ler)i Kesimlerde BirleĹźtir",
"Keyboard Shortcuts": "Klavye Kısayolları",
"Keyboard Shortcuts...": "Klavye Kısayolları...",
"Large": "BĂĽyĂĽk",
"Large Player": "Büyük Oynatıcı",
"Larger": "Daha BĂĽyĂĽk",
"Latitude": "Enlem",
"Limit to": "Sınırla",
"Linebreak": "Satır Sonu",
"Link": "Link",
"List": "Liste",
"Longitude": "Boylam",
"Make Clip(s) Static": "Klip(ler)i Statik Yap",
"Map Options": "Harita Seçenekleri",
"Match": "EĹźleme",
"Matches": "EĹźlemeler",
"Medium": "Orta",
"Monospace": "Monospace",
"Mute": "Sessiz",
"Mute/Unmute": "Sesi Kapat/Sesi Aç",
"Name": "Ä°sim",
"New Event": "Yeni Etkinlik",
"New Place": "Yeni Yer",
"Next": "Sıradaki",
"Next Channel": "Yeni Kanal",
"Next Result": "Bir Sonraki Sonuç",
"No file selected": "Seçili dosya yok",
"No files selected": "Seçili dosya yok",
"North": "Kuzey",
"Numbers": "Sayılar",
"Open in New Tab": "Yeni Sekmede Aç",
"Options": "Seçenekler",
"Other": "DiÄźer",
"Paragraph": "Paragraf",
"Pause": "Durdur",
"Paused": "Durduruldu",
"Person": "KiĹźi",
"Place": "Yer",
"Place or Event": "Yer ya da Etkinlik",
"Play": "Oynat",
"Play Current Track": "Seçili Parçayı Çal",
"Play In to Out": "Giriş-Çıkış Arasında Oynat",
"Play Next Track": "Bir Sonraki Parçayı Çal",
"Play/Pause": "BaĹźlat/Durdur",
"Previous": "Ă–nceki",
"Previous Channel": "Ă–nceki Kanal",
"Previous Result": "Önceki Sonuç",
"Region": "Bölge",
"Reload": "Yeniden YĂĽkle",
"Remove": "Kaldır",
"Remove Event": "Etkinliği Kaldır",
"Remove File": "Dosyayı Kaldır",
"Remove Place": "Yeri Kaldır",
"Remove this column": "Bu sütunu kaldır",
"Remove this condition": "Bu koşulu kaldır",
"Remove this group of conditions": "Bu koşul grubunu kaldır ",
"Remove this row": "Bu satırı kaldır",
"Removing...": "Kaldırıyor...",
"Repeat All": "Hepsini Tekrarla",
"Repeat None": "Hiçbirini Tekrarlama",
"Repeat One": "Birini Tekrarla",
"Reset this condition": "Bu koşulu sıfırla",
"Resolution": "Çözünürlük",
"Restart": "Yeniden BaĹźlat",
"Restore Defaults": "Varsayılanları Geri Yükle",
"Results": "Sonuçlar",
"Resume": "Devam Et",
"Right-to-Left": "SaÄźdan Sola",
"Run Tests": "Testleri Çalıştır",
"Save Changes": "DeÄźiĹźiklikleri Kaydet",
"Save as Smart List": "Akıllı Liste olarak Kaydet",
"Scale to Fill": "Doldurmak için Ölç",
"Scale to Fit": "Sığacak Şekilde Ölç",
"Scroll to Player": "Oyuncuya Kaydır",
"Select Current Annotation": "Geçerli Ek Açılamayı Seç",
"Select Current Cut": "Geçerli Kesimi Seç",
"Select File": "Dosya Seç",
"Select Next Annotation": "Sonraki Açıklamayı Seç",
"Select Previous Annotation": "Önceki Açıklamayı Seç",
"Set ": "Berlie",
"Set In Point": "Giriş Noktası Belirle",
"Set Out Point": "Çıkış Noktası Belirle",
"Set Poster Frame": "Poster Karesi Belirle",
"Settings": "Ayarlar",
"Show Annotations": "Ek Açıklamayı Göster",
"Show Controls": "Kontrol Çubuğunu Göster",
"Show Dates": "Tarihleri Göster",
"Show Labels": "Etiketleri Göster",
"Show Other": "Diğerini Göster",
"Show People": "İnsanları Göster",
"Show Places": "Yerleri Göster",
"Show Remaining Time": "Kalan Zamanı Göster",
"Show Subtitles": "Altyazıları Göster",
"Show Users": "Kullanıcıları Göster",
"Shuffle": "Karıştır",
"Small": "Küçük",
"Small Player": "Küçük Oynatıcı",
"Smaller": "Daha Küçük",
"Sort Annotations": "Ek Açıklamayı Düzenle",
"South": "GĂĽney",
"Split Clip(s) at Cuts": "Klip(ler)i Kesimlerde Böl",
"Start": "BaĹźlat",
"Street": "Sokak",
"Strike": "Üstünü Çiz",
"Subscript": "Alt Simge",
"Subtitles": "Altyazılar",
"Superscript": "Ăśst Simge",
"Switch Theme": "Temayı Değiştir",
"Timeline": "Zaman Çizelgesi",
"Title": "Başlık",
"Turn Volume Down": "Sesi Kıs",
"Turn Volume Up": "Sesi Aç",
"Type": "TĂĽr",
"Underline": "Altını Çiz",
"Undo Changes": "DeÄźiĹźiklikleri Geri Al",
"Unmute": "Sesi Aç",
"Untitled": "Ä°simsiz",
"User": "Kullanıcı",
"Valid": "Geçerli",
"View": "Görüntüle",
"View Live": "Canlı Görüntüle",
"View Source": "Kaynağı Görüntüle",
"View as Grid": "Izgara Olarak Görüntüle",
"View as List": "Liste Olarak Görüntüle",
"Volume": "Ses Seviyesi",
"West": "Batı",
"add": "ekle",
"all": "hepsi",
"and": "ve",
"annotations": "ek açıklamalar",
"any": "herhangi",
"ascending": "artan",
"bracket": "parantez",
"contains": "içerir",
"descending": "azalan",
"does not contain": "içermez",
"does not end with": "ile bitmiyor",
"does not start with": "ile baĹźlamaz",
"ends with": "ile biter",
"file": "dosya",
"files": "dosyalar",
"in": "içinde",
"is": "",
"is after": "sonra",
"is before": "önce",
"is between": "arasında",
"is greater than": "'den bĂĽyĂĽktĂĽr",
"is less than": "daha azdır",
"is not": "deÄźil",
"is not after": "sonra deÄźil",
"is not before": "önce değil",
"is not between": "arasında değil",
"is not greater than": "daha bĂĽyĂĽk deÄźil",
"is not less than": "daha az deÄźil",
"items": "öğeler",
"of the following conditions": "aşağıdaki koşullardan",
"order": "sırala",
"sorted by": "göre sırala",
"starts with": "ile baĹźla",
"unknown": "bilinmiyor",
"{0} Century": "Yüzyıl",
"{0} Century BC": "Yüzyıl MÖ",
"{0} Millennium": "{0} Milenyum",
"{0} Millennium BC": "MĂ– {0} Milenyum"
}

View file

@ -1,3 +1,3 @@
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="256" viewBox="0 0 256 256">
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="256">
<polygon points="96,248 96,8 160,8 160,248" fill="#FFFFFF" stroke="#000000" stroke-width="16"/>
</svg>

Before

Width:  |  Height:  |  Size: 194 B

After

Width:  |  Height:  |  Size: 172 B

View file

@ -1,3 +1,3 @@
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="256" viewBox="0 0 256 256">
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="256">
<polygon points="80,248 128,0 176,248" fill="#FFFFFF" stroke="#000000" stroke-width="16"/>
</svg>

Before

Width:  |  Height:  |  Size: 189 B

After

Width:  |  Height:  |  Size: 167 B

View file

@ -1,3 +1,3 @@
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="256" viewBox="0 0 256 256">
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="256">
<polygon points="18,248 248,18 248,248" fill="#FFFFFF" stroke="#000000" stroke-width="16"/>
</svg>

Before

Width:  |  Height:  |  Size: 190 B

After

Width:  |  Height:  |  Size: 168 B

View file

@ -1,3 +1,3 @@
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="256" viewBox="0 0 256 256">
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="256">
<polygon points="8,8 88,8 88,168 248,168 248,248 8,248" fill="#FFFFFF" stroke="#000000" stroke-width="16"/>
</svg>

Before

Width:  |  Height:  |  Size: 206 B

After

Width:  |  Height:  |  Size: 184 B

View file

@ -1,3 +1,3 @@
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="256" viewBox="0 0 256 256">
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="256">
<polygon points="8,8 248,8 248,88 88,88 88,248 8,248" fill="#FFFFFF" stroke="#000000" stroke-width="16"/>
</svg>

Before

Width:  |  Height:  |  Size: 204 B

After

Width:  |  Height:  |  Size: 182 B

View file

@ -1,3 +1,3 @@
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="256" viewBox="0 0 256 256">
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="256">
<polygon points="8,18 238,248 8,248" fill="#FFFFFF" stroke="#000000" stroke-width="16"/>
</svg>

Before

Width:  |  Height:  |  Size: 187 B

After

Width:  |  Height:  |  Size: 165 B

View file

@ -1,3 +1,3 @@
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="256" viewBox="0 0 256 256">
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="256">
<polygon points="168,8 248,8 248,248 8,248 8,168 168,168" fill="#FFFFFF" stroke="#000000" stroke-width="16"/>
</svg>

Before

Width:  |  Height:  |  Size: 208 B

After

Width:  |  Height:  |  Size: 186 B

View file

@ -1,3 +1,3 @@
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="256" viewBox="0 0 256 256">
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="256">
<polygon points="8,8 248,8 248,248 168,248 168,88 8,88" fill="#FFFFFF" stroke="#000000" stroke-width="16"/>
</svg>

Before

Width:  |  Height:  |  Size: 206 B

After

Width:  |  Height:  |  Size: 184 B

View file

@ -1,3 +1,3 @@
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="256" viewBox="0 0 256 256">
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="256">
<polygon points="16,8 240,8 128,128" fill="#FFFFFF" stroke="#000000" stroke-width="16"/>
</svg>

Before

Width:  |  Height:  |  Size: 187 B

After

Width:  |  Height:  |  Size: 165 B

View file

@ -1,4 +1,4 @@
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="256" viewBox="0 0 256 256">
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="256">
<g stroke="#808080" stroke-width="48">
<line x1="128" y1="16" x2="128" y2="240"/>
<line x1="16" y1="128" x2="240" y2="128"/>

Before

Width:  |  Height:  |  Size: 253 B

After

Width:  |  Height:  |  Size: 231 B

View file

@ -1,4 +1,4 @@
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="256" viewBox="0 0 256 256">
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="256">
<line x1="128" y1="0" x2="128" y2="128" stroke="#808080" stroke-width="48"/>
<polygon points="32,128 224,128 128,256" fill="#808080"/>
</svg>

Before

Width:  |  Height:  |  Size: 237 B

After

Width:  |  Height:  |  Size: 215 B

View file

@ -1,4 +1,4 @@
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="256" viewBox="0 0 256 256">
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="256">
<polygon points="0,128 128,32 128,224" fill="#808080"/>
<line x1="128" y1="128" x2="256" y2="128" stroke="#808080" stroke-width="48"/>
</svg>

Before

Width:  |  Height:  |  Size: 237 B

After

Width:  |  Height:  |  Size: 215 B

View file

@ -1,4 +1,4 @@
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="256" viewBox="0 0 256 256">
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="256">
<line x1="0" y1="128" x2="128" y2="128" stroke="#808080" stroke-width="48"/>
<polygon points="128,32 256,128 128,224" fill="#808080"/>
</svg>

Before

Width:  |  Height:  |  Size: 237 B

After

Width:  |  Height:  |  Size: 215 B

View file

@ -1,4 +1,4 @@
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="256" viewBox="0 0 256 256">
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="256">
<polygon points="32,128 128,0 224,128" fill="#808080"/>
<line x1="128" y1="128" x2="128" y2="256" stroke="#808080" stroke-width="48"/>
</svg>

Before

Width:  |  Height:  |  Size: 237 B

After

Width:  |  Height:  |  Size: 215 B

View file

@ -1,4 +1,4 @@
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="256" viewBox="0 0 256 256">
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="256">
<polygon points="64,48 224,16 224,64 64,96" fill="#808080"/>
<line x1="80" y1="80" x2="80" y2="208" stroke="#808080" stroke-width="32"/>
<line x1="208" y1="48" x2="208" y2="176" stroke="#808080" stroke-width="32"/>

Before

Width:  |  Height:  |  Size: 517 B

After

Width:  |  Height:  |  Size: 495 B

View file

@ -1,4 +1,4 @@
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="256" viewBox="0 0 256 256">
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="256">
<g fill="none" stroke="#808080">
<path d="M 20,28 l 108,36 l 108,-36" stroke-width="24"/>
<path d="M 224,32 l 0,160 l -96,32 l -96,-32 l 0,-160" stroke-width="32"/>

Before

Width:  |  Height:  |  Size: 357 B

After

Width:  |  Height:  |  Size: 335 B

View file

@ -1,3 +1,3 @@
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="256" viewBox="0 0 256 256">
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="256">
<polygon points="72,32 184,32 184,240 128,144 72,240" fill="#808080" stroke="#808080" stroke-width="0"/>
</svg>

Before

Width:  |  Height:  |  Size: 203 B

After

Width:  |  Height:  |  Size: 181 B

View file

@ -1,4 +1,4 @@
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="256" viewBox="0 0 256 256">
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="256">
<path d="M 80,24 a 312,208 0 0,0 0,208" fill="none" stroke="#808080" stroke-linecap="round" stroke-width="48"/>
<path d="M 176,24 a 312,208 0 0,1 0,208" fill="none" stroke="#808080" stroke-linecap="round" stroke-width="48"/>
<!--

Before

Width:  |  Height:  |  Size: 583 B

After

Width:  |  Height:  |  Size: 561 B

View file

@ -1,3 +1,3 @@
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="256" viewBox="0 0 256 256">
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="256">
<circle cx="128" cy="128" r="80" fill="#808080"/>
</svg>

Before

Width:  |  Height:  |  Size: 148 B

After

Width:  |  Height:  |  Size: 126 B

View file

@ -1,4 +1,4 @@
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="256" viewBox="0 0 256 256">
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="256">
<g fill="#808080">
<ellipse cx="128" cy="112" rx="112" ry="80"/>
<polygon points="64,248 80,176 160,176"/>

Before

Width:  |  Height:  |  Size: 230 B

After

Width:  |  Height:  |  Size: 208 B

View file

@ -1,4 +1,4 @@
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="256" viewBox="0 0 256 256">
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="256">
<path d="M 48,144 l 64,64 l 96,-160" fill="none" stroke="#808080" stroke-linecap="round" stroke-width="48"/>
<!--
<line x1="32" y1="128" x2="112" y2="224" stroke="#808080" stroke-width="48"/>

Before

Width:  |  Height:  |  Size: 442 B

After

Width:  |  Height:  |  Size: 420 B

View file

@ -1,3 +1,3 @@
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="256" viewBox="0 0 256 256">
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="256">
<circle cx="128" cy="128" r="96" fill="none" stroke="#808080" stroke-width="32"/>
</svg>

Before

Width:  |  Height:  |  Size: 180 B

After

Width:  |  Height:  |  Size: 158 B

View file

@ -1,4 +1,4 @@
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="256" viewBox="0 0 256 256">
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="256">
<g transform="rotate(-25, 128, 128)">
<polygon points="128,0 208,176 128,144 48,176" fill="#808080"/>
<line x1="128" y1="128" x2="128" y2="256" stroke="#808080" stroke-width="48"/>

Before

Width:  |  Height:  |  Size: 304 B

After

Width:  |  Height:  |  Size: 282 B

View file

@ -1,4 +1,4 @@
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="256" viewBox="0 0 256 256">
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="256">
<g fill="none" stroke="#808080" stroke-width="32">
<circle cx="128" cy="128" r="112"/>
<path d="M 80,104 l 48,32 l 64,-48"/>

Before

Width:  |  Height:  |  Size: 536 B

After

Width:  |  Height:  |  Size: 514 B

View file

@ -1,4 +1,4 @@
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="256" viewBox="0 0 256 256">
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="256">
<g stroke="#808080" stroke-width="48">
<line x1="40" y1="40" x2="216" y2="216"/>
<line x1="40" y1="216" x2="216" y2="40"/>

Before

Width:  |  Height:  |  Size: 247 B

After

Width:  |  Height:  |  Size: 225 B

View file

@ -1,4 +1,4 @@
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="256" viewBox="0 0 256 256">
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="256">
<g fill="none" stroke="#808080" stroke-width="32">
<rect x="32" y="32" width="192" height="192"/>
<line x1="96" y1="32" x2="96" y2="224"/>

Before

Width:  |  Height:  |  Size: 313 B

After

Width:  |  Height:  |  Size: 291 B

View file

@ -1,4 +1,4 @@
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="256" viewBox="0 0 256 256">
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="256">
<g fill="none" stroke="#808080" stroke-width="32">
<circle cx="128" cy="128" r="112" fill="none"/>
<path d="M 168,168 a 56,56 0 1,1 0,-80"/>

Before

Width:  |  Height:  |  Size: 264 B

After

Width:  |  Height:  |  Size: 242 B

View file

@ -1,4 +1,4 @@
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="256" viewBox="0 0 256 256">
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="256">
<ellipse cx="128" cy="64" rx="100" ry="36" fill="none" stroke="#808080" stroke-width="24"/>
<path d="M 28,128 a 96,36 0 0,0 200,0" fill="none" stroke="#808080" stroke-width="24"/>
<path d="M 28,192 a 96,36 0 0,0 200,0" fill="none" stroke="#808080" stroke-width="24"/>

Before

Width:  |  Height:  |  Size: 378 B

After

Width:  |  Height:  |  Size: 356 B

View file

@ -1,4 +1,4 @@
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="256" viewBox="0 0 256 256">
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="256">
<g stroke="#808080" stroke-width="48">
<circle cx="128" cy="128" r="104" fill="none"/>
<line x1="40" y1="40" x2="216" y2="216"/>

Before

Width:  |  Height:  |  Size: 252 B

After

Width:  |  Height:  |  Size: 230 B

View file

@ -1,4 +1,4 @@
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="256" viewBox="0 0 256 256">
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="256">
<g stroke="#808080" fill="none">
<path d="M 16,64 l 224,0 0,144 -224,0 0,-144 8,0" stroke-width="32"/>
<path d="M 9,56 l 44,-44 44,0 44,44" stroke-width="24"/>

Before

Width:  |  Height:  |  Size: 284 B

After

Width:  |  Height:  |  Size: 262 B

View file

@ -1,3 +1,3 @@
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="256" viewBox="0 0 256 256">
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="256">
<polygon points="32,56 224,56 128,248" fill="#808080"/>
</svg>

Before

Width:  |  Height:  |  Size: 154 B

After

Width:  |  Height:  |  Size: 132 B

View file

@ -1,4 +1,4 @@
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="256" viewBox="0 0 256 256">
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="256">
<line x1="128" y1="16" x2="128" y2="128" stroke="#808080" stroke-width="96"/>
<polygon points="0,128 256,128 128,256" fill="#808080"/>
</svg>

Before

Width:  |  Height:  |  Size: 237 B

After

Width:  |  Height:  |  Size: 215 B

View file

@ -1,4 +1,4 @@
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="256" viewBox="0 0 256 256">
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="256">
<polygon points="32,224 64,160 96,192" fill="#808080"/>
<line x1="88" y1="168" x2="184" y2="72" stroke="#808080" stroke-width="48"/>
<line x1="192" y1="64" x2="208" y2="48" stroke="#808080" stroke-width="48"/>

Before

Width:  |  Height:  |  Size: 563 B

After

Width:  |  Height:  |  Size: 541 B

View file

@ -1,4 +1,4 @@
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="256" viewBox="0 0 256 256">
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="256">
<line x1="88" y1="56" x2="24" y2="128" stroke="#808080" stroke-linecap="round" stroke-width="48"/>
<line x1="24" y1="128" x2="88" y2="200" stroke="#808080" stroke-linecap="round" stroke-width="48"/>
<line x1="168" y1="56" x2="232" y2="128" stroke="#808080" stroke-linecap="round" stroke-width="48"/>

Before

Width:  |  Height:  |  Size: 512 B

After

Width:  |  Height:  |  Size: 490 B

View file

@ -1,4 +1,4 @@
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="256" viewBox="0 0 256 256">
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="256">
<g stroke="#808080" stroke-width="48">
<line x1="32" y1="80" x2="224" y2="80"/>
<line x1="32" y1="176" x2="224" y2="176"/>

Before

Width:  |  Height:  |  Size: 246 B

After

Width:  |  Height:  |  Size: 224 B

View file

@ -1,4 +1,4 @@
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="256" viewBox="0 0 256 256">
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="256">
<g stroke="#808080" fill="none">
<path d="M 208,72 l 0,168 -160,0 0,-224 104,0" stroke-width="32"/>
<path d="M 144,9 l 72,72" stroke-width="24"/>

Before

Width:  |  Height:  |  Size: 329 B

After

Width:  |  Height:  |  Size: 307 B

View file

@ -1,4 +1,4 @@
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="256" viewBox="0 0 256 256">
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="256">
<g stroke="#808080" fill="none" stroke-width="24">
<path d="M 208,72 l 0,168 -160,0 0,-224 104,0" stroke-width="32"/>
<path d="M 144,9 l 72,72"/>

Before

Width:  |  Height:  |  Size: 413 B

After

Width:  |  Height:  |  Size: 391 B

View file

@ -1,4 +1,4 @@
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="256" viewBox="0 0 256 256">
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="256">
<polygon points="64,64 128,0 192,64" fill="#808080"/>
<rect x="32" y="96" width="192" height="64" fill="#808080"/>
<polygon points="64,192 192,192 128,256" fill="#808080"/>

Before

Width:  |  Height:  |  Size: 280 B

After

Width:  |  Height:  |  Size: 258 B

View file

@ -1,4 +1,4 @@
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="256" viewBox="0 0 256 256">
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="256">
<g stroke="#808080" stroke-width="48">
<circle cx="104" cy="104" r="64" fill="none"/>
<line x1="160" y1="160" x2="216" y2="216"/>

Before

Width:  |  Height:  |  Size: 254 B

After

Width:  |  Height:  |  Size: 232 B

View file

@ -1,4 +1,4 @@
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="256" viewBox="0 0 256 256">
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="256">
<polygon points="64,16 192,16 128,80" fill="#808080"/>
<rect x="32" y="96" width="192" height="64" fill="#808080"/>
<polygon points="64,240 128,176 192,240" fill="#808080"/>

Before

Width:  |  Height:  |  Size: 281 B

After

Width:  |  Height:  |  Size: 259 B

View file

@ -1,4 +1,4 @@
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="256" viewBox="0 0 256 256">
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="256">
<line x1="48" y1="224" x2="48" y2="32" stroke="#808080" stroke-width="32"/>
<path d="M 64,32 a 64,64 0 0,1 80,0 a 64,64 0 0,0 80,0 l 0,128 a 64,64 0 0,1 -80,0 a 64,64 0 0,0 -80,0" fill="#808080"/>
</svg>

Before

Width:  |  Height:  |  Size: 299 B

After

Width:  |  Height:  |  Size: 277 B

View file

@ -1,4 +1,4 @@
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="256" viewBox="0 0 256 256">
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="256">
<g fill="none" stroke="#808080" stroke-width="24">
<path d="M 44,112 l 0,-68 l 68,0"/>
<path d="M 144,44 l 68,0 l 0,68"/>

Before

Width:  |  Height:  |  Size: 404 B

After

Width:  |  Height:  |  Size: 382 B

View file

@ -1,4 +1,4 @@
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="256" viewBox="0 0 256 256">
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="256">
<line x1="64" y1="32" x2="64" y2="224" stroke="#808080" stroke-width="48"/>
<polygon points="120,128 216,32 216,224" fill="#808080"/>
</svg>

Before

Width:  |  Height:  |  Size: 236 B

After

Width:  |  Height:  |  Size: 214 B

View file

@ -1,4 +1,4 @@
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="256" viewBox="0 0 256 256">
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="256">
<polygon points="40,32 136,128 40,224" fill="#808080"/>
<line x1="192" y1="32" x2="192" y2="224" stroke="#808080" stroke-width="48"/>
</svg>

Before

Width:  |  Height:  |  Size: 236 B

After

Width:  |  Height:  |  Size: 214 B

View file

@ -1,4 +1,4 @@
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="256" viewBox="0 0 256 256">
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="256">
<polygon points="40,32 136,128 40,224" fill="#808080"/>
<line x1="128" y1="48" x2="208" y2="48" stroke="#808080" stroke-width="32"/>
<line x1="192" y1="32" x2="192" y2="224" stroke="#808080" stroke-width="32"/>

Before

Width:  |  Height:  |  Size: 400 B

After

Width:  |  Height:  |  Size: 378 B

View file

@ -1,4 +1,4 @@
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="256" viewBox="0 0 256 256">
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="256">
<g fill="none" stroke="#808080" stroke-width="32">
<rect x="32" y="32" width="64" height="64"/>
<rect x="160" y="32" width="64" height="64"/>

Before

Width:  |  Height:  |  Size: 374 B

After

Width:  |  Height:  |  Size: 352 B

View file

@ -1,4 +1,4 @@
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="256" viewBox="0 0 256 256">
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="256">
<g fill="none" stroke="#808080" stroke-width="32">
<rect x="32" y="40" width="64" height="48"/>
<rect x="160" y="40" width="64" height="48"/>

Before

Width:  |  Height:  |  Size: 374 B

After

Width:  |  Height:  |  Size: 352 B

View file

@ -1,4 +1,4 @@
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="256" viewBox="0 0 256 256">
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="256">
<g fill="none" stroke="#808080" stroke-width="32">
<rect x="32" y="40" width="64" height="48"/>
<rect x="168" y="32" width="48" height="64"/>

Before

Width:  |  Height:  |  Size: 374 B

After

Width:  |  Height:  |  Size: 352 B

View file

@ -1,4 +1,4 @@
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="256" viewBox="0 0 256 256">
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="256">
<g fill="none" stroke="#808080" stroke-width="32">
<rect x="40" y="32" width="48" height="64"/>
<rect x="168" y="32" width="48" height="64"/>

Before

Width:  |  Height:  |  Size: 374 B

After

Width:  |  Height:  |  Size: 352 B

View file

@ -1,4 +1,4 @@
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="256" viewBox="0 0 256 256">
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="256">
<g fill="none" stroke="#808080" stroke-width="32">
<rect x="40" y="32" width="48" height="64"/>
<rect x="160" y="40" width="64" height="48"/>

Before

Width:  |  Height:  |  Size: 374 B

After

Width:  |  Height:  |  Size: 352 B

View file

@ -1,4 +1,4 @@
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="256" viewBox="0 0 256 256">
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="256">
<polygon points="32,32 128,32 32,128" fill="#808080"/>
<line x1="72" y1="72" x2="120" y2="120" stroke="#808080" stroke-width="48"/>
<line x1="136" y1="136" x2="184" y2="184" stroke="#808080" stroke-width="48"/>

Before

Width:  |  Height:  |  Size: 381 B

After

Width:  |  Height:  |  Size: 359 B

View file

@ -1,4 +1,4 @@
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="256" viewBox="0 0 256 256">
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="256">
<path d="M 80,72 a 48,48 0 1,1 88,32 l -40,48" fill="none" stroke="#808080" stroke-linecap="round" stroke-width="48"/>
<!--
<path d="M 72,72 a 56,56 0 1,1 96,48 a 128,128 0 0,0 -40,48" fill="none" stroke="#808080" stroke-linecap="round" stroke-width="48"/>

Before

Width:  |  Height:  |  Size: 496 B

After

Width:  |  Height:  |  Size: 474 B

View file

@ -1,4 +1,4 @@
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="256" viewBox="0 0 256 256">
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="256">
<g fill="none" stroke="#808080" stroke-width="32">
<path d="M 16,136 l 112,-112 112,112"/>
<path d="M 56,96 l 0,128 144,0 0,-128"/>

Before

Width:  |  Height:  |  Size: 400 B

After

Width:  |  Height:  |  Size: 378 B

View file

@ -1,3 +1,3 @@
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="256" viewBox="0 0 256 256">
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="256">
<path d="M 80,32 l 96,0 a 48,48 0 0,1 48,48 l 0,96 a 48,48 0 0,1 -48,48 l -96,0 a 48,48 0 0,1 -48,-48 l 0,-96 a 48,48 0 0,1 48,-48" fill="none" stroke="#808080" stroke-width="32"/>
</svg>

Before

Width:  |  Height:  |  Size: 279 B

After

Width:  |  Height:  |  Size: 257 B

View file

@ -1,4 +1,4 @@
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="256" viewBox="0 0 256 256">
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="256">
<g fill="none" stroke="#808080" stroke-width="32">
<rect x="32" y="32" width="64" height="64"/>
<line x1="144" y1="32" x2="240" y2="32"/>

Before

Width:  |  Height:  |  Size: 469 B

After

Width:  |  Height:  |  Size: 447 B

View file

@ -1,4 +1,4 @@
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="256" viewBox="0 0 256 256">
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="256">
<g fill="none" stroke="#808080" stroke-width="32">
<rect x="32" y="40" width="64" height="48"/>
<line x1="144" y1="32" x2="240" y2="32"/>

Before

Width:  |  Height:  |  Size: 469 B

After

Width:  |  Height:  |  Size: 447 B

View file

@ -1,4 +1,4 @@
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="256" viewBox="0 0 256 256">
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="256">
<g fill="none" stroke="#808080" stroke-width="32">
<rect x="40" y="32" width="48" height="64"/>
<line x1="144" y1="32" x2="240" y2="32"/>

Before

Width:  |  Height:  |  Size: 469 B

After

Width:  |  Height:  |  Size: 447 B

View file

@ -1,4 +1,4 @@
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="256" viewBox="0 0 256 256">
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="256">
<circle cx="128" cy="48" r="32" fill="#808080"/>
<line x1="96" y1="112" x2="128" y2="112" stroke="#808080" stroke-linecap="round" stroke-width="32"/>
<line x1="128" y1="120" x2="128" y2="216" stroke="#808080" stroke-linecap="round" stroke-width="48"/>

Before

Width:  |  Height:  |  Size: 463 B

After

Width:  |  Height:  |  Size: 441 B

View file

@ -1,3 +1,3 @@
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="256" viewBox="0 0 256 256">
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="256">
<polygon points="8,128 200,32 200,224" fill="#808080"/>
</svg>

Before

Width:  |  Height:  |  Size: 154 B

After

Width:  |  Height:  |  Size: 132 B

View file

@ -1,3 +1,3 @@
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="256" viewBox="0 0 256 256">
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="256">
<path d="M 128,248 l -96,-128 a 56,56 0 1,1 96,-64 a 56,56 0 1,1 96,64 l -96,128" fill="#808080"/>
</svg>

Before

Width:  |  Height:  |  Size: 197 B

After

Width:  |  Height:  |  Size: 175 B

View file

@ -1,4 +1,4 @@
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="256" viewBox="0 0 256 256">
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="256">
<g stroke="#808080" stroke-width="32">
<line x1="16" y1="32" x2="240" y2="32"/>
<line x1="16" y1="96" x2="240" y2="96"/>

Before

Width:  |  Height:  |  Size: 346 B

After

Width:  |  Height:  |  Size: 324 B

View file

@ -1,4 +1,4 @@
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="256" viewBox="0 0 256 256">
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="256">
<g transform="translate(128, 128)" stroke="#808080" stroke-linecap="round" stroke-width="28">
<line x1="0" y1="-114" x2="0" y2="-70" transform="rotate(0)" opacity="1"/>
<line x1="0" y1="-114" x2="0" y2="-70" transform="rotate(30)" opacity="0.083333"/>

Before

Width:  |  Height:  |  Size: 1.3 KiB

After

Width:  |  Height:  |  Size: 1.2 KiB

View file

@ -1,4 +1,4 @@
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="256" viewBox="0 0 256 256">
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="256">
<g transform="translate(128, 128)" stroke="#808080" stroke-linecap="round" stroke-width="28">
<line x1="0" y1="-114" x2="0" y2="-70" transform="rotate(0)" opacity="1">
<animate attributeName="opacity" from="1" to="0" begin="0s" dur="1s" repeatCount="indefinite"></animate>

Before

Width:  |  Height:  |  Size: 2.9 KiB

After

Width:  |  Height:  |  Size: 2.8 KiB

View file

@ -1,3 +1,3 @@
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="256" viewBox="0 0 256 256">
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="256">
<polygon points="104,152, 0,152 224,32 104,255" fill="#808080"/>
</svg>

Before

Width:  |  Height:  |  Size: 164 B

After

Width:  |  Height:  |  Size: 142 B

View file

@ -1,4 +1,4 @@
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="256" viewBox="0 0 256 256">
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="256">
<rect x="40" y="112" width="176" height="104" fill="#808080"/>
<path d="M 184,128 l 0,-48 a 56,56 0 0,0 -112,0" fill="none" stroke="#808080" stroke-width="32"/>
</svg>

Before

Width:  |  Height:  |  Size: 263 B

After

Width:  |  Height:  |  Size: 241 B

View file

@ -1,4 +1,4 @@
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="256" viewBox="0 0 256 256">
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="256">
<g fill="none" stroke="#808080" stroke-width="24">
<rect x="28" y="60" width="200" height="136"/>
<path d="M 28,60 l 100,100 l 100,-100"/>

Before

Width:  |  Height:  |  Size: 400 B

After

Width:  |  Height:  |  Size: 378 B

View file

@ -1,3 +1,3 @@
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="256" viewBox="0 0 256 256">
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="256">
<path d="M 128,248 l -64,-112 a 72,72 0 1,1 128,0 l -64,112 l 0,-124 l 1,0 a 20,20 0 1,0 -2,0 l 1,0 l 0,124" fill="#808080" stroke="none"/>
</svg>

Before

Width:  |  Height:  |  Size: 238 B

After

Width:  |  Height:  |  Size: 216 B

View file

@ -1,4 +1,4 @@
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="256" viewBox="0 0 256 256">
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="256">
<polygon points="48,80 128,0 208,80" fill="#808080"/>
<line x1="48" y1="128" x2="208" y2="128" stroke="#808080" stroke-width="48"/>
<polygon points="48,176 208,176 128,256" fill="#808080"/>

Before

Width:  |  Height:  |  Size: 296 B

After

Width:  |  Height:  |  Size: 274 B

View file

@ -1,4 +1,4 @@
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="256" viewBox="0 0 256 256">
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="256">
<rect x="16" y="88" width="64" height="80" fill="#808080"/>
<polygon points="40,128 144,24 144,232" fill="#808080"/>
<path d="M 160,96 a 48,48 0 0,1 0,64" fill="none" stroke="#808080" stroke-width="16"/>

Before

Width:  |  Height:  |  Size: 496 B

After

Width:  |  Height:  |  Size: 474 B

View file

@ -1,4 +1,4 @@
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="256" viewBox="0 0 256 256">
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="256">
<g fill="none" stroke="#FF0000" stroke-width="24">
<path d="M 173,173 a 64,64 0 1,1 0,-90" stroke="#FFFFFF" stroke-width="32"/>
<circle cx="128" cy="128" r="116" fill="none"/>

Before

Width:  |  Height:  |  Size: 349 B

After

Width:  |  Height:  |  Size: 327 B

Some files were not shown because too many files have changed in this diff Show more