switch to only use emoji one smileys; remove setting to switch

Этот коммит содержится в:
Florian Orben
2015-12-01 22:40:24 +01:00
родитель c111777f85
Коммит 8a39d160f6
4199 изменённых файлов: 13 добавлений и 1025 удалений

Просмотреть файл

@@ -3,8 +3,8 @@
import FileAttachmentList from './file_attachment_list.jsx'; import FileAttachmentList from './file_attachment_list.jsx';
import UserStore from '../stores/user_store.jsx'; import UserStore from '../stores/user_store.jsx';
import PreferenceStore from '../stores/preference_store.jsx';
import * as Utils from '../utils/utils.jsx'; import * as Utils from '../utils/utils.jsx';
import * as Emoji from '../utils/emoticons.jsx';
import Constants from '../utils/constants.jsx'; import Constants from '../utils/constants.jsx';
import * as TextFormatting from '../utils/text_formatting.jsx'; import * as TextFormatting from '../utils/text_formatting.jsx';
import twemoji from 'twemoji'; import twemoji from 'twemoji';
@@ -20,7 +20,6 @@ export default class PostBody extends React.Component {
this.isImgLoading = false; this.isImgLoading = false;
this.handleUserChange = this.handleUserChange.bind(this); this.handleUserChange = this.handleUserChange.bind(this);
this.handlePreferenceChange = this.handlePreferenceChange.bind(this);
this.parseEmojis = this.parseEmojis.bind(this); this.parseEmojis = this.parseEmojis.bind(this);
this.createEmbed = this.createEmbed.bind(this); this.createEmbed = this.createEmbed.bind(this);
this.createImageEmbed = this.createImageEmbed.bind(this); this.createImageEmbed = this.createImageEmbed.bind(this);
@@ -57,7 +56,7 @@ export default class PostBody extends React.Component {
twemoji.parse(ReactDOM.findDOMNode(this), { twemoji.parse(ReactDOM.findDOMNode(this), {
className: 'emoji twemoji', className: 'emoji twemoji',
base: '', base: '',
folder: Utils.getImagePathForEmoticon() folder: Emoji.getImagePathForEmoticon()
}); });
} }
@@ -71,7 +70,6 @@ export default class PostBody extends React.Component {
this.parseEmojis(); this.parseEmojis();
UserStore.addChangeListener(this.handleUserChange); UserStore.addChangeListener(this.handleUserChange);
PreferenceStore.addChangeListener(this.handlePreferenceChange);
} }
componentDidUpdate() { componentDidUpdate() {
@@ -80,7 +78,6 @@ export default class PostBody extends React.Component {
componentWillUnmount() { componentWillUnmount() {
UserStore.removeChangeListener(this.handleUserChange); UserStore.removeChangeListener(this.handleUserChange);
PreferenceStore.removeChangeListener(this.handlePreferenceChange);
} }
handleUserChange() { handleUserChange() {
@@ -91,13 +88,6 @@ export default class PostBody extends React.Component {
} }
} }
handlePreferenceChange() {
$('.twemoji').each((idx, elem) => {
elem.src = Utils.getImagePathForEmoticon(twemoji.convert.toCodePoint(elem.alt));
});
this.forceUpdate();
}
componentWillReceiveProps(nextProps) { componentWillReceiveProps(nextProps) {
const linkData = Utils.extractLinks(nextProps.post.message); const linkData = Utils.extractLinks(nextProps.post.message);
if (this.props.post.filenames.length === 0 && this.state.links && this.state.links.length > 0) { if (this.props.post.filenames.length === 0 && this.state.links && this.state.links.length > 0) {

Просмотреть файл

@@ -6,6 +6,7 @@ import UserProfile from './user_profile.jsx';
import UserStore from '../stores/user_store.jsx'; import UserStore from '../stores/user_store.jsx';
import * as TextFormatting from '../utils/text_formatting.jsx'; import * as TextFormatting from '../utils/text_formatting.jsx';
import * as utils from '../utils/utils.jsx'; import * as utils from '../utils/utils.jsx';
import * as Emoji from '../utils/emoticons.jsx';
import FileAttachmentList from './file_attachment_list.jsx'; import FileAttachmentList from './file_attachment_list.jsx';
import twemoji from 'twemoji'; import twemoji from 'twemoji';
import PostBodyAdditionalContent from './post_body_additional_content.jsx'; import PostBodyAdditionalContent from './post_body_additional_content.jsx';
@@ -23,7 +24,7 @@ export default class RhsRootPost extends React.Component {
twemoji.parse(ReactDOM.findDOMNode(this), { twemoji.parse(ReactDOM.findDOMNode(this), {
className: 'emoji twemoji', className: 'emoji twemoji',
base: '', base: '',
folder: utils.getImagePathForEmoticon() folder: Emoji.getImagePathForEmoticon()
}); });
} }
componentDidMount() { componentDidMount() {

Просмотреть файл

@@ -6,17 +6,14 @@ import SettingItemMin from '../setting_item_min.jsx';
import SettingItemMax from '../setting_item_max.jsx'; import SettingItemMax from '../setting_item_max.jsx';
import Constants from '../../utils/constants.jsx'; import Constants from '../../utils/constants.jsx';
import PreferenceStore from '../../stores/preference_store.jsx'; import PreferenceStore from '../../stores/preference_store.jsx';
import * as Utils from '../../utils/utils.jsx';
function getDisplayStateFromStores() { function getDisplayStateFromStores() {
const militaryTime = PreferenceStore.getPreference(Constants.Preferences.CATEGORY_DISPLAY_SETTINGS, 'use_military_time', {value: 'false'}); const militaryTime = PreferenceStore.getPreference(Constants.Preferences.CATEGORY_DISPLAY_SETTINGS, 'use_military_time', {value: 'false'});
const nameFormat = PreferenceStore.getPreference(Constants.Preferences.CATEGORY_DISPLAY_SETTINGS, 'name_format', {value: 'username'}); const nameFormat = PreferenceStore.getPreference(Constants.Preferences.CATEGORY_DISPLAY_SETTINGS, 'name_format', {value: 'username'});
const emojiStyle = PreferenceStore.getPreference(Constants.Preferences.CATEGORY_DISPLAY_SETTINGS, 'emoji_style', {value: 'default'});
return { return {
militaryTime: militaryTime.value, militaryTime: militaryTime.value,
nameFormat: nameFormat.value, nameFormat: nameFormat.value
emojiStyle: emojiStyle.value
}; };
} }
@@ -34,9 +31,8 @@ export default class UserSettingsDisplay extends React.Component {
handleSubmit() { handleSubmit() {
const timePreference = PreferenceStore.setPreference(Constants.Preferences.CATEGORY_DISPLAY_SETTINGS, 'use_military_time', this.state.militaryTime); const timePreference = PreferenceStore.setPreference(Constants.Preferences.CATEGORY_DISPLAY_SETTINGS, 'use_military_time', this.state.militaryTime);
const namePreference = PreferenceStore.setPreference(Constants.Preferences.CATEGORY_DISPLAY_SETTINGS, 'name_format', this.state.nameFormat); const namePreference = PreferenceStore.setPreference(Constants.Preferences.CATEGORY_DISPLAY_SETTINGS, 'name_format', this.state.nameFormat);
const emojiStyle = PreferenceStore.setPreference(Constants.Preferences.CATEGORY_DISPLAY_SETTINGS, 'emoji_style', this.state.emojiStyle);
savePreferences([timePreference, namePreference, emojiStyle], savePreferences([timePreference, namePreference],
() => { () => {
PreferenceStore.emitChange(); PreferenceStore.emitChange();
this.updateSection(''); this.updateSection('');
@@ -52,9 +48,6 @@ export default class UserSettingsDisplay extends React.Component {
handleNameRadio(nameFormat) { handleNameRadio(nameFormat) {
this.setState({nameFormat}); this.setState({nameFormat});
} }
handleEmojiRadio(emojiStyle) {
this.setState({emojiStyle});
}
updateSection(section) { updateSection(section) {
this.setState(getDisplayStateFromStores()); this.setState(getDisplayStateFromStores());
this.props.updateSection(section); this.props.updateSection(section);
@@ -63,7 +56,6 @@ export default class UserSettingsDisplay extends React.Component {
const serverError = this.state.serverError || null; const serverError = this.state.serverError || null;
let clockSection; let clockSection;
let nameFormatSection; let nameFormatSection;
let emojiSection;
if (this.props.activeSection === 'clock') { if (this.props.activeSection === 'clock') {
const clockFormat = [false, false]; const clockFormat = [false, false];
if (this.state.militaryTime === 'true') { if (this.state.militaryTime === 'true') {
@@ -217,77 +209,6 @@ export default class UserSettingsDisplay extends React.Component {
); );
} }
if (this.props.activeSection === 'emoji') {
const inputs = [
<div key='userDisplayClockOptions'>
<div className='radio'>
<label>
<input
type='radio'
checked={this.state.emojiStyle === 'default'}
onChange={this.handleEmojiRadio.bind(this, 'default')}
/>
{'Default Style'}
<img
className='emoji'
src={Utils.getImagePathForEmoticon('smile', 'default')}
/>
</label>
<br/>
</div>
<div className='radio'>
<label>
<input
type='radio'
checked={this.state.emojiStyle === 'emojione'}
onChange={this.handleEmojiRadio.bind(this, 'emojione')}
/>
{'Emoji One Style'}
<img
className='emoji'
src={Utils.getImagePathForEmoticon('smile', 'emojione')}
/>
<span className='emojiAffiliation'>
{'Emoji provided free by '}
<a
href='http://emojione.com/'
target='blank'
>
{'Emoji One'}
</a>
</span>
</label>
<br/>
</div>
<div><br/>{'Select how you prefer time displayed.'}</div>
</div>
];
emojiSection = (
<SettingItemMax
title='Emoji Style'
inputs={inputs}
submit={this.handleSubmit}
server_error={serverError}
updateSection={(e) => {
this.updateSection('');
e.preventDefault();
}}
/>
);
} else {
const describe = this.state.emojiStyle === 'default' ? 'Default Style' : 'Emoji One Style';
emojiSection = (
<SettingItemMin
title='Emoji Style'
describe={describe}
updateSection={() => {
this.props.updateSection('emoji');
}}
/>
);
}
return ( return (
<div> <div>
<div className='modal-header'> <div className='modal-header'>
@@ -318,8 +239,6 @@ export default class UserSettingsDisplay extends React.Component {
<div className='divider-dark'/> <div className='divider-dark'/>
{nameFormatSection} {nameFormatSection}
<div className='divider-dark'/> <div className='divider-dark'/>
{emojiSection}
<div className='divider-dark'/>
</div> </div>
</div> </div>
); );

Просмотреть файл

@@ -122,6 +122,5 @@ class PreferenceStoreClass extends EventEmitter {
} }
const PreferenceStore = new PreferenceStoreClass(); const PreferenceStore = new PreferenceStoreClass();
PreferenceStore.setMaxListeners(0);
export default PreferenceStore; export default PreferenceStore;
window.PreferenceStore = PreferenceStore; window.PreferenceStore = PreferenceStore;

Просмотреть файл

@@ -1,8 +1,6 @@
// Copyright (c) 2015 Mattermost, Inc. All Rights Reserved. // Copyright (c) 2015 Mattermost, Inc. All Rights Reserved.
// See License.txt for license information. // See License.txt for license information.
import * as Utils from './utils.jsx';
const emoticonPatterns = { const emoticonPatterns = {
smile: /(^|\s)(:-?\))(?=$|\s)/g, // :) smile: /(^|\s)(:-?\))(?=$|\s)/g, // :)
wink: /(^|\s)(;-?\))(?=$|\s)/g, // ;) wink: /(^|\s)(;-?\))(?=$|\s)/g, // ;)
@@ -135,7 +133,7 @@ export function handleEmoticons(text, tokens) {
const alias = `MM_EMOTICON${index}`; const alias = `MM_EMOTICON${index}`;
tokens.set(alias, { tokens.set(alias, {
value: `<img align="absmiddle" alt="${matchText}" class="emoji" src="${Utils.getImagePathForEmoticon(name)}" title="${matchText}" />`, value: `<img align="absmiddle" alt="${matchText}" class="emoji" src="${getImagePathForEmoticon(name)}" title="${matchText}" />`,
originalText: fullMatch originalText: fullMatch
}); });
@@ -156,3 +154,9 @@ export function handleEmoticons(text, tokens) {
return output; return output;
} }
export function getImagePathForEmoticon(name) {
if (name) {
return `/static/images/emoji/${name}.png`;
}
return `/static/images/emoji`;
}

Просмотреть файл

@@ -1226,13 +1226,4 @@ export function getPostTerm(post) {
export function isFeatureEnabled(feature) { export function isFeatureEnabled(feature) {
return PreferenceStore.getPreference(Constants.Preferences.CATEGORY_ADVANCED_SETTINGS, Constants.FeatureTogglePrefix + feature.label, {value: 'false'}).value === 'true'; return PreferenceStore.getPreference(Constants.Preferences.CATEGORY_ADVANCED_SETTINGS, Constants.FeatureTogglePrefix + feature.label, {value: 'false'}).value === 'true';
}
export function getImagePathForEmoticon(name, style) {
const emojiStyle = style || PreferenceStore.getPreference(Constants.Preferences.CATEGORY_DISPLAY_SETTINGS, 'emoji_style', {value: 'default'}).value;
if (name) {
return `/static/images/emoji/${emojiStyle}/${name}.png`;
}
return `/static/images/emoji/${emojiStyle}`;
} }

Просмотреть файл

@@ -36,16 +36,8 @@
} }
label { label {
font-weight: 600; font-weight: 600;
.emoji {
margin-left: 5px;
margin-right: 5px;
}
} }
.emojiAffiliation {
font-weight: normal;
}
.no-padding--left { .no-padding--left {
padding-left: 0; padding-left: 0;
} }

Просмотреть файл

До

Ширина:  |  Высота:  |  Размер: 1.7 KiB

После

Ширина:  |  Высота:  |  Размер: 1.7 KiB

Просмотреть файл

До

Ширина:  |  Высота:  |  Размер: 1.6 KiB

После

Ширина:  |  Высота:  |  Размер: 1.6 KiB

Просмотреть файл

До

Ширина:  |  Высота:  |  Размер: 1.2 KiB

После

Ширина:  |  Высота:  |  Размер: 1.2 KiB

Просмотреть файл

До

Ширина:  |  Высота:  |  Размер: 1.1 KiB

После

Ширина:  |  Высота:  |  Размер: 1.1 KiB

Просмотреть файл

До

Ширина:  |  Высота:  |  Размер: 648 B

После

Ширина:  |  Высота:  |  Размер: 648 B

Просмотреть файл

До

Ширина:  |  Высота:  |  Размер: 1.1 KiB

После

Ширина:  |  Высота:  |  Размер: 1.1 KiB

Просмотреть файл

До

Ширина:  |  Высота:  |  Размер: 1.2 KiB

После

Ширина:  |  Высота:  |  Размер: 1.2 KiB

Просмотреть файл

До

Ширина:  |  Высота:  |  Размер: 891 B

После

Ширина:  |  Высота:  |  Размер: 891 B

Просмотреть файл

До

Ширина:  |  Высота:  |  Размер: 1.2 KiB

После

Ширина:  |  Высота:  |  Размер: 1.2 KiB

Просмотреть файл

До

Ширина:  |  Высота:  |  Размер: 1.3 KiB

После

Ширина:  |  Высота:  |  Размер: 1.3 KiB

Просмотреть файл

До

Ширина:  |  Высота:  |  Размер: 873 B

После

Ширина:  |  Высота:  |  Размер: 873 B

Просмотреть файл

До

Ширина:  |  Высота:  |  Размер: 1.2 KiB

После

Ширина:  |  Высота:  |  Размер: 1.2 KiB

Просмотреть файл

До

Ширина:  |  Высота:  |  Размер: 1.2 KiB

После

Ширина:  |  Высота:  |  Размер: 1.2 KiB

Просмотреть файл

До

Ширина:  |  Высота:  |  Размер: 1.7 KiB

После

Ширина:  |  Высота:  |  Размер: 1.7 KiB

Просмотреть файл

До

Ширина:  |  Высота:  |  Размер: 1.5 KiB

После

Ширина:  |  Высота:  |  Размер: 1.5 KiB

Просмотреть файл

До

Ширина:  |  Высота:  |  Размер: 2.1 KiB

После

Ширина:  |  Высота:  |  Размер: 2.1 KiB

Просмотреть файл

До

Ширина:  |  Высота:  |  Размер: 1.3 KiB

После

Ширина:  |  Высота:  |  Размер: 1.3 KiB

Просмотреть файл

До

Ширина:  |  Высота:  |  Размер: 1.2 KiB

После

Ширина:  |  Высота:  |  Размер: 1.2 KiB

Просмотреть файл

До

Ширина:  |  Высота:  |  Размер: 1.8 KiB

После

Ширина:  |  Высота:  |  Размер: 1.8 KiB

Просмотреть файл

До

Ширина:  |  Высота:  |  Размер: 1.2 KiB

После

Ширина:  |  Высота:  |  Размер: 1.2 KiB

Просмотреть файл

До

Ширина:  |  Высота:  |  Размер: 1019 B

После

Ширина:  |  Высота:  |  Размер: 1019 B

Просмотреть файл

До

Ширина:  |  Высота:  |  Размер: 1.3 KiB

После

Ширина:  |  Высота:  |  Размер: 1.3 KiB

Просмотреть файл

До

Ширина:  |  Высота:  |  Размер: 869 B

После

Ширина:  |  Высота:  |  Размер: 869 B

Просмотреть файл

До

Ширина:  |  Высота:  |  Размер: 1.4 KiB

После

Ширина:  |  Высота:  |  Размер: 1.4 KiB

Просмотреть файл

До

Ширина:  |  Высота:  |  Размер: 1.3 KiB

После

Ширина:  |  Высота:  |  Размер: 1.3 KiB

Просмотреть файл

До

Ширина:  |  Высота:  |  Размер: 1.4 KiB

После

Ширина:  |  Высота:  |  Размер: 1.4 KiB

Просмотреть файл

До

Ширина:  |  Высота:  |  Размер: 1.1 KiB

После

Ширина:  |  Высота:  |  Размер: 1.1 KiB

Просмотреть файл

До

Ширина:  |  Высота:  |  Размер: 1.1 KiB

После

Ширина:  |  Высота:  |  Размер: 1.1 KiB

Просмотреть файл

До

Ширина:  |  Высота:  |  Размер: 1.4 KiB

После

Ширина:  |  Высота:  |  Размер: 1.4 KiB

Просмотреть файл

До

Ширина:  |  Высота:  |  Размер: 1.4 KiB

После

Ширина:  |  Высота:  |  Размер: 1.4 KiB

Просмотреть файл

До

Ширина:  |  Высота:  |  Размер: 1.6 KiB

После

Ширина:  |  Высота:  |  Размер: 1.6 KiB

Просмотреть файл

До

Ширина:  |  Высота:  |  Размер: 1.6 KiB

После

Ширина:  |  Высота:  |  Размер: 1.6 KiB

Просмотреть файл

До

Ширина:  |  Высота:  |  Размер: 1.3 KiB

После

Ширина:  |  Высота:  |  Размер: 1.3 KiB

Просмотреть файл

До

Ширина:  |  Высота:  |  Размер: 1.5 KiB

После

Ширина:  |  Высота:  |  Размер: 1.5 KiB

Просмотреть файл

До

Ширина:  |  Высота:  |  Размер: 2.2 KiB

После

Ширина:  |  Высота:  |  Размер: 2.2 KiB

Просмотреть файл

До

Ширина:  |  Высота:  |  Размер: 1.3 KiB

После

Ширина:  |  Высота:  |  Размер: 1.3 KiB

Просмотреть файл

До

Ширина:  |  Высота:  |  Размер: 442 B

После

Ширина:  |  Высота:  |  Размер: 442 B

Просмотреть файл

До

Ширина:  |  Высота:  |  Размер: 1.5 KiB

После

Ширина:  |  Высота:  |  Размер: 1.5 KiB

Просмотреть файл

До

Ширина:  |  Высота:  |  Размер: 1.4 KiB

После

Ширина:  |  Высота:  |  Размер: 1.4 KiB

Просмотреть файл

До

Ширина:  |  Высота:  |  Размер: 1.9 KiB

После

Ширина:  |  Высота:  |  Размер: 1.9 KiB

Просмотреть файл

До

Ширина:  |  Высота:  |  Размер: 1.5 KiB

После

Ширина:  |  Высота:  |  Размер: 1.5 KiB

Просмотреть файл

До

Ширина:  |  Высота:  |  Размер: 399 B

После

Ширина:  |  Высота:  |  Размер: 399 B

Просмотреть файл

До

Ширина:  |  Высота:  |  Размер: 1.3 KiB

После

Ширина:  |  Высота:  |  Размер: 1.3 KiB

Просмотреть файл

До

Ширина:  |  Высота:  |  Размер: 863 B

После

Ширина:  |  Высота:  |  Размер: 863 B

Просмотреть файл

До

Ширина:  |  Высота:  |  Размер: 294 B

После

Ширина:  |  Высота:  |  Размер: 294 B

Просмотреть файл

До

Ширина:  |  Высота:  |  Размер: 1.7 KiB

После

Ширина:  |  Высота:  |  Размер: 1.7 KiB

Просмотреть файл

До

Ширина:  |  Высота:  |  Размер: 597 B

После

Ширина:  |  Высота:  |  Размер: 597 B

Просмотреть файл

До

Ширина:  |  Высота:  |  Размер: 777 B

После

Ширина:  |  Высота:  |  Размер: 777 B

Просмотреть файл

До

Ширина:  |  Высота:  |  Размер: 1.5 KiB

После

Ширина:  |  Высота:  |  Размер: 1.5 KiB

Просмотреть файл

До

Ширина:  |  Высота:  |  Размер: 728 B

После

Ширина:  |  Высота:  |  Размер: 728 B

Просмотреть файл

До

Ширина:  |  Высота:  |  Размер: 708 B

После

Ширина:  |  Высота:  |  Размер: 708 B

Просмотреть файл

До

Ширина:  |  Высота:  |  Размер: 361 B

После

Ширина:  |  Высота:  |  Размер: 361 B

Просмотреть файл

До

Ширина:  |  Высота:  |  Размер: 782 B

После

Ширина:  |  Высота:  |  Размер: 782 B

Просмотреть файл

До

Ширина:  |  Высота:  |  Размер: 407 B

После

Ширина:  |  Высота:  |  Размер: 407 B

Просмотреть файл

До

Ширина:  |  Высота:  |  Размер: 792 B

После

Ширина:  |  Высота:  |  Размер: 792 B

Просмотреть файл

До

Ширина:  |  Высота:  |  Размер: 1.9 KiB

После

Ширина:  |  Высота:  |  Размер: 1.9 KiB

Просмотреть файл

До

Ширина:  |  Высота:  |  Размер: 531 B

После

Ширина:  |  Высота:  |  Размер: 531 B

Просмотреть файл

До

Ширина:  |  Высота:  |  Размер: 2.1 KiB

После

Ширина:  |  Высота:  |  Размер: 2.1 KiB

Просмотреть файл

До

Ширина:  |  Высота:  |  Размер: 2.4 KiB

После

Ширина:  |  Высота:  |  Размер: 2.4 KiB

Просмотреть файл

До

Ширина:  |  Высота:  |  Размер: 950 B

После

Ширина:  |  Высота:  |  Размер: 950 B

Просмотреть файл

До

Ширина:  |  Высота:  |  Размер: 1.6 KiB

После

Ширина:  |  Высота:  |  Размер: 1.6 KiB

Просмотреть файл

До

Ширина:  |  Высота:  |  Размер: 802 B

После

Ширина:  |  Высота:  |  Размер: 802 B

Просмотреть файл

До

Ширина:  |  Высота:  |  Размер: 2.6 KiB

После

Ширина:  |  Высота:  |  Размер: 2.6 KiB

Просмотреть файл

До

Ширина:  |  Высота:  |  Размер: 303 B

После

Ширина:  |  Высота:  |  Размер: 303 B

Просмотреть файл

До

Ширина:  |  Высота:  |  Размер: 1.7 KiB

После

Ширина:  |  Высота:  |  Размер: 1.7 KiB

Просмотреть файл

До

Ширина:  |  Высота:  |  Размер: 2.1 KiB

После

Ширина:  |  Высота:  |  Размер: 2.1 KiB

Просмотреть файл

До

Ширина:  |  Высота:  |  Размер: 747 B

После

Ширина:  |  Высота:  |  Размер: 747 B

Просмотреть файл

До

Ширина:  |  Высота:  |  Размер: 1.9 KiB

После

Ширина:  |  Высота:  |  Размер: 1.9 KiB

Просмотреть файл

До

Ширина:  |  Высота:  |  Размер: 611 B

После

Ширина:  |  Высота:  |  Размер: 611 B

Просмотреть файл

До

Ширина:  |  Высота:  |  Размер: 1.1 KiB

После

Ширина:  |  Высота:  |  Размер: 1.1 KiB

Просмотреть файл

До

Ширина:  |  Высота:  |  Размер: 468 B

После

Ширина:  |  Высота:  |  Размер: 468 B

Просмотреть файл

До

Ширина:  |  Высота:  |  Размер: 361 B

После

Ширина:  |  Высота:  |  Размер: 361 B

Просмотреть файл

До

Ширина:  |  Высота:  |  Размер: 691 B

После

Ширина:  |  Высота:  |  Размер: 691 B

Просмотреть файл

До

Ширина:  |  Высота:  |  Размер: 619 B

После

Ширина:  |  Высота:  |  Размер: 619 B

Просмотреть файл

До

Ширина:  |  Высота:  |  Размер: 697 B

После

Ширина:  |  Высота:  |  Размер: 697 B

Просмотреть файл

До

Ширина:  |  Высота:  |  Размер: 405 B

После

Ширина:  |  Высота:  |  Размер: 405 B

Просмотреть файл

До

Ширина:  |  Высота:  |  Размер: 298 B

После

Ширина:  |  Высота:  |  Размер: 298 B

Просмотреть файл

До

Ширина:  |  Высота:  |  Размер: 1.0 KiB

После

Ширина:  |  Высота:  |  Размер: 1.0 KiB

Просмотреть файл

До

Ширина:  |  Высота:  |  Размер: 959 B

После

Ширина:  |  Высота:  |  Размер: 959 B

Просмотреть файл

До

Ширина:  |  Высота:  |  Размер: 1.2 KiB

После

Ширина:  |  Высота:  |  Размер: 1.2 KiB

Просмотреть файл

До

Ширина:  |  Высота:  |  Размер: 889 B

После

Ширина:  |  Высота:  |  Размер: 889 B

Просмотреть файл

До

Ширина:  |  Высота:  |  Размер: 407 B

После

Ширина:  |  Высота:  |  Размер: 407 B

Просмотреть файл

До

Ширина:  |  Высота:  |  Размер: 1.1 KiB

После

Ширина:  |  Высота:  |  Размер: 1.1 KiB

Просмотреть файл

До

Ширина:  |  Высота:  |  Размер: 310 B

После

Ширина:  |  Высота:  |  Размер: 310 B

Просмотреть файл

До

Ширина:  |  Высота:  |  Размер: 1.4 KiB

После

Ширина:  |  Высота:  |  Размер: 1.4 KiB

Просмотреть файл

До

Ширина:  |  Высота:  |  Размер: 927 B

После

Ширина:  |  Высота:  |  Размер: 927 B

Просмотреть файл

До

Ширина:  |  Высота:  |  Размер: 1.0 KiB

После

Ширина:  |  Высота:  |  Размер: 1.0 KiB

Просмотреть файл

До

Ширина:  |  Высота:  |  Размер: 1.5 KiB

После

Ширина:  |  Высота:  |  Размер: 1.5 KiB

Просмотреть файл

До

Ширина:  |  Высота:  |  Размер: 407 B

После

Ширина:  |  Высота:  |  Размер: 407 B

Просмотреть файл

До

Ширина:  |  Высота:  |  Размер: 843 B

После

Ширина:  |  Высота:  |  Размер: 843 B

Просмотреть файл

До

Ширина:  |  Высота:  |  Размер: 1.0 KiB

После

Ширина:  |  Высота:  |  Размер: 1.0 KiB

Просмотреть файл

До

Ширина:  |  Высота:  |  Размер: 1.9 KiB

После

Ширина:  |  Высота:  |  Размер: 1.9 KiB

Просмотреть файл

До

Ширина:  |  Высота:  |  Размер: 1.2 KiB

После

Ширина:  |  Высота:  |  Размер: 1.2 KiB

Некоторые файлы не были показаны из-за слишком большого количества измененных файлов Показать больше