0.2.3 #99
|
|
@ -6,7 +6,7 @@ const CategoryCard = props => {
|
||||||
const { category } = props;
|
const { category } = props;
|
||||||
|
|
||||||
const categoryRules = category.rules.map(rule => {
|
const categoryRules = category.rules.map(rule => {
|
||||||
const faviconUrl = rule.favicon ? rule.favicon : '/static/favicon-placeholder.svg';
|
const faviconUrl = rule.favicon ? rule.favicon : '/static/picture.svg';
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<li key={rule.pk} className="list__item">
|
<li key={rule.pk} className="list__item">
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,7 @@
|
||||||
import { requestRules, receiveRules, fetchRulesByCategory } from './rules.js';
|
import { requestRules, receiveRules, fetchRulesByCategory } from './rules.js';
|
||||||
|
|
||||||
|
import { CATEGORY_TYPE } from '../constants.js';
|
||||||
|
|
||||||
export const SELECT_CATEGORY = 'SELECT_CATEGORY';
|
export const SELECT_CATEGORY = 'SELECT_CATEGORY';
|
||||||
|
|
||||||
export const RECEIVE_CATEGORY = 'RECEIVE_CATEGORY';
|
export const RECEIVE_CATEGORY = 'RECEIVE_CATEGORY';
|
||||||
|
|
@ -10,7 +12,7 @@ export const REQUEST_CATEGORIES = 'REQUEST_CATEGORIES';
|
||||||
|
|
||||||
export const selectCategory = category => ({
|
export const selectCategory = category => ({
|
||||||
type: SELECT_CATEGORY,
|
type: SELECT_CATEGORY,
|
||||||
item: category,
|
section: { ...category, type: CATEGORY_TYPE },
|
||||||
});
|
});
|
||||||
|
|
||||||
export const receiveCategory = category => ({
|
export const receiveCategory = category => ({
|
||||||
|
|
@ -18,9 +20,9 @@ export const receiveCategory = category => ({
|
||||||
category,
|
category,
|
||||||
});
|
});
|
||||||
|
|
||||||
export const receiveCategories = json => ({
|
export const receiveCategories = categories => ({
|
||||||
type: RECEIVE_CATEGORIES,
|
type: RECEIVE_CATEGORIES,
|
||||||
categories: json,
|
categories,
|
||||||
});
|
});
|
||||||
|
|
||||||
export const requestCategory = () => ({ type: REQUEST_CATEGORY });
|
export const requestCategory = () => ({ type: REQUEST_CATEGORY });
|
||||||
|
|
@ -70,7 +72,14 @@ export const fetchCategories = () => {
|
||||||
};
|
};
|
||||||
|
|
||||||
export const fetchCategory = category => {
|
export const fetchCategory = category => {
|
||||||
return dispatch => {
|
return (dispatch, getState) => {
|
||||||
|
const { selected } = getState();
|
||||||
|
const selectedSection = { ...selected.item };
|
||||||
|
|
||||||
|
if (selectedSection.type === CATEGORY_TYPE && selectedSection.clicks <= 1) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
dispatch(requestCategory());
|
dispatch(requestCategory());
|
||||||
|
|
||||||
return fetch(`/api/categories/${category.id}`)
|
return fetch(`/api/categories/${category.id}`)
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,5 @@
|
||||||
|
import { RULE_TYPE } from '../constants.js';
|
||||||
|
|
||||||
export const SELECT_POST = 'SELECT_POST';
|
export const SELECT_POST = 'SELECT_POST';
|
||||||
export const UNSELECT_POST = 'UNSELECT_POST';
|
export const UNSELECT_POST = 'UNSELECT_POST';
|
||||||
|
|
||||||
|
|
@ -16,17 +18,15 @@ export const unSelectPost = () => ({
|
||||||
type: UNSELECT_POST,
|
type: UNSELECT_POST,
|
||||||
});
|
});
|
||||||
|
|
||||||
export const postRead = (post, rule, category) => ({
|
export const postRead = (post, section) => ({
|
||||||
type: MARK_POST_READ,
|
type: MARK_POST_READ,
|
||||||
category: category,
|
post,
|
||||||
post: post,
|
section,
|
||||||
rule: rule,
|
|
||||||
});
|
});
|
||||||
|
|
||||||
export const markPostRead = (post, token) => {
|
export const markPostRead = (post, token) => {
|
||||||
return (dispatch, getState) => {
|
return (dispatch, getState) => {
|
||||||
const { rules } = getState();
|
const { rules } = getState();
|
||||||
const { categories } = getState();
|
|
||||||
|
|
||||||
const url = `/api/posts/${post.id}/`;
|
const url = `/api/posts/${post.id}/`;
|
||||||
const options = {
|
const options = {
|
||||||
|
|
@ -38,17 +38,16 @@ export const markPostRead = (post, token) => {
|
||||||
body: JSON.stringify({ read: true }),
|
body: JSON.stringify({ read: true }),
|
||||||
};
|
};
|
||||||
|
|
||||||
const rule = rules.items[post.rule];
|
const section = {
|
||||||
const category = categories.items[rule.category];
|
...rules.items[post.rule],
|
||||||
|
type: RULE_TYPE,
|
||||||
|
};
|
||||||
|
|
||||||
return fetch(url, options)
|
return fetch(url, options)
|
||||||
.then(response => response.json())
|
.then(response => response.json())
|
||||||
.then(updatedPost => {
|
.then(updatedPost => {
|
||||||
const updatedRule = { ...rule, unread: rule.unread - 1 };
|
|
||||||
const updatedCategory = { ...category, unread: category.unread - 1 };
|
|
||||||
|
|
||||||
dispatch(receivePost({ ...updatedPost }));
|
dispatch(receivePost({ ...updatedPost }));
|
||||||
dispatch(postRead({ ...updatedPost }, updatedRule, updatedCategory));
|
dispatch(postRead({ ...updatedPost }, section));
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
@ -66,37 +65,24 @@ export const receivePost = post => ({
|
||||||
|
|
||||||
export const requestPosts = () => ({ type: REQUEST_POSTS });
|
export const requestPosts = () => ({ type: REQUEST_POSTS });
|
||||||
|
|
||||||
export const fetchPostsByCategory = (category, page = false) => {
|
export const fetchPostsBySection = (section, page = false) => {
|
||||||
return dispatch => {
|
return dispatch => {
|
||||||
|
if (section.unread === 0) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
dispatch(requestPosts());
|
dispatch(requestPosts());
|
||||||
|
|
||||||
const url = page ? page : `/api/categories/${category.id}/posts/?read=false`;
|
let url = null;
|
||||||
return fetch(url)
|
|
||||||
.then(response => response.json())
|
switch ('category' in section) {
|
||||||
.then(json => {
|
case true:
|
||||||
const posts = {};
|
url = page ? page : `/api/rules/${section.id}/posts/?read=false`;
|
||||||
|
break;
|
||||||
json.results.forEach(post => {
|
default:
|
||||||
posts[post.id] = post;
|
url = page ? page : `/api/categories/${section.id}/posts/?read=false`;
|
||||||
});
|
}
|
||||||
|
|
||||||
dispatch(receivePosts({ items: posts, next: json.next }));
|
|
||||||
})
|
|
||||||
.catch(error => {
|
|
||||||
if (error instanceof TypeError) {
|
|
||||||
console.log(`Unable to parse posts from request: ${error}`);
|
|
||||||
}
|
|
||||||
|
|
||||||
dispatch(receivePosts({ items: {}, next: null }));
|
|
||||||
});
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
export const fetchPostsByRule = (rule, page = false) => {
|
|
||||||
return dispatch => {
|
|
||||||
dispatch(requestPosts());
|
|
||||||
|
|
||||||
const url = page ? page : `/api/rules/${rule.id}/posts/?read=false`;
|
|
||||||
return fetch(url)
|
return fetch(url)
|
||||||
.then(response => response.json())
|
.then(response => response.json())
|
||||||
.then(json => {
|
.then(json => {
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,5 @@
|
||||||
import { fetchCategory } from './categories.js';
|
import { fetchCategory } from './categories.js';
|
||||||
|
import { RULE_TYPE } from '../constants.js';
|
||||||
|
|
||||||
export const SELECT_RULE = 'SELECT_RULE';
|
export const SELECT_RULE = 'SELECT_RULE';
|
||||||
export const SELECT_RULES = 'SELECT_RULES';
|
export const SELECT_RULES = 'SELECT_RULES';
|
||||||
|
|
@ -11,7 +12,7 @@ export const REQUEST_RULES = 'REQUEST_RULES';
|
||||||
|
|
||||||
export const selectRule = rule => ({
|
export const selectRule = rule => ({
|
||||||
type: SELECT_RULE,
|
type: SELECT_RULE,
|
||||||
item: rule,
|
section: { ...rule, type: RULE_TYPE },
|
||||||
});
|
});
|
||||||
|
|
||||||
export const requestRule = () => ({ type: REQUEST_RULE });
|
export const requestRule = () => ({ type: REQUEST_RULE });
|
||||||
|
|
@ -29,6 +30,13 @@ export const receiveRules = rules => ({
|
||||||
|
|
||||||
export const fetchRule = rule => {
|
export const fetchRule = rule => {
|
||||||
return (dispatch, getState) => {
|
return (dispatch, getState) => {
|
||||||
|
const { selected } = getState();
|
||||||
|
const selectedSection = { ...selected.item };
|
||||||
|
|
||||||
|
if (selectedSection.type === RULE_TYPE && selectedSection.clicks <= 1) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
dispatch(requestRule());
|
dispatch(requestRule());
|
||||||
|
|
||||||
const { categories } = getState();
|
const { categories } = getState();
|
||||||
|
|
|
||||||
|
|
@ -1,18 +1,28 @@
|
||||||
import { receiveCategory, requestCategory } from './categories.js';
|
import { receiveCategory, requestCategory } from './categories.js';
|
||||||
import { receiveRule, requestRule } from './rules.js';
|
import { receiveRule, requestRule } from './rules.js';
|
||||||
|
import { CATEGORY_TYPE, RULE_TYPE } from '../constants.js';
|
||||||
|
|
||||||
export const MARK_SECTION_READ = 'MARK_SECTION_READ';
|
export const MARK_SECTION_READ = 'MARK_SECTION_READ';
|
||||||
|
|
||||||
export const markSectionRead = (category, rule = {}) => ({
|
export const markSectionRead = section => ({
|
||||||
category: category,
|
|
||||||
rule: rule,
|
|
||||||
type: MARK_SECTION_READ,
|
type: MARK_SECTION_READ,
|
||||||
|
section,
|
||||||
});
|
});
|
||||||
|
|
||||||
const markCategoryRead = (category, token) => {
|
const markCategoryRead = (category, token) => {
|
||||||
return dispatch => {
|
return (dispatch, getState) => {
|
||||||
dispatch(requestCategory(category));
|
dispatch(requestCategory(category));
|
||||||
|
|
||||||
|
const { rules } = getState();
|
||||||
|
const categoryRules = Object.values({ ...rules.items }).filter(rule => {
|
||||||
|
return rule.category === category.id;
|
||||||
|
});
|
||||||
|
const ruleMapping = {};
|
||||||
|
|
||||||
|
categoryRules.forEach(rule => {
|
||||||
|
ruleMapping[rule.id] = { ...rule };
|
||||||
|
});
|
||||||
|
|
||||||
const url = `/api/categories/${category.id}/read/`;
|
const url = `/api/categories/${category.id}/read/`;
|
||||||
const options = {
|
const options = {
|
||||||
method: 'POST',
|
method: 'POST',
|
||||||
|
|
@ -25,16 +35,20 @@ const markCategoryRead = (category, token) => {
|
||||||
.then(response => response.json())
|
.then(response => response.json())
|
||||||
.then(updatedCategory => {
|
.then(updatedCategory => {
|
||||||
dispatch(receiveCategory({ ...updatedCategory }));
|
dispatch(receiveCategory({ ...updatedCategory }));
|
||||||
dispatch(markSectionRead({ ...category, ...updatedCategory }));
|
dispatch(
|
||||||
|
markSectionRead({
|
||||||
|
...category,
|
||||||
|
...updatedCategory,
|
||||||
|
rules: ruleMapping,
|
||||||
|
type: CATEGORY_TYPE,
|
||||||
|
})
|
||||||
|
);
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
const markRuleRead = (rule, token) => {
|
const markRuleRead = (rule, token) => {
|
||||||
return (dispatch, getState) => {
|
return (dispatch, getState) => {
|
||||||
const { categories } = getState();
|
|
||||||
const category = categories.items[rule.category];
|
|
||||||
|
|
||||||
dispatch(requestRule(rule));
|
dispatch(requestRule(rule));
|
||||||
|
|
||||||
const url = `/api/rules/${rule.id}/read/`;
|
const url = `/api/rules/${rule.id}/read/`;
|
||||||
|
|
@ -51,15 +65,16 @@ const markRuleRead = (rule, token) => {
|
||||||
dispatch(receiveRule({ ...updatedRule }));
|
dispatch(receiveRule({ ...updatedRule }));
|
||||||
|
|
||||||
// Use the old rule to decrement category with old unread count
|
// Use the old rule to decrement category with old unread count
|
||||||
dispatch(markSectionRead({ ...category }, { ...rule }));
|
dispatch(markSectionRead({ ...rule, type: RULE_TYPE }));
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
export const markRead = (selected, token) => {
|
export const markRead = (selected, token) => {
|
||||||
if ('category' in selected) {
|
switch ('category' in selected) {
|
||||||
return markRuleRead(selected, token);
|
case true:
|
||||||
} else {
|
return markRuleRead(selected, token);
|
||||||
return markCategoryRead(selected, token);
|
default:
|
||||||
|
return markCategoryRead(selected, token);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -14,7 +14,7 @@ class PostModal extends React.Component {
|
||||||
const token = Cookies.get('csrftoken');
|
const token = Cookies.get('csrftoken');
|
||||||
|
|
||||||
if (!post.read) {
|
if (!post.read) {
|
||||||
this.readTimer = setTimeout(markPostRead, 30000, post, token);
|
this.readTimer = setTimeout(markPostRead, 3000, post, token);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -40,7 +40,7 @@ class PostModal extends React.Component {
|
||||||
>
|
>
|
||||||
Close{' '}
|
Close{' '}
|
||||||
<span>
|
<span>
|
||||||
<img src="/static/times.svg" />
|
<img src="/static/cross.svg" width="20" />
|
||||||
</span>
|
</span>
|
||||||
</button>
|
</button>
|
||||||
<div className="post__header">
|
<div className="post__header">
|
||||||
|
|
@ -52,7 +52,7 @@ class PostModal extends React.Component {
|
||||||
target="_blank"
|
target="_blank"
|
||||||
rel="noopener noreferrer"
|
rel="noopener noreferrer"
|
||||||
>
|
>
|
||||||
<img src="/static/link.svg" width="15" height="15" />
|
<img src="/static/link.svg" width="45" />
|
||||||
</a>
|
</a>
|
||||||
</h1>
|
</h1>
|
||||||
<span className="post__date">{publicationDate}</span>
|
<span className="post__date">{publicationDate}</span>
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,7 @@ import React from 'react';
|
||||||
import { connect } from 'react-redux';
|
import { connect } from 'react-redux';
|
||||||
import { isEqual } from 'lodash';
|
import { isEqual } from 'lodash';
|
||||||
|
|
||||||
import { fetchPostsByRule, fetchPostsByCategory } from '../../actions/posts.js';
|
import { fetchPostsBySection } from '../../actions/posts.js';
|
||||||
import { filterPosts } from './filters.js';
|
import { filterPosts } from './filters.js';
|
||||||
|
|
||||||
import LoadingIndicator from '../../../../components/LoadingIndicator.js';
|
import LoadingIndicator from '../../../../components/LoadingIndicator.js';
|
||||||
|
|
@ -33,11 +33,7 @@ class FeedList extends React.Component {
|
||||||
}
|
}
|
||||||
|
|
||||||
paginate() {
|
paginate() {
|
||||||
if ('category' in this.props.selected) {
|
this.props.fetchPostsBySection(this.props.selected, this.props.next);
|
||||||
return this.props.fetchPostsByRule(this.props.selected, this.props.next);
|
|
||||||
} else {
|
|
||||||
return this.props.fetchPostsByCategory(this.props.selected, this.props.next);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
render() {
|
render() {
|
||||||
|
|
@ -90,10 +86,7 @@ const mapStateToProps = state => ({
|
||||||
});
|
});
|
||||||
|
|
||||||
const mapDispatchToProps = dispatch => ({
|
const mapDispatchToProps = dispatch => ({
|
||||||
fetchPostsByRule: (rule, page = false) => dispatch(fetchPostsByRule(rule, page)),
|
fetchPostsBySection: (rule, page = false) => dispatch(fetchPostsBySection(rule, page)),
|
||||||
fetchPostsByCategory: (category, page = false) => {
|
|
||||||
dispatch(fetchPostsByCategory(category, page));
|
|
||||||
},
|
|
||||||
});
|
});
|
||||||
|
|
||||||
export default connect(
|
export default connect(
|
||||||
|
|
|
||||||
|
|
@ -31,7 +31,7 @@ class PostItem extends React.Component {
|
||||||
target="_blank"
|
target="_blank"
|
||||||
rel="noopener noreferrer"
|
rel="noopener noreferrer"
|
||||||
>
|
>
|
||||||
<img src="/static/link.svg" width="15" height="15" />
|
<img src="/static/link.svg" width="20" />
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
<span title={publicationDate}>{publicationDate}</span>
|
<span title={publicationDate}>{publicationDate}</span>
|
||||||
|
|
|
||||||
|
|
@ -15,7 +15,6 @@ class RuleItem extends React.Component {
|
||||||
return (
|
return (
|
||||||
<section className="posts-section">
|
<section className="posts-section">
|
||||||
<h3 className="posts-section__name">{this.props.rule.name}</h3>
|
<h3 className="posts-section__name">{this.props.rule.name}</h3>
|
||||||
{/* TODO: Add empty posts message */}
|
|
||||||
<ul className="posts">{postItems}</ul>
|
<ul className="posts">{postItems}</ul>
|
||||||
</section>
|
</section>
|
||||||
);
|
);
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,12 @@
|
||||||
|
import { CATEGORY_TYPE, RULE_TYPE } from '../../constants.js';
|
||||||
|
|
||||||
const isEmpty = (object = {}) => {
|
const isEmpty = (object = {}) => {
|
||||||
return Object.keys(object).length === 0;
|
return Object.keys(object).length === 0;
|
||||||
};
|
};
|
||||||
|
|
||||||
export const filterPostsByRule = (rule = {}, posts = []) => {
|
export const filterPostsByRule = (rule = {}, posts = []) => {
|
||||||
const filteredPosts = posts.filter(post => {
|
const filteredPosts = posts.filter(post => {
|
||||||
return post.rule === rule.id && !post.read;
|
return post.rule === rule.id;
|
||||||
});
|
});
|
||||||
|
|
||||||
return filteredPosts.length > 0 ? [{ rule, posts: filteredPosts }] : [];
|
return filteredPosts.length > 0 ? [{ rule, posts: filteredPosts }] : [];
|
||||||
|
|
@ -17,7 +19,7 @@ export const filterPostsByCategory = (category = {}, rules = [], posts = []) =>
|
||||||
|
|
||||||
const filteredData = filteredRules.map(rule => {
|
const filteredData = filteredRules.map(rule => {
|
||||||
const filteredPosts = posts.filter(post => {
|
const filteredPosts = posts.filter(post => {
|
||||||
return post.rule === rule.id && !post.read;
|
return post.rule === rule.id;
|
||||||
});
|
});
|
||||||
|
|
||||||
return {
|
return {
|
||||||
|
|
@ -32,12 +34,12 @@ export const filterPostsByCategory = (category = {}, rules = [], posts = []) =>
|
||||||
export const filterPosts = state => {
|
export const filterPosts = state => {
|
||||||
const posts = Object.values({ ...state.posts.items });
|
const posts = Object.values({ ...state.posts.items });
|
||||||
|
|
||||||
if (!isEmpty(state.selected.item) && !('category' in state.selected.item)) {
|
switch (state.selected.item.type) {
|
||||||
const rules = Object.values({ ...state.rules.items });
|
case CATEGORY_TYPE:
|
||||||
|
const rules = Object.values({ ...state.rules.items });
|
||||||
return filterPostsByCategory({ ...state.selected.item }, rules, posts);
|
return filterPostsByCategory({ ...state.selected.item }, rules, posts);
|
||||||
} else if ('category' in state.selected.item) {
|
case RULE_TYPE:
|
||||||
return filterPostsByRule({ ...state.selected.item }, posts);
|
return filterPostsByRule({ ...state.selected.item }, posts);
|
||||||
}
|
}
|
||||||
|
|
||||||
return [];
|
return [];
|
||||||
|
|
|
||||||
|
|
@ -2,8 +2,10 @@ import React from 'react';
|
||||||
import { connect } from 'react-redux';
|
import { connect } from 'react-redux';
|
||||||
import { isEqual } from 'lodash';
|
import { isEqual } from 'lodash';
|
||||||
|
|
||||||
|
import { CATEGORY_TYPE } from '../../constants.js';
|
||||||
import { selectCategory, fetchCategory } from '../../actions/categories.js';
|
import { selectCategory, fetchCategory } from '../../actions/categories.js';
|
||||||
import { fetchPostsByCategory } from '../../actions/posts.js';
|
import { fetchPostsBySection } from '../../actions/posts.js';
|
||||||
|
import { isSelected } from './functions.js';
|
||||||
import RuleItem from './RuleItem.js';
|
import RuleItem from './RuleItem.js';
|
||||||
|
|
||||||
class CategoryItem extends React.Component {
|
class CategoryItem extends React.Component {
|
||||||
|
|
@ -17,22 +19,19 @@ class CategoryItem extends React.Component {
|
||||||
const category = this.props.category;
|
const category = this.props.category;
|
||||||
|
|
||||||
this.props.selectCategory(category);
|
this.props.selectCategory(category);
|
||||||
this.props.fetchPostsByCategory(category);
|
this.props.fetchPostsBySection(category);
|
||||||
|
this.props.fetchCategory(category);
|
||||||
if (category.unread === 0) {
|
|
||||||
this.props.fetchCategory(category);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
render() {
|
render() {
|
||||||
const imageSrc = this.state.open
|
const imageSrc = this.state.open
|
||||||
? '/static/chevron-down.svg'
|
? '/static/chevron-down.svg'
|
||||||
: '/static/chevron-right.svg';
|
: '/static/chevron-right.svg';
|
||||||
const selected = isEqual(this.props.category, this.props.selected);
|
const selected = isSelected(this.props.category, this.props.selected, CATEGORY_TYPE);
|
||||||
const className = selected ? 'category category--selected' : 'category';
|
const className = selected ? 'category category--selected' : 'category';
|
||||||
|
|
||||||
const ruleItems = this.props.rules.map(rule => {
|
const ruleItems = this.props.rules.map(rule => {
|
||||||
return <RuleItem key={rule.id} rule={rule} selected={this.props.selectedRule} />;
|
return <RuleItem key={rule.id} rule={rule} selected={this.props.selected} />;
|
||||||
});
|
});
|
||||||
|
|
||||||
return (
|
return (
|
||||||
|
|
@ -58,7 +57,7 @@ class CategoryItem extends React.Component {
|
||||||
|
|
||||||
const mapDispatchToProps = dispatch => ({
|
const mapDispatchToProps = dispatch => ({
|
||||||
selectCategory: category => dispatch(selectCategory(category)),
|
selectCategory: category => dispatch(selectCategory(category)),
|
||||||
fetchPostsByCategory: category => dispatch(fetchPostsByCategory(category)),
|
fetchPostsBySection: section => dispatch(fetchPostsBySection(section)),
|
||||||
fetchCategory: category => dispatch(fetchCategory(category)),
|
fetchCategory: category => dispatch(fetchCategory(category)),
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -2,38 +2,33 @@ import React from 'react';
|
||||||
import { connect } from 'react-redux';
|
import { connect } from 'react-redux';
|
||||||
import { isEqual } from 'lodash';
|
import { isEqual } from 'lodash';
|
||||||
|
|
||||||
|
import { RULE_TYPE } from '../../constants.js';
|
||||||
import { selectRule, fetchRule } from '../../actions/rules.js';
|
import { selectRule, fetchRule } from '../../actions/rules.js';
|
||||||
import { fetchPostsByRule } from '../../actions/posts.js';
|
import { fetchPostsBySection } from '../../actions/posts.js';
|
||||||
|
import { isSelected } from './functions.js';
|
||||||
|
|
||||||
class RuleItem extends React.Component {
|
class RuleItem extends React.Component {
|
||||||
handleSelect() {
|
handleSelect() {
|
||||||
const rule = { ...this.props.rule };
|
const rule = { ...this.props.rule };
|
||||||
|
|
||||||
this.props.selectRule(rule);
|
this.props.selectRule(rule);
|
||||||
this.props.fetchPostsByRule(rule);
|
this.props.fetchPostsBySection(rule);
|
||||||
|
this.props.fetchRule(rule);
|
||||||
if (rule.unread === 0) {
|
|
||||||
this.props.fetchRule(rule);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
render() {
|
render() {
|
||||||
const selected = isEqual(this.props.selected, this.props.rule);
|
const selected = isSelected(this.props.rule, this.props.selected, RULE_TYPE);
|
||||||
const className = `rules__item ${selected ? 'rules__item--selected' : ''}`;
|
const className = `rules__item ${selected ? 'rules__item--selected' : ''}`;
|
||||||
|
const favicon = this.props.rule.favicon
|
||||||
|
? this.props.rule.favicon
|
||||||
|
: '/static/picture.svg';
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<li className={className} onClick={() => this.handleSelect()}>
|
<li className={className} onClick={() => this.handleSelect()}>
|
||||||
<div className="rule">
|
<div className="rule">
|
||||||
{this.props.rule.favicon && (
|
<span>
|
||||||
<span>
|
<img className="icon" width="20" src={favicon} />
|
||||||
<img
|
</span>
|
||||||
className="icon"
|
|
||||||
width="15"
|
|
||||||
height="15"
|
|
||||||
src={this.props.rule.favicon}
|
|
||||||
/>
|
|
||||||
</span>
|
|
||||||
)}
|
|
||||||
<h5 className="rule__title" title={this.props.rule.name}>
|
<h5 className="rule__title" title={this.props.rule.name}>
|
||||||
{this.props.rule.name}
|
{this.props.rule.name}
|
||||||
</h5>
|
</h5>
|
||||||
|
|
@ -46,7 +41,7 @@ class RuleItem extends React.Component {
|
||||||
|
|
||||||
const mapDispatchToProps = dispatch => ({
|
const mapDispatchToProps = dispatch => ({
|
||||||
selectRule: rule => dispatch(selectRule(rule)),
|
selectRule: rule => dispatch(selectRule(rule)),
|
||||||
fetchPostsByRule: rule => dispatch(fetchPostsByRule(rule)),
|
fetchPostsBySection: section => dispatch(fetchPostsBySection(section)),
|
||||||
fetchRule: rule => dispatch(fetchRule(rule)),
|
fetchRule: rule => dispatch(fetchRule(rule)),
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -22,7 +22,6 @@ class Sidebar extends React.Component {
|
||||||
category={category}
|
category={category}
|
||||||
rules={rules}
|
rules={rules}
|
||||||
selected={this.props.selected.item}
|
selected={this.props.selected.item}
|
||||||
selectedRule={this.props.selected.item}
|
|
||||||
/>
|
/>
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,7 @@
|
||||||
|
export const isSelected = (section, selected, type) => {
|
||||||
|
if (!selected || selected.type != type) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
return section.id === selected.id;
|
||||||
|
};
|
||||||
2
src/newsreader/js/pages/homepage/constants.js
Normal file
|
|
@ -0,0 +1,2 @@
|
||||||
|
export const RULE_TYPE = 'RULE';
|
||||||
|
export const CATEGORY_TYPE = 'CATEGORY';
|
||||||
|
|
@ -1,5 +1,7 @@
|
||||||
import { isEqual } from 'lodash';
|
import { isEqual } from 'lodash';
|
||||||
|
|
||||||
|
import { CATEGORY_TYPE, RULE_TYPE } from '../constants.js';
|
||||||
|
|
||||||
import {
|
import {
|
||||||
RECEIVE_CATEGORY,
|
RECEIVE_CATEGORY,
|
||||||
RECEIVE_CATEGORIES,
|
RECEIVE_CATEGORIES,
|
||||||
|
|
@ -7,11 +9,36 @@ import {
|
||||||
REQUEST_CATEGORIES,
|
REQUEST_CATEGORIES,
|
||||||
} from '../actions/categories.js';
|
} from '../actions/categories.js';
|
||||||
|
|
||||||
import { RECEIVE_RULE, RECEIVE_RULES } from '../actions/rules.js';
|
|
||||||
|
|
||||||
import { MARK_POST_READ } from '../actions/posts.js';
|
import { MARK_POST_READ } from '../actions/posts.js';
|
||||||
import { MARK_SECTION_READ } from '../actions/selected.js';
|
import { MARK_SECTION_READ } from '../actions/selected.js';
|
||||||
|
|
||||||
|
const markCategoryRead = (action, state) => {
|
||||||
|
const category = { ...state.items[action.section.id] };
|
||||||
|
|
||||||
|
return {
|
||||||
|
...state,
|
||||||
|
items: {
|
||||||
|
...state.items,
|
||||||
|
[category.id]: { ...category, unread: 0 },
|
||||||
|
},
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
const markCategoryByRule = (action, state) => {
|
||||||
|
const category = { ...state.items[action.section.category] };
|
||||||
|
|
||||||
|
return {
|
||||||
|
...state,
|
||||||
|
items: {
|
||||||
|
...state.items,
|
||||||
|
[category.id]: {
|
||||||
|
...category,
|
||||||
|
unread: category.unread - action.section.unread,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
const defaultState = { items: {}, isFetching: false };
|
const defaultState = { items: {}, isFetching: false };
|
||||||
|
|
||||||
export const categories = (state = { ...defaultState }, action) => {
|
export const categories = (state = { ...defaultState }, action) => {
|
||||||
|
|
@ -21,7 +48,7 @@ export const categories = (state = { ...defaultState }, action) => {
|
||||||
...state,
|
...state,
|
||||||
items: {
|
items: {
|
||||||
...state.items,
|
...state.items,
|
||||||
[action.category.id]: { ...action.category, rules: {} },
|
[action.category.id]: { ...action.category },
|
||||||
},
|
},
|
||||||
isFetching: false,
|
isFetching: false,
|
||||||
};
|
};
|
||||||
|
|
@ -31,7 +58,6 @@ export const categories = (state = { ...defaultState }, action) => {
|
||||||
Object.values({ ...action.categories }).forEach(category => {
|
Object.values({ ...action.categories }).forEach(category => {
|
||||||
receivedCategories[category.id] = {
|
receivedCategories[category.id] = {
|
||||||
...category,
|
...category,
|
||||||
rules: {},
|
|
||||||
};
|
};
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
@ -40,44 +66,6 @@ export const categories = (state = { ...defaultState }, action) => {
|
||||||
items: { ...state.items, ...receivedCategories },
|
items: { ...state.items, ...receivedCategories },
|
||||||
isFetching: false,
|
isFetching: false,
|
||||||
};
|
};
|
||||||
case RECEIVE_RULE:
|
|
||||||
const category = { ...state.items[action.rule.category] };
|
|
||||||
|
|
||||||
category['rules'][action.rule.id] = { ...action.rule };
|
|
||||||
|
|
||||||
return {
|
|
||||||
...state,
|
|
||||||
items: {
|
|
||||||
...state.items,
|
|
||||||
[category.id]: { ...category },
|
|
||||||
},
|
|
||||||
};
|
|
||||||
case RECEIVE_RULES:
|
|
||||||
const relevantCategories = {};
|
|
||||||
|
|
||||||
Object.values({ ...action.rules }).forEach(rule => {
|
|
||||||
if (!(rule.category in relevantCategories)) {
|
|
||||||
const category = { ...state.items[rule.category] };
|
|
||||||
|
|
||||||
relevantCategories[rule.category] = {
|
|
||||||
...category,
|
|
||||||
rules: {
|
|
||||||
...category.rules,
|
|
||||||
[rule.id]: { ...rule },
|
|
||||||
},
|
|
||||||
};
|
|
||||||
} else {
|
|
||||||
relevantCategories[rule.category]['rules'][rule.id] = { ...rule };
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
return {
|
|
||||||
...state,
|
|
||||||
items: {
|
|
||||||
...state.items,
|
|
||||||
...relevantCategories,
|
|
||||||
},
|
|
||||||
};
|
|
||||||
case REQUEST_CATEGORIES:
|
case REQUEST_CATEGORIES:
|
||||||
case REQUEST_CATEGORY:
|
case REQUEST_CATEGORY:
|
||||||
return {
|
return {
|
||||||
|
|
@ -85,31 +73,24 @@ export const categories = (state = { ...defaultState }, action) => {
|
||||||
isFetching: true,
|
isFetching: true,
|
||||||
};
|
};
|
||||||
case MARK_POST_READ:
|
case MARK_POST_READ:
|
||||||
return {
|
let category = { ...state.items[action.section.category] };
|
||||||
...state,
|
|
||||||
items: { ...state.items, [action.category.id]: { ...action.category } },
|
|
||||||
};
|
|
||||||
case MARK_SECTION_READ:
|
|
||||||
if (!isEqual(action.rule, {})) {
|
|
||||||
return {
|
|
||||||
...state,
|
|
||||||
items: {
|
|
||||||
...state.items,
|
|
||||||
[action.category.id]: {
|
|
||||||
...action.category,
|
|
||||||
unread: action.category.unread - action.rule.unread,
|
|
||||||
},
|
|
||||||
},
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
return {
|
return {
|
||||||
...state,
|
...state,
|
||||||
items: {
|
items: {
|
||||||
...state.items,
|
...state.items,
|
||||||
[action.category.id]: { ...action.category, unread: 0 },
|
[category.id]: { ...category, unread: category.unread - 1 },
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
case MARK_SECTION_READ:
|
||||||
|
switch (action.section.type) {
|
||||||
|
case CATEGORY_TYPE:
|
||||||
|
return markCategoryRead(action, state);
|
||||||
|
case RULE_TYPE:
|
||||||
|
return markCategoryByRule(action, state);
|
||||||
|
}
|
||||||
|
|
||||||
|
return state;
|
||||||
default:
|
default:
|
||||||
return state;
|
return state;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,5 @@
|
||||||
import { isEqual } from 'lodash';
|
import { isEqual } from 'lodash';
|
||||||
|
import { CATEGORY_TYPE, RULE_TYPE } from '../constants.js';
|
||||||
|
|
||||||
import {
|
import {
|
||||||
SELECT_POST,
|
SELECT_POST,
|
||||||
|
|
@ -39,14 +40,19 @@ export const posts = (state = { ...defaultState }, action) => {
|
||||||
const updatedPosts = {};
|
const updatedPosts = {};
|
||||||
let relatedPosts = [];
|
let relatedPosts = [];
|
||||||
|
|
||||||
if (!isEqual(action.rule, {})) {
|
switch (action.section.type) {
|
||||||
relatedPosts = Object.values({ ...state.items }).filter(post => {
|
case CATEGORY_TYPE:
|
||||||
return post.rule === action.rule.id;
|
relatedPosts = Object.values({ ...state.items }).filter(post => {
|
||||||
});
|
return post.rule in { ...action.section.rules };
|
||||||
} else {
|
});
|
||||||
relatedPosts = Object.values({ ...state.items }).filter(post => {
|
|
||||||
return post.rule in { ...action.category.rules };
|
break;
|
||||||
});
|
case RULE_TYPE:
|
||||||
|
relatedPosts = Object.values({ ...state.items }).filter(post => {
|
||||||
|
return post.rule === action.section.id;
|
||||||
|
});
|
||||||
|
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
relatedPosts.forEach(post => {
|
relatedPosts.forEach(post => {
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,7 @@
|
||||||
import { isEqual } from 'lodash';
|
import { isEqual } from 'lodash';
|
||||||
|
|
||||||
|
import { CATEGORY_TYPE, RULE_TYPE } from '../constants.js';
|
||||||
|
|
||||||
import {
|
import {
|
||||||
REQUEST_RULES,
|
REQUEST_RULES,
|
||||||
REQUEST_RULE,
|
REQUEST_RULE,
|
||||||
|
|
@ -32,33 +34,47 @@ export const rules = (state = { ...defaultState }, action) => {
|
||||||
isFetching: false,
|
isFetching: false,
|
||||||
};
|
};
|
||||||
case MARK_POST_READ:
|
case MARK_POST_READ:
|
||||||
|
const rule = { ...state.items[action.section.id] };
|
||||||
|
|
||||||
|
return {
|
||||||
|
...state,
|
||||||
|
items: {
|
||||||
|
...state.items,
|
||||||
|
[rule.id]: { ...rule, unread: rule.unread - 1 },
|
||||||
|
},
|
||||||
|
};
|
||||||
case MARK_SECTION_READ:
|
case MARK_SECTION_READ:
|
||||||
if (!isEqual(action.rule, {})) {
|
switch (action.section.type) {
|
||||||
return {
|
case RULE_TYPE:
|
||||||
...state,
|
const rule = { ...state.items[action.section.id] };
|
||||||
items: {
|
|
||||||
...state.items,
|
return {
|
||||||
[action.rule.id]: {
|
...state,
|
||||||
...action.rule,
|
items: {
|
||||||
unread: 0,
|
...state.items,
|
||||||
|
[rule.id]: { ...rule, unread: 0 },
|
||||||
},
|
},
|
||||||
},
|
};
|
||||||
};
|
case CATEGORY_TYPE:
|
||||||
|
const updatedRules = {};
|
||||||
|
const categoryRules = Object.values({ ...state.items }).filter(rule => {
|
||||||
|
return rule.category === action.section.id;
|
||||||
|
});
|
||||||
|
|
||||||
|
categoryRules.forEach(rule => {
|
||||||
|
updatedRules[rule.id] = { ...rule, unread: 0 };
|
||||||
|
});
|
||||||
|
|
||||||
|
return {
|
||||||
|
...state,
|
||||||
|
items: {
|
||||||
|
...state.items,
|
||||||
|
...updatedRules,
|
||||||
|
},
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
const updatedRules = {};
|
return state;
|
||||||
Object.values({ ...state.items }).forEach(rule => {
|
|
||||||
if (rule.category === action.category.id) {
|
|
||||||
updatedRules[rule.id] = {
|
|
||||||
...rule,
|
|
||||||
unread: 0,
|
|
||||||
};
|
|
||||||
} else {
|
|
||||||
updatedRules[rule.id] = { ...rule };
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
return { ...state, items: { ...updatedRules } };
|
|
||||||
default:
|
default:
|
||||||
return state;
|
return state;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -17,9 +17,32 @@ export const selected = (state = { ...defaultState }, action) => {
|
||||||
switch (action.type) {
|
switch (action.type) {
|
||||||
case SELECT_CATEGORY:
|
case SELECT_CATEGORY:
|
||||||
case SELECT_RULE:
|
case SELECT_RULE:
|
||||||
|
if (state.item) {
|
||||||
|
if (
|
||||||
|
state.item.id === action.section.id &&
|
||||||
|
state.item.type === action.section.type
|
||||||
|
) {
|
||||||
|
if (state.item.clicks >= 2) {
|
||||||
|
return {
|
||||||
|
...state,
|
||||||
|
item: { ...action.section, clicks: 0 },
|
||||||
|
next: false,
|
||||||
|
lastReached: false,
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
return {
|
||||||
|
...state,
|
||||||
|
item: { ...action.section, clicks: state.item.clicks + 1 },
|
||||||
|
next: false,
|
||||||
|
lastReached: false,
|
||||||
|
};
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return {
|
return {
|
||||||
...state,
|
...state,
|
||||||
item: action.item,
|
item: { ...action.section, clicks: 0 },
|
||||||
next: false,
|
next: false,
|
||||||
lastReached: false,
|
lastReached: false,
|
||||||
};
|
};
|
||||||
|
|
@ -53,16 +76,9 @@ export const selected = (state = { ...defaultState }, action) => {
|
||||||
post: {},
|
post: {},
|
||||||
};
|
};
|
||||||
case MARK_SECTION_READ:
|
case MARK_SECTION_READ:
|
||||||
if (!isEqual(action.rule, {})) {
|
|
||||||
return {
|
|
||||||
...state,
|
|
||||||
item: { ...action.rule, unread: 0 },
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
return {
|
return {
|
||||||
...state,
|
...state,
|
||||||
item: { ...action.category },
|
item: { ...action.section, clicks: 0, unread: 0 },
|
||||||
};
|
};
|
||||||
default:
|
default:
|
||||||
return state;
|
return state;
|
||||||
|
|
|
||||||
|
|
@ -34,7 +34,7 @@
|
||||||
<li class="list__item checkbox-list__item">
|
<li class="list__item checkbox-list__item">
|
||||||
{% block rule-input %}{% endblock %}
|
{% block rule-input %}{% endblock %}
|
||||||
<img class="favicon"
|
<img class="favicon"
|
||||||
src="{% if rule.favicon %}{{ rule.favicon }}{% else %}/static/favicon-placeholder.svg{% endif %}" />
|
src="{% if rule.favicon %}{{ rule.favicon }}{% else %}/static/picture.svg{% endif %}" />
|
||||||
<span>{{ rule.name }}</span>
|
<span>{{ rule.name }}</span>
|
||||||
</li>
|
</li>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
|
|
|
||||||
|
|
@ -4,9 +4,11 @@
|
||||||
background-color: $gainsboro;
|
background-color: $gainsboro;
|
||||||
|
|
||||||
font-family: $default-font;
|
font-family: $default-font;
|
||||||
|
color: $default-font-color;
|
||||||
|
|
||||||
& * {
|
& * {
|
||||||
margin: 0;
|
margin: 0;
|
||||||
padding: 0;
|
padding: 0;
|
||||||
|
box-sizing: border-box;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
3
src/newsreader/scss/elements/a/_a.scss
Normal file
|
|
@ -0,0 +1,3 @@
|
||||||
|
a {
|
||||||
|
@extend .link;
|
||||||
|
}
|
||||||
1
src/newsreader/scss/elements/a/index.scss
Normal file
|
|
@ -0,0 +1 @@
|
||||||
|
@import "a";
|
||||||
|
|
@ -17,7 +17,7 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
&--success, &--confirm {
|
&--success, &--confirm {
|
||||||
color: $white;
|
color: $white !important;
|
||||||
background-color: $confirm-green;
|
background-color: $confirm-green;
|
||||||
|
|
||||||
&:hover {
|
&:hover {
|
||||||
|
|
@ -26,7 +26,7 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
&--error, &--cancel {
|
&--error, &--cancel {
|
||||||
color: $white;
|
color: $white !important;
|
||||||
background-color: $error-red;
|
background-color: $error-red;
|
||||||
|
|
||||||
&:hover {
|
&:hover {
|
||||||
|
|
@ -36,7 +36,7 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
&--primary {
|
&--primary {
|
||||||
color: $white;
|
color: $white !important;
|
||||||
background-color: darken($azureish-white, +20%);
|
background-color: darken($azureish-white, +20%);
|
||||||
|
|
||||||
&:hover {
|
&:hover {
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,6 @@
|
||||||
@import "./button/index";
|
@import "./button/index";
|
||||||
@import "link/index";
|
@import "link/index";
|
||||||
|
@import "a/index";
|
||||||
@import "h1/index";
|
@import "h1/index";
|
||||||
@import "h2/index";
|
@import "h2/index";
|
||||||
@import "h3/index";
|
@import "h3/index";
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,5 @@
|
||||||
.link {
|
.link {
|
||||||
|
color: darken($azureish-white, 30%);
|
||||||
text-decoration: none;
|
text-decoration: none;
|
||||||
|
|
||||||
&:hover {
|
&:hover {
|
||||||
|
|
|
||||||
|
|
@ -36,11 +36,10 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
&:hover {
|
&:hover {
|
||||||
background-color: darken($gainsboro, 10%);
|
background-color: darken($azureish-white, +10%);
|
||||||
}
|
}
|
||||||
|
|
||||||
&--selected {
|
&--selected {
|
||||||
color: $white;
|
background-color: darken($azureish-white, +10%);
|
||||||
background-color: darken($gainsboro, 10%);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,7 @@
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
|
|
||||||
width: 60%;
|
width: 70%;
|
||||||
margin: 0 0 2% 0;
|
margin: 0 0 2% 0;
|
||||||
|
|
||||||
font-family: $article-font;
|
font-family: $article-font;
|
||||||
|
|
|
||||||
|
|
@ -54,6 +54,7 @@
|
||||||
|
|
||||||
line-height: 1.5;
|
line-height: 1.5;
|
||||||
font-family: $article-font;
|
font-family: $article-font;
|
||||||
|
font-size: 18px;
|
||||||
|
|
||||||
& p {
|
& p {
|
||||||
padding: 20px 0 0 0;
|
padding: 20px 0 0 0;
|
||||||
|
|
@ -80,7 +81,7 @@
|
||||||
margin: 0 0 0 5px;
|
margin: 0 0 0 5px;
|
||||||
|
|
||||||
& img {
|
& img {
|
||||||
width: 10px;
|
width: 20px;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -99,7 +100,7 @@
|
||||||
width: 10%;
|
width: 10%;
|
||||||
|
|
||||||
font-family: $button-font;
|
font-family: $button-font;
|
||||||
color: $nickel;
|
color: lighten($default-font-color, +10%);
|
||||||
|
|
||||||
& h5 {
|
& h5 {
|
||||||
margin: 10px 0 0 0;
|
margin: 10px 0 0 0;
|
||||||
|
|
@ -119,7 +120,7 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
& h5:last-child {
|
& h5:last-child {
|
||||||
background-color: $light-green;
|
background-color: $beige;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,12 @@
|
||||||
.posts-header {
|
.posts-header {
|
||||||
display: flex;
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
padding: 0 5px 0 0;
|
padding: 0 5px 0 0;
|
||||||
|
|
||||||
width: 80%;
|
width: 80%;
|
||||||
|
|
||||||
&__link {
|
&__link {
|
||||||
|
display: flex;
|
||||||
padding: 0 0 0 5px;
|
padding: 0 0 0 5px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -12,10 +14,10 @@
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
text-overflow: ellipsis;
|
text-overflow: ellipsis;
|
||||||
white-space: nowrap;
|
white-space: nowrap;
|
||||||
font-size: small;
|
font-size: 16px;
|
||||||
|
|
||||||
&--read {
|
&--read {
|
||||||
color: $gainsboro;
|
color: darken($gainsboro, +10%);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -7,20 +7,19 @@
|
||||||
&__item {
|
&__item {
|
||||||
display: flex;
|
display: flex;
|
||||||
justify-content: space-between;
|
justify-content: space-between;
|
||||||
|
align-items: center;
|
||||||
|
|
||||||
padding: 10px 0 0px 0;
|
padding: 10px 0 10px 0;
|
||||||
|
|
||||||
border-radius: 2px;
|
border-radius: 2px;
|
||||||
border-bottom: 2px solid $azureish-white;
|
border-bottom: 2px solid $azureish-white;
|
||||||
|
|
||||||
&:hover {
|
&:hover {
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
background-color: lighten($gainsboro, 10%);
|
background-color: $gainsboro;
|
||||||
}
|
}
|
||||||
|
|
||||||
& span {
|
& span {
|
||||||
width: 20%;
|
|
||||||
|
|
||||||
font-size: small;
|
font-size: small;
|
||||||
text-overflow: ellipsis;
|
text-overflow: ellipsis;
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,6 @@
|
||||||
.rule {
|
.rule {
|
||||||
display: flex;
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
width: 80%;
|
width: 80%;
|
||||||
|
|
||||||
&__title {
|
&__title {
|
||||||
|
|
@ -7,4 +8,8 @@
|
||||||
text-overflow: ellipsis;
|
text-overflow: ellipsis;
|
||||||
white-space: nowrap;
|
white-space: nowrap;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
& span {
|
||||||
|
display: flex;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -18,12 +18,11 @@
|
||||||
|
|
||||||
&:hover {
|
&:hover {
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
background-color: darken($gainsboro, 10%);
|
background-color: darken($azureish-white, +10%);
|
||||||
}
|
}
|
||||||
|
|
||||||
&--selected {
|
&--selected {
|
||||||
color: $white;
|
background-color: darken($azureish-white, +10%);
|
||||||
background-color: darken($gainsboro, 10%);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -3,12 +3,11 @@
|
||||||
|
|
||||||
padding-left: 8px;
|
padding-left: 8px;
|
||||||
padding-right: 8px;
|
padding-right: 8px;
|
||||||
border-radius: 20%;
|
border-radius: 2px;
|
||||||
|
|
||||||
text-align: center;
|
text-align: center;
|
||||||
|
|
||||||
background-color: darken($pink, 10%);
|
background-color: lighten($pewter-blue, +20%);
|
||||||
color: $white;
|
|
||||||
|
|
||||||
font-family: $button-font;
|
font-family: $button-font;
|
||||||
font-size: small;
|
font-size: small;
|
||||||
|
|
|
||||||
|
|
@ -10,7 +10,7 @@ $azureish-white: rgba(205, 230, 245, 1);
|
||||||
$pewter-blue: rgba(141, 167, 190, 1);
|
$pewter-blue: rgba(141, 167, 190, 1);
|
||||||
|
|
||||||
// light gray
|
// light gray
|
||||||
$gainsboro: rgba(224, 221, 220, 1);
|
$gainsboro: rgba(238, 238, 238, 1);
|
||||||
|
|
||||||
// medium gray
|
// medium gray
|
||||||
$roman-silver: rgba(135, 145, 158, 1);
|
$roman-silver: rgba(135, 145, 158, 1);
|
||||||
|
|
@ -35,3 +35,4 @@ $cancel-red: $error-red;
|
||||||
|
|
||||||
$border-gray: rgba(227, 227, 227, 1);
|
$border-gray: rgba(227, 227, 227, 1);
|
||||||
$focus-blue: darken($azureish-white, +50%);
|
$focus-blue: darken($azureish-white, +50%);
|
||||||
|
$default-font-color: rgba(48, 51, 53, 1);
|
||||||
|
|
|
||||||
6
src/newsreader/static/icons/alarm.svg
Executable file
|
|
@ -0,0 +1,6 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<!-- Generated by IcoMoon.io -->
|
||||||
|
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||||
|
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="20" height="20" viewBox="0 0 20 20">
|
||||||
|
<path fill="#000000" d="M16.8 15.101c-1.144-0.859-1.8-2.172-1.8-3.601v-3c0-2.513-1.694-4.638-4-5.292l-0-0.708c0-0.827-0.673-1.5-1.5-1.5s-1.5 0.673-1.5 1.5v0.708c-2.306 0.655-4 2.779-4 5.292v3c0 1.429-0.656 2.741-1.8 3.601-0.172 0.129-0.242 0.354-0.174 0.558s0.259 0.342 0.474 0.342h4.55c-0.033 0.164-0.051 0.331-0.051 0.5 0 1.378 1.122 2.5 2.5 2.5s2.5-1.122 2.5-2.5c0-0.168-0.017-0.336-0.050-0.5h4.55c0.215 0 0.406-0.138 0.474-0.342s-0.002-0.429-0.174-0.558zM9 2.5c0-0.276 0.224-0.5 0.5-0.5s0.5 0.224 0.5 0.5v0.523c-0.165-0.015-0.331-0.023-0.5-0.023s-0.335 0.008-0.5 0.023v-0.523zM11 16.5c0 0.827-0.673 1.5-1.5 1.5s-1.5-0.673-1.5-1.5c0-0.171 0.030-0.34 0.086-0.5h2.828c0.056 0.16 0.086 0.329 0.086 0.5zM3.742 15c0.255-0.309 0.477-0.646 0.659-1.001 0.398-0.778 0.599-1.619 0.599-2.499v-3c0-2.481 2.019-4.5 4.5-4.5s4.5 2.019 4.5 4.5v3c0 0.88 0.202 1.721 0.599 2.499 0.182 0.356 0.404 0.692 0.659 1.001h-11.517z"></path>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 1.2 KiB |
30
src/newsreader/static/icons/apartment.svg
Executable file
|
|
@ -0,0 +1,30 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<!-- Generated by IcoMoon.io -->
|
||||||
|
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||||
|
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="20" height="20" viewBox="0 0 20 20">
|
||||||
|
<path fill="#000000" d="M14 6h1v1h-1v-1z"></path>
|
||||||
|
<path fill="#000000" d="M14 8h1v1h-1v-1z"></path>
|
||||||
|
<path fill="#000000" d="M14 10h1v1h-1v-1z"></path>
|
||||||
|
<path fill="#000000" d="M14 12h1v1h-1v-1z"></path>
|
||||||
|
<path fill="#000000" d="M14 16h1v1h-1v-1z"></path>
|
||||||
|
<path fill="#000000" d="M14 14h1v1h-1v-1z"></path>
|
||||||
|
<path fill="#000000" d="M6 6h1v1h-1v-1z"></path>
|
||||||
|
<path fill="#000000" d="M6 8h1v1h-1v-1z"></path>
|
||||||
|
<path fill="#000000" d="M6 10h1v1h-1v-1z"></path>
|
||||||
|
<path fill="#000000" d="M6 12h1v1h-1v-1z"></path>
|
||||||
|
<path fill="#000000" d="M6 16h1v1h-1v-1z"></path>
|
||||||
|
<path fill="#000000" d="M6 14h1v1h-1v-1z"></path>
|
||||||
|
<path fill="#000000" d="M4 6h1v1h-1v-1z"></path>
|
||||||
|
<path fill="#000000" d="M4 8h1v1h-1v-1z"></path>
|
||||||
|
<path fill="#000000" d="M4 10h1v1h-1v-1z"></path>
|
||||||
|
<path fill="#000000" d="M4 12h1v1h-1v-1z"></path>
|
||||||
|
<path fill="#000000" d="M4 16h1v1h-1v-1z"></path>
|
||||||
|
<path fill="#000000" d="M4 14h1v1h-1v-1z"></path>
|
||||||
|
<path fill="#000000" d="M8 6h1v1h-1v-1z"></path>
|
||||||
|
<path fill="#000000" d="M8 8h1v1h-1v-1z"></path>
|
||||||
|
<path fill="#000000" d="M8 10h1v1h-1v-1z"></path>
|
||||||
|
<path fill="#000000" d="M8 12h1v1h-1v-1z"></path>
|
||||||
|
<path fill="#000000" d="M8 16h1v1h-1v-1z"></path>
|
||||||
|
<path fill="#000000" d="M8 14h1v1h-1v-1z"></path>
|
||||||
|
<path fill="#000000" d="M18.5 19h-0.5v-13.5c0-0.763-0.567-1.549-1.291-1.791l-4.709-1.57v-1.64c0-0.158-0.075-0.307-0.202-0.401s-0.291-0.123-0.442-0.078l-9.042 2.713c-0.737 0.221-1.314 0.997-1.314 1.766v14.5h-0.5c-0.276 0-0.5 0.224-0.5 0.5s0.224 0.5 0.5 0.5h18c0.276 0 0.5-0.224 0.5-0.5s-0.224-0.5-0.5-0.5zM16.393 4.658c0.318 0.106 0.607 0.507 0.607 0.842v13.5h-5v-15.806l4.393 1.464zM2 4.5c0-0.329 0.287-0.714 0.602-0.808l8.398-2.52v17.828h-9v-14.5z"></path>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 1.9 KiB |
7
src/newsreader/static/icons/arrow-down-circle.svg
Executable file
|
|
@ -0,0 +1,7 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<!-- Generated by IcoMoon.io -->
|
||||||
|
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||||
|
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="20" height="20" viewBox="0 0 20 20">
|
||||||
|
<path fill="#000000" d="M16.218 17.218c1.794-1.794 2.782-4.18 2.782-6.718s-0.988-4.923-2.782-6.717-4.18-2.782-6.718-2.782-4.923 0.988-6.718 2.782-2.782 4.18-2.782 6.717 0.988 4.923 2.782 6.718 4.18 2.782 6.718 2.782 4.923-0.988 6.718-2.782zM1 10.5c0-4.687 3.813-8.5 8.5-8.5s8.5 3.813 8.5 8.5c0 4.687-3.813 8.5-8.5 8.5s-8.5-3.813-8.5-8.5z"></path>
|
||||||
|
<path fill="#000000" d="M9.853 16.353l4-4c0.195-0.195 0.195-0.512 0-0.707s-0.512-0.195-0.707 0l-3.146 3.147v-10.293c0-0.276-0.224-0.5-0.5-0.5s-0.5 0.224-0.5 0.5v10.293l-3.147-3.146c-0.195-0.195-0.512-0.195-0.707 0-0.098 0.098-0.146 0.226-0.146 0.353s0.049 0.256 0.147 0.353l4 4c0.195 0.195 0.512 0.195 0.707 0z"></path>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 986 B |
6
src/newsreader/static/icons/arrow-down.svg
Executable file
|
|
@ -0,0 +1,6 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<!-- Generated by IcoMoon.io -->
|
||||||
|
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||||
|
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="20" height="20" viewBox="0 0 20 20">
|
||||||
|
<path fill="#000000" d="M9.854 19.354l6-6c0.195-0.195 0.195-0.512 0-0.707s-0.512-0.195-0.707 0l-5.146 5.146v-16.293c0-0.276-0.224-0.5-0.5-0.5s-0.5 0.224-0.5 0.5v16.293l-5.146-5.146c-0.195-0.195-0.512-0.195-0.707 0-0.098 0.098-0.146 0.226-0.146 0.354s0.049 0.256 0.146 0.354l6 6c0.195 0.195 0.512 0.195 0.707 0z"></path>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 639 B |
7
src/newsreader/static/icons/arrow-left-circle.svg
Executable file
|
|
@ -0,0 +1,7 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<!-- Generated by IcoMoon.io -->
|
||||||
|
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||||
|
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="20" height="20" viewBox="0 0 20 20">
|
||||||
|
<path fill="#000000" d="M2.782 3.782c1.794-1.794 4.18-2.782 6.718-2.782s4.923 0.988 6.718 2.782 2.782 4.18 2.782 6.717-0.988 4.923-2.782 6.718-4.18 2.782-6.718 2.782-4.923-0.988-6.718-2.782-2.782-4.18-2.782-6.718 0.988-4.923 2.782-6.717zM9.5 19c4.687 0 8.5-3.813 8.5-8.5s-3.813-8.5-8.5-8.5c-4.687 0-8.5 3.813-8.5 8.5s3.813 8.5 8.5 8.5z"></path>
|
||||||
|
<path fill="#000000" d="M3.647 10.147l4-4c0.195-0.195 0.512-0.195 0.707 0s0.195 0.512 0 0.707l-3.147 3.146h10.293c0.276 0 0.5 0.224 0.5 0.5s-0.224 0.5-0.5 0.5h-10.293l3.146 3.147c0.195 0.195 0.195 0.512 0 0.707-0.098 0.098-0.226 0.146-0.353 0.146s-0.256-0.049-0.353-0.147l-4-4c-0.195-0.195-0.195-0.512 0-0.707z"></path>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 984 B |
|
|
@ -1,6 +1,6 @@
|
||||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<svg role="img" xmlns="http://www.w3.org/2000/svg" width="1000mm" height="1000mm" viewBox="0 0 1000 1000" style="max-width:1.6em; height: auto;">
|
<!-- Generated by IcoMoon.io -->
|
||||||
|
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||||
<path id="path" style="opacity:1;vector-effect:none;fill:#000000;fill-opacity:1;" d=" M 517 232C 517 232 517 232 517 232C 518 232 518 232 518 232C 518 232 718 432 718 432C 728 442 728 458 718 468C 708 478 692 478 682 468C 682 468 525 310 525 310C 525 310 526 750 526 750C 526 764 515 776 501 776C 487 776 475 764 476 750C 476 750 475 310 475 310C 475 310 318 468 318 468C 308 478 292 478 282 468C 272 458 272 442 282 432C 282 432 479 235 479 235C 484 229 492 225 500 225C 506 225 513 227 517 232C 517 232 517 232 517 232" transform="rotate(270, 500, 500) ">
|
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="20" height="20" viewBox="0 0 20 20">
|
||||||
</path>
|
<path fill="#000000" d="M0.646 10.146l6-6c0.195-0.195 0.512-0.195 0.707 0s0.195 0.512 0 0.707l-5.146 5.146h16.293c0.276 0 0.5 0.224 0.5 0.5s-0.224 0.5-0.5 0.5h-16.293l5.146 5.146c0.195 0.195 0.195 0.512 0 0.707-0.098 0.098-0.226 0.146-0.354 0.146s-0.256-0.049-0.354-0.146l-6-6c-0.195-0.195-0.195-0.512 0-0.707z"></path>
|
||||||
</svg>
|
</svg>
|
||||||
|
After Width: | Height: | Size: 639 B |
7
src/newsreader/static/icons/arrow-right-circle.svg
Executable file
|
|
@ -0,0 +1,7 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<!-- Generated by IcoMoon.io -->
|
||||||
|
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||||
|
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="20" height="20" viewBox="0 0 20 20">
|
||||||
|
<path fill="#000000" d="M16.218 3.782c-1.794-1.794-4.18-2.782-6.718-2.782s-4.923 0.988-6.718 2.782-2.782 4.18-2.782 6.717 0.988 4.923 2.782 6.718 4.18 2.782 6.718 2.782 4.923-0.988 6.718-2.782 2.782-4.18 2.782-6.718-0.988-4.923-2.782-6.717zM9.5 19c-4.687 0-8.5-3.813-8.5-8.5s3.813-8.5 8.5-8.5c4.687 0 8.5 3.813 8.5 8.5s-3.813 8.5-8.5 8.5z"></path>
|
||||||
|
<path fill="#000000" d="M15.353 10.147l-4-4c-0.195-0.195-0.512-0.195-0.707 0s-0.195 0.512 0 0.707l3.147 3.146h-10.293c-0.276 0-0.5 0.224-0.5 0.5s0.224 0.5 0.5 0.5h10.293l-3.146 3.147c-0.195 0.195-0.195 0.512 0 0.707 0.098 0.098 0.226 0.146 0.353 0.146s0.256-0.049 0.353-0.147l4-4c0.195-0.195 0.195-0.512 0-0.707z"></path>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 989 B |
6
src/newsreader/static/icons/arrow-right.svg
Executable file
|
|
@ -0,0 +1,6 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<!-- Generated by IcoMoon.io -->
|
||||||
|
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||||
|
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="20" height="20" viewBox="0 0 20 20">
|
||||||
|
<path fill="#000000" d="M19.354 10.146l-6-6c-0.195-0.195-0.512-0.195-0.707 0s-0.195 0.512 0 0.707l5.146 5.146h-16.293c-0.276 0-0.5 0.224-0.5 0.5s0.224 0.5 0.5 0.5h16.293l-5.146 5.146c-0.195 0.195-0.195 0.512 0 0.707 0.098 0.098 0.226 0.146 0.354 0.146s0.256-0.049 0.354-0.146l6-6c0.195-0.195 0.195-0.512 0-0.707z"></path>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 641 B |
7
src/newsreader/static/icons/arrow-up-circle.svg
Executable file
|
|
@ -0,0 +1,7 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<!-- Generated by IcoMoon.io -->
|
||||||
|
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||||
|
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="20" height="20" viewBox="0 0 20 20">
|
||||||
|
<path fill="#000000" d="M2.782 3.782c-1.794 1.794-2.782 4.18-2.782 6.718s0.988 4.923 2.782 6.718 4.18 2.782 6.718 2.782 4.923-0.988 6.718-2.782 2.782-4.18 2.782-6.717-0.988-4.923-2.782-6.718-4.18-2.782-6.718-2.782-4.923 0.988-6.718 2.782zM18 10.5c0 4.687-3.813 8.5-8.5 8.5s-8.5-3.813-8.5-8.5c0-4.687 3.813-8.5 8.5-8.5s8.5 3.813 8.5 8.5z"></path>
|
||||||
|
<path fill="#000000" d="M9.147 4.647l-4 4c-0.195 0.195-0.195 0.512 0 0.707s0.512 0.195 0.707 0l3.146-3.147v10.293c0 0.276 0.224 0.5 0.5 0.5s0.5-0.224 0.5-0.5v-10.293l3.147 3.146c0.195 0.195 0.512 0.195 0.707 0 0.098-0.098 0.146-0.226 0.146-0.353s-0.049-0.256-0.147-0.353l-4-4c-0.195-0.195-0.512-0.195-0.707 0z"></path>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 984 B |
6
src/newsreader/static/icons/arrow-up.svg
Executable file
|
|
@ -0,0 +1,6 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<!-- Generated by IcoMoon.io -->
|
||||||
|
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||||
|
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="20" height="20" viewBox="0 0 20 20">
|
||||||
|
<path fill="#000000" d="M9.146 0.646l-6 6c-0.195 0.195-0.195 0.512 0 0.707s0.512 0.195 0.707 0l5.146-5.146v16.293c0 0.276 0.224 0.5 0.5 0.5s0.5-0.224 0.5-0.5v-16.293l5.146 5.146c0.195 0.195 0.512 0.195 0.707 0 0.098-0.098 0.146-0.226 0.146-0.354s-0.049-0.256-0.146-0.354l-6-6c-0.195-0.195-0.512-0.195-0.707 0z"></path>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 638 B |
9
src/newsreader/static/icons/bicycle.svg
Executable file
|
|
@ -0,0 +1,9 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<!-- Generated by IcoMoon.io -->
|
||||||
|
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||||
|
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="20" height="20" viewBox="0 0 20 20">
|
||||||
|
<path fill="#000000" d="M5.5 9.002c-0.828 0-1.502-0.674-1.502-1.502s0.674-1.502 1.502-1.502 1.502 0.674 1.502 1.502-0.674 1.502-1.502 1.502zM5.5 6.998c-0.277 0-0.502 0.225-0.502 0.502s0.225 0.502 0.502 0.502 0.502-0.225 0.502-0.502-0.225-0.502-0.502-0.502z"></path>
|
||||||
|
<path fill="#000000" d="M9.5 17c-0.276 0-0.5-0.224-0.5-0.5v-2.998c0-0.772 0.581-1.543 1.324-1.756l1.5-0.429-3.26-2.173-1.71 1.71c-0.094 0.094-0.221 0.146-0.354 0.146h-2.002c-0.276 0-0.5-0.224-0.5-0.5s0.224-0.5 0.5-0.5h1.795l1.854-1.854c0.169-0.169 0.433-0.195 0.631-0.063l3.668 2.445c0.55 0.367 0.548 0.797 0.522 0.966s-0.156 0.579-0.791 0.761l-1.577 0.452c-0.313 0.090-0.599 0.468-0.599 0.795v2.998c0 0.276-0.224 0.5-0.5 0.5z"></path>
|
||||||
|
<path fill="#000000" d="M15 20c-2.206 0-4-1.794-4-4s1.794-4 4-4 4 1.794 4 4-1.794 4-4 4zM15 13c-1.654 0-3 1.346-3 3s1.346 3 3 3 3-1.346 3-3-1.346-3-3-3z"></path>
|
||||||
|
<path fill="#000000" d="M3.999 20c-2.205 0-3.999-1.794-3.999-3.999s1.794-3.999 3.999-3.999 3.999 1.794 3.999 3.999-1.794 3.999-3.999 3.999zM3.999 13.002c-1.654 0-2.999 1.345-2.999 2.999s1.345 2.999 2.999 2.999 2.999-1.345 2.999-2.999-1.345-2.999-2.999-2.999z"></path>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 1.4 KiB |
8
src/newsreader/static/icons/bold.svg
Executable file
|
|
@ -0,0 +1,8 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<!-- Generated by IcoMoon.io -->
|
||||||
|
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||||
|
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="20" height="20" viewBox="0 0 20 20">
|
||||||
|
<path fill="#000000" d="M10 9h-2.5c-0.276 0-0.5-0.224-0.5-0.5v-3c0-0.276 0.224-0.5 0.5-0.5h2.5c1.103 0 2 0.897 2 2s-0.897 2-2 2zM8 8h2c0.551 0 1-0.449 1-1s-0.449-1-1-1h-2v2z"></path>
|
||||||
|
<path fill="#000000" d="M11 15h-3.5c-0.276 0-0.5-0.224-0.5-0.5v-3c0-0.276 0.224-0.5 0.5-0.5h3.5c1.103 0 2 0.897 2 2s-0.897 2-2 2zM8 14h3c0.551 0 1-0.449 1-1s-0.449-1-1-1h-3v2z"></path>
|
||||||
|
<path fill="#000000" d="M11 18h-5.5c-0.827 0-1.5-0.673-1.5-1.5v-13c0-0.827 0.673-1.5 1.5-1.5h4.5c2.757 0 5 2.243 5 5 0 0.824-0.202 1.628-0.587 2.349 1.013 0.945 1.587 2.253 1.587 3.651 0 2.757-2.243 5-5 5zM5.5 3c-0.276 0-0.5 0.224-0.5 0.5v13c0 0.276 0.224 0.5 0.5 0.5h5.5c2.206 0 4-1.794 4-4 0-1.237-0.561-2.385-1.539-3.151-0.211-0.165-0.253-0.466-0.1-0.682 0.418-0.646 0.639-1.395 0.639-2.167 0-2.206-1.794-4-4-4h-4.5z"></path>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 1.1 KiB |
7
src/newsreader/static/icons/book.svg
Executable file
|
|
@ -0,0 +1,7 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<!-- Generated by IcoMoon.io -->
|
||||||
|
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||||
|
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="20" height="20" viewBox="0 0 20 20">
|
||||||
|
<path fill="#000000" d="M14.5 18h-10c-0.276 0-0.5-0.224-0.5-0.5s0.224-0.5 0.5-0.5h10c0.276 0 0.5 0.224 0.5 0.5s-0.224 0.5-0.5 0.5z"></path>
|
||||||
|
<path fill="#000000" d="M16.5 3c-0.276 0-0.5 0.224-0.5 0.5v15c0 0.276-0.224 0.5-0.5 0.5h-11c-0.827 0-1.5-0.673-1.5-1.5s0.673-1.5 1.5-1.5h9c0.827 0 1.5-0.673 1.5-1.5v-12c0-0.827-0.673-1.5-1.5-1.5h-10c-0.827 0-1.5 0.673-1.5 1.5v15c0 1.378 1.122 2.5 2.5 2.5h11c0.827 0 1.5-0.673 1.5-1.5v-15c0-0.276-0.224-0.5-0.5-0.5zM3.5 2h10c0.276 0 0.5 0.224 0.5 0.5v12c0 0.276-0.224 0.5-0.5 0.5h-9c-0.562 0-1.082 0.187-1.5 0.501v-13.001c0-0.276 0.224-0.5 0.5-0.5z"></path>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 916 B |
6
src/newsreader/static/icons/bookmark.svg
Executable file
|
|
@ -0,0 +1,6 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<!-- Generated by IcoMoon.io -->
|
||||||
|
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||||
|
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="20" height="20" viewBox="0 0 20 20">
|
||||||
|
<path fill="#000000" d="M15.5 20c-0.143 0-0.283-0.062-0.38-0.175l-5.62-6.557-5.62 6.557c-0.136 0.159-0.357 0.216-0.553 0.144s-0.327-0.26-0.327-0.469v-18c0-0.276 0.224-0.5 0.5-0.5h12c0.276 0 0.5 0.224 0.5 0.5v18c0 0.209-0.13 0.396-0.327 0.469-0.057 0.021-0.115 0.031-0.173 0.031zM9.5 12c0.146 0 0.285 0.064 0.38 0.175l5.12 5.974v-16.148h-11v16.148l5.12-5.974c0.095-0.111 0.234-0.175 0.38-0.175z"></path>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 722 B |
6
src/newsreader/static/icons/briefcase.svg
Executable file
|
|
@ -0,0 +1,6 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<!-- Generated by IcoMoon.io -->
|
||||||
|
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||||
|
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="20" height="20" viewBox="0 0 20 20">
|
||||||
|
<path fill="#000000" d="M18.5 5h-4.5v-1.5c0-0.827-0.673-1.5-1.5-1.5h-5c-0.827 0-1.5 0.673-1.5 1.5v1.5h-4.5c-0.827 0-1.5 0.673-1.5 1.5v11c0 0.827 0.673 1.5 1.5 1.5h17c0.827 0 1.5-0.673 1.5-1.5v-11c0-0.827-0.673-1.5-1.5-1.5zM7 3.5c0-0.276 0.224-0.5 0.5-0.5h5c0.276 0 0.5 0.224 0.5 0.5v1.5h-6v-1.5zM1.5 6h17c0.276 0 0.5 0.224 0.5 0.5v7.5h-2v-0.5c0-0.276-0.224-0.5-0.5-0.5h-2c-0.276 0-0.5 0.224-0.5 0.5v0.5h-8v-0.5c0-0.276-0.224-0.5-0.5-0.5h-2c-0.276 0-0.5 0.224-0.5 0.5v0.5h-2v-7.5c0-0.276 0.224-0.5 0.5-0.5zM16 14v1h-1v-1h1zM5 14v1h-1v-1h1zM18.5 18h-17c-0.276 0-0.5-0.224-0.5-0.5v-2.5h2v0.5c0 0.276 0.224 0.5 0.5 0.5h2c0.276 0 0.5-0.224 0.5-0.5v-0.5h8v0.5c0 0.276 0.224 0.5 0.5 0.5h2c0.276 0 0.5-0.224 0.5-0.5v-0.5h2v2.5c0 0.276-0.224 0.5-0.5 0.5z"></path>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 1 KiB |
6
src/newsreader/static/icons/bubble.svg
Executable file
|
|
@ -0,0 +1,6 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<!-- Generated by IcoMoon.io -->
|
||||||
|
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||||
|
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="20" height="20" viewBox="0 0 20 20">
|
||||||
|
<path fill="#000000" d="M0.5 19c-0.225 0-0.422-0.15-0.482-0.367s0.032-0.447 0.225-0.562c1.691-1.014 2.392-2.489 2.641-3.179-1.838-1.407-2.884-3.354-2.884-5.392 0-1.029 0.258-2.026 0.768-2.964 0.486-0.894 1.18-1.695 2.061-2.381 1.787-1.39 4.156-2.156 6.671-2.156s4.884 0.766 6.671 2.156c0.881 0.685 1.575 1.486 2.061 2.381 0.51 0.937 0.768 1.934 0.768 2.964s-0.258 2.026-0.768 2.964c-0.486 0.894-1.18 1.695-2.061 2.381-1.787 1.39-4.156 2.156-6.671 2.156-1.033 0-2.047-0.129-3.016-0.385-0.429 0.286-1.231 0.793-2.189 1.27-1.488 0.74-2.764 1.115-3.794 1.115zM9.5 3c-4.687 0-8.5 2.916-8.5 6.5 0 1.815 1.005 3.562 2.756 4.792 0.172 0.121 0.25 0.336 0.196 0.539-0.117 0.436-0.515 1.633-1.58 2.788 1.302-0.456 2.704-1.247 3.739-1.959 0.123-0.085 0.277-0.11 0.421-0.069 0.948 0.271 1.947 0.409 2.968 0.409 4.687 0 8.5-2.916 8.5-6.5s-3.813-6.5-8.5-6.5z"></path>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 1.1 KiB |
6
src/newsreader/static/icons/bug.svg
Executable file
|
|
@ -0,0 +1,6 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<!-- Generated by IcoMoon.io -->
|
||||||
|
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||||
|
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="20" height="20" viewBox="0 0 20 20">
|
||||||
|
<path fill="#000000" d="M17.5 12h-1.515c-0.062-1.099-0.33-2.153-0.781-3.102 1.036-0.305 1.795-1.264 1.795-2.398 0-0.276-0.224-0.5-0.5-0.5s-0.5 0.224-0.5 0.5c0 0.761-0.57 1.392-1.306 1.487-0.174-0.266-0.365-0.521-0.571-0.762-0.108-0.126-0.219-0.246-0.333-0.362 0.14-0.439 0.21-0.896 0.21-1.363 0-2.481-2.019-4.5-4.5-4.5s-4.5 2.019-4.5 4.5c0 0.467 0.071 0.924 0.21 1.363-0.114 0.116-0.225 0.236-0.333 0.362-0.207 0.241-0.397 0.496-0.571 0.762-0.736-0.095-1.306-0.726-1.306-1.487 0-0.276-0.224-0.5-0.5-0.5s-0.5 0.224-0.5 0.5c0 1.134 0.759 2.093 1.795 2.398-0.451 0.949-0.718 2.003-0.781 3.102h-1.514c-0.276 0-0.5 0.224-0.5 0.5s0.224 0.5 0.5 0.5h1.515c0.062 1.099 0.33 2.153 0.781 3.102-1.036 0.305-1.795 1.264-1.795 2.398 0 0.276 0.224 0.5 0.5 0.5s0.5-0.224 0.5-0.5c0-0.761 0.57-1.392 1.306-1.487 0.174 0.266 0.365 0.521 0.571 0.762 1.23 1.435 2.871 2.225 4.622 2.225s3.393-0.79 4.622-2.225c0.207-0.241 0.397-0.496 0.571-0.762 0.736 0.095 1.306 0.726 1.306 1.487 0 0.276 0.224 0.5 0.5 0.5s0.5-0.224 0.5-0.5c0-1.134-0.759-2.093-1.795-2.398 0.451-0.949 0.718-2.003 0.781-3.102h1.514c0.276 0 0.5-0.224 0.5-0.5s-0.224-0.5-0.5-0.5zM9.5 2c1.93 0 3.5 1.57 3.5 3.5 0 0.215-0.019 0.426-0.057 0.634-1.022-0.738-2.205-1.134-3.443-1.134s-2.421 0.395-3.443 1.134c-0.038-0.208-0.057-0.419-0.057-0.634 0-1.93 1.57-3.5 3.5-3.5zM4 12.5c0-3.385 2.201-6.173 5-6.473v12.946c-2.799-0.3-5-3.088-5-6.473zM10 18.973v-12.946c2.799 0.3 5 3.088 5 6.473s-2.201 6.173-5 6.473z"></path>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 1.7 KiB |
6
src/newsreader/static/icons/bullhorn.svg
Executable file
|
|
@ -0,0 +1,6 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<!-- Generated by IcoMoon.io -->
|
||||||
|
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||||
|
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="20" height="20" viewBox="0 0 20 20">
|
||||||
|
<path fill="#000000" d="M19.389 3.099c-0.578-1.735-1.346-2.099-1.889-2.099-0.011 0-0.023 0-0.035 0.001-0.553 0.012-1.536 0.299-3.008 0.731-3.084 0.903-7.744 2.269-12.458 2.269-1.14 0-2 1.505-2 3.5s0.86 3.5 2 3.5c0.369 0 0.738 0.008 1.105 0.024l1.666 6.628c0.19 0.756 0.949 1.348 1.729 1.348h1.313c0.433 0 0.801-0.18 1.008-0.495s0.229-0.723 0.060-1.121l-2.577-6.048c3.136 0.462 6.022 1.308 8.154 1.932 1.472 0.431 2.455 0.719 3.008 0.731 0.012 0 0.023 0.001 0.035 0.001 0.542 0 1.31-0.364 1.889-2.099 0.394-1.183 0.611-2.746 0.611-4.401s-0.217-3.218-0.611-4.401zM16 7.5c0-0.513 0.022-1.015 0.064-1.496 0.513 0.052 0.936 0.716 0.936 1.496s-0.422 1.445-0.936 1.496c-0.042-0.481-0.064-0.983-0.064-1.496zM1 7.5c0-1.526 0.592-2.5 1-2.5 1.135 0 2.264-0.076 3.368-0.204-0.237 0.758-0.368 1.697-0.368 2.704s0.13 1.946 0.368 2.704c-1.104-0.128-2.233-0.204-3.368-0.204-0.408 0-1-0.974-1-2.5zM7.961 17.776c0.041 0.096 0.038 0.16 0.026 0.178s-0.069 0.046-0.174 0.046h-1.313c-0.319 0-0.681-0.282-0.759-0.592l-1.588-6.319c0.335 0.027 0.669 0.059 1 0.097l2.808 6.59zM6.489 10.353c-0.304-0.687-0.489-1.748-0.489-2.853 0-1.122 0.18-2.163 0.488-2.852 3.185-0.473 6.096-1.325 8.25-1.957 0.415-0.122 0.811-0.238 1.171-0.339-0.103 0.215-0.203 0.463-0.298 0.747-0.394 1.183-0.611 2.746-0.611 4.401s0.217 3.218 0.611 4.401c0.095 0.284 0.195 0.532 0.298 0.747-0.36-0.101-0.756-0.217-1.171-0.339-2.155-0.631-5.065-1.484-8.25-1.957zM18.44 11.585c-0.373 1.12-0.778 1.415-0.94 1.415s-0.567-0.296-0.94-1.415c-0.157-0.47-0.283-1.009-0.375-1.596 0.486-0.056 0.943-0.331 1.276-0.775 0.348-0.464 0.539-1.073 0.539-1.714s-0.192-1.251-0.539-1.714c-0.333-0.444-0.79-0.719-1.276-0.775 0.093-0.586 0.219-1.126 0.375-1.596 0.373-1.12 0.778-1.416 0.94-1.416s0.567 0.296 0.94 1.415c0.361 1.084 0.56 2.534 0.56 4.085s-0.199 3.001-0.56 4.085z"></path>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 2.1 KiB |
10
src/newsreader/static/icons/bus.svg
Executable file
|
|
@ -0,0 +1,10 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<!-- Generated by IcoMoon.io -->
|
||||||
|
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||||
|
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="20" height="20" viewBox="0 0 20 20">
|
||||||
|
<path fill="#000000" d="M5.5 16c-0.827 0-1.5-0.673-1.5-1.5s0.673-1.5 1.5-1.5 1.5 0.673 1.5 1.5-0.673 1.5-1.5 1.5zM5.5 14c-0.276 0-0.5 0.224-0.5 0.5s0.224 0.5 0.5 0.5 0.5-0.224 0.5-0.5-0.224-0.5-0.5-0.5z"></path>
|
||||||
|
<path fill="#000000" d="M14.5 16c-0.827 0-1.5-0.673-1.5-1.5s0.673-1.5 1.5-1.5 1.5 0.673 1.5 1.5-0.673 1.5-1.5 1.5zM14.5 14c-0.276 0-0.5 0.224-0.5 0.5s0.224 0.5 0.5 0.5 0.5-0.224 0.5-0.5-0.224-0.5-0.5-0.5z"></path>
|
||||||
|
<path fill="#000000" d="M13.5 5h-7c-0.276 0-0.5-0.224-0.5-0.5s0.224-0.5 0.5-0.5h7c0.276 0 0.5 0.224 0.5 0.5s-0.224 0.5-0.5 0.5z"></path>
|
||||||
|
<path fill="#000000" d="M15.5 6h-11c-0.276 0-0.5 0.224-0.5 0.5v5c0 0.276 0.224 0.5 0.5 0.5h4.998c0.001 0 0.001 0 0.002 0s0.001-0 0.002-0h4.996c0.001 0 0.001 0 0.002 0s0.001-0 0.002-0h0.998c0.276 0 0.5-0.224 0.5-0.5v-5c0-0.276-0.224-0.5-0.5-0.5zM5 7h10v4h-0.349l-2.874-1.916c-0.23-0.153-0.54-0.091-0.693 0.139s-0.091 0.54 0.139 0.693l1.626 1.084h-3.197l-2.874-1.916c-0.23-0.153-0.54-0.091-0.693 0.139s-0.091 0.54 0.139 0.693l1.626 1.084h-2.849v-4z"></path>
|
||||||
|
<path fill="#000000" d="M15.616 1.783c-1.363-0.519-3.253-0.783-5.616-0.783s-4.252 0.263-5.616 0.783c-1.971 0.751-2.384 1.892-2.384 2.717v11c0 1.207 0.86 2.217 2 2.45v1.050c0 0.551 0.449 1 1 1h1c0.551 0 1-0.449 1-1v-1h6v1c0 0.551 0.449 1 1 1h1c0.551 0 1-0.449 1-1v-1.050c1.14-0.232 2-1.242 2-2.45v-11c0-0.825-0.414-1.966-2.384-2.717zM6 19h-1v-1h1v1zM14 19v-1h1v1h-1zM17 15.5c0 0.827-0.673 1.5-1.5 1.5h-11c-0.827 0-1.5-0.673-1.5-1.5v-11c0-0.743 0.586-1.343 1.741-1.783 1.232-0.469 3.050-0.717 5.259-0.717s4.028 0.248 5.259 0.717c1.155 0.44 1.741 1.040 1.741 1.783v11z"></path>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 1.9 KiB |
25
src/newsreader/static/icons/calendar-full.svg
Executable file
|
|
@ -0,0 +1,25 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<!-- Generated by IcoMoon.io -->
|
||||||
|
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||||
|
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="20" height="20" viewBox="0 0 20 20">
|
||||||
|
<path fill="#000000" d="M18.5 2h-2.5v-0.5c0-0.276-0.224-0.5-0.5-0.5s-0.5 0.224-0.5 0.5v0.5h-10v-0.5c0-0.276-0.224-0.5-0.5-0.5s-0.5 0.224-0.5 0.5v0.5h-2.5c-0.827 0-1.5 0.673-1.5 1.5v14c0 0.827 0.673 1.5 1.5 1.5h17c0.827 0 1.5-0.673 1.5-1.5v-14c0-0.827-0.673-1.5-1.5-1.5zM1.5 3h2.5v1.5c0 0.276 0.224 0.5 0.5 0.5s0.5-0.224 0.5-0.5v-1.5h10v1.5c0 0.276 0.224 0.5 0.5 0.5s0.5-0.224 0.5-0.5v-1.5h2.5c0.276 0 0.5 0.224 0.5 0.5v2.5h-18v-2.5c0-0.276 0.224-0.5 0.5-0.5zM18.5 18h-17c-0.276 0-0.5-0.224-0.5-0.5v-10.5h18v10.5c0 0.276-0.224 0.5-0.5 0.5z"></path>
|
||||||
|
<path fill="#000000" d="M7.5 10h-1c-0.276 0-0.5-0.224-0.5-0.5s0.224-0.5 0.5-0.5h1c0.276 0 0.5 0.224 0.5 0.5s-0.224 0.5-0.5 0.5z"></path>
|
||||||
|
<path fill="#000000" d="M10.5 10h-1c-0.276 0-0.5-0.224-0.5-0.5s0.224-0.5 0.5-0.5h1c0.276 0 0.5 0.224 0.5 0.5s-0.224 0.5-0.5 0.5z"></path>
|
||||||
|
<path fill="#000000" d="M13.5 10h-1c-0.276 0-0.5-0.224-0.5-0.5s0.224-0.5 0.5-0.5h1c0.276 0 0.5 0.224 0.5 0.5s-0.224 0.5-0.5 0.5z"></path>
|
||||||
|
<path fill="#000000" d="M16.5 10h-1c-0.276 0-0.5-0.224-0.5-0.5s0.224-0.5 0.5-0.5h1c0.276 0 0.5 0.224 0.5 0.5s-0.224 0.5-0.5 0.5z"></path>
|
||||||
|
<path fill="#000000" d="M4.5 12h-1c-0.276 0-0.5-0.224-0.5-0.5s0.224-0.5 0.5-0.5h1c0.276 0 0.5 0.224 0.5 0.5s-0.224 0.5-0.5 0.5z"></path>
|
||||||
|
<path fill="#000000" d="M7.5 12h-1c-0.276 0-0.5-0.224-0.5-0.5s0.224-0.5 0.5-0.5h1c0.276 0 0.5 0.224 0.5 0.5s-0.224 0.5-0.5 0.5z"></path>
|
||||||
|
<path fill="#000000" d="M10.5 12h-1c-0.276 0-0.5-0.224-0.5-0.5s0.224-0.5 0.5-0.5h1c0.276 0 0.5 0.224 0.5 0.5s-0.224 0.5-0.5 0.5z"></path>
|
||||||
|
<path fill="#000000" d="M13.5 12h-1c-0.276 0-0.5-0.224-0.5-0.5s0.224-0.5 0.5-0.5h1c0.276 0 0.5 0.224 0.5 0.5s-0.224 0.5-0.5 0.5z"></path>
|
||||||
|
<path fill="#000000" d="M16.5 12h-1c-0.276 0-0.5-0.224-0.5-0.5s0.224-0.5 0.5-0.5h1c0.276 0 0.5 0.224 0.5 0.5s-0.224 0.5-0.5 0.5z"></path>
|
||||||
|
<path fill="#000000" d="M4.5 14h-1c-0.276 0-0.5-0.224-0.5-0.5s0.224-0.5 0.5-0.5h1c0.276 0 0.5 0.224 0.5 0.5s-0.224 0.5-0.5 0.5z"></path>
|
||||||
|
<path fill="#000000" d="M7.5 14h-1c-0.276 0-0.5-0.224-0.5-0.5s0.224-0.5 0.5-0.5h1c0.276 0 0.5 0.224 0.5 0.5s-0.224 0.5-0.5 0.5z"></path>
|
||||||
|
<path fill="#000000" d="M10.5 14h-1c-0.276 0-0.5-0.224-0.5-0.5s0.224-0.5 0.5-0.5h1c0.276 0 0.5 0.224 0.5 0.5s-0.224 0.5-0.5 0.5z"></path>
|
||||||
|
<path fill="#000000" d="M13.5 14h-1c-0.276 0-0.5-0.224-0.5-0.5s0.224-0.5 0.5-0.5h1c0.276 0 0.5 0.224 0.5 0.5s-0.224 0.5-0.5 0.5z"></path>
|
||||||
|
<path fill="#000000" d="M16.5 14h-1c-0.276 0-0.5-0.224-0.5-0.5s0.224-0.5 0.5-0.5h1c0.276 0 0.5 0.224 0.5 0.5s-0.224 0.5-0.5 0.5z"></path>
|
||||||
|
<path fill="#000000" d="M4.5 16h-1c-0.276 0-0.5-0.224-0.5-0.5s0.224-0.5 0.5-0.5h1c0.276 0 0.5 0.224 0.5 0.5s-0.224 0.5-0.5 0.5z"></path>
|
||||||
|
<path fill="#000000" d="M7.5 16h-1c-0.276 0-0.5-0.224-0.5-0.5s0.224-0.5 0.5-0.5h1c0.276 0 0.5 0.224 0.5 0.5s-0.224 0.5-0.5 0.5z"></path>
|
||||||
|
<path fill="#000000" d="M10.5 16h-1c-0.276 0-0.5-0.224-0.5-0.5s0.224-0.5 0.5-0.5h1c0.276 0 0.5 0.224 0.5 0.5s-0.224 0.5-0.5 0.5z"></path>
|
||||||
|
<path fill="#000000" d="M13.5 16h-1c-0.276 0-0.5-0.224-0.5-0.5s0.224-0.5 0.5-0.5h1c0.276 0 0.5 0.224 0.5 0.5s-0.224 0.5-0.5 0.5z"></path>
|
||||||
|
<path fill="#000000" d="M16.5 16h-1c-0.276 0-0.5-0.224-0.5-0.5s0.224-0.5 0.5-0.5h1c0.276 0 0.5 0.224 0.5 0.5s-0.224 0.5-0.5 0.5z"></path>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 3.4 KiB |
7
src/newsreader/static/icons/camera-video.svg
Executable file
|
|
@ -0,0 +1,7 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<!-- Generated by IcoMoon.io -->
|
||||||
|
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||||
|
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="20" height="20" viewBox="0 0 20 20">
|
||||||
|
<path fill="#000000" d="M19.131 17.053c-0 0-0 0-0 0-0.242-0-0.485-0.097-0.724-0.288l-3.438-2.751c-0.552-0.442-0.969-1.308-0.969-2.015v-3c0-0.707 0.416-1.573 0.969-2.015l3.438-2.751c0.239-0.191 0.482-0.288 0.724-0.288 0.433-0 0.869 0.326 0.869 1.053v11c0 0.278-0.064 0.512-0.19 0.694-0.157 0.228-0.405 0.359-0.679 0.359zM19 5.040l-3.407 2.725c-0.31 0.248-0.593 0.837-0.593 1.234v3c0 0.398 0.283 0.986 0.593 1.234l3.407 2.725v-10.919z"></path>
|
||||||
|
<path fill="#000000" d="M11.5 17h-10c-0.827 0-1.5-0.673-1.5-1.5v-10c0-0.827 0.673-1.5 1.5-1.5h10c0.827 0 1.5 0.673 1.5 1.5v10c0 0.827-0.673 1.5-1.5 1.5zM1.5 5c-0.276 0-0.5 0.224-0.5 0.5v10c0 0.276 0.224 0.5 0.5 0.5h10c0.276 0 0.5-0.224 0.5-0.5v-10c0-0.276-0.224-0.5-0.5-0.5h-10z"></path>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 1 KiB |
7
src/newsreader/static/icons/camera.svg
Executable file
|
|
@ -0,0 +1,7 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<!-- Generated by IcoMoon.io -->
|
||||||
|
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||||
|
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="20" height="20" viewBox="0 0 20 20">
|
||||||
|
<path fill="#000000" d="M9.5 15c-2.481 0-4.5-2.019-4.5-4.5s2.019-4.5 4.5-4.5c2.481 0 4.5 2.019 4.5 4.5s-2.019 4.5-4.5 4.5zM9.5 7c-1.93 0-3.5 1.57-3.5 3.5s1.57 3.5 3.5 3.5 3.5-1.57 3.5-3.5-1.57-3.5-3.5-3.5z"></path>
|
||||||
|
<path fill="#000000" d="M17.5 18h-16c-0.827 0-1.5-0.673-1.5-1.5v-10c0-0.827 0.673-1.5 1.5-1.5h1.5c0.415 0 1.060-0.267 1.354-0.561l0.586-0.586c0.487-0.487 1.373-0.854 2.061-0.854h5c0.688 0 1.574 0.367 2.061 0.854l0.586 0.586c0.293 0.293 0.939 0.561 1.354 0.561h1.5c0.827 0 1.5 0.673 1.5 1.5v10c0 0.827-0.673 1.5-1.5 1.5zM1.5 6c-0.276 0-0.5 0.224-0.5 0.5v10c0 0.276 0.224 0.5 0.5 0.5h16c0.276 0 0.5-0.224 0.5-0.5v-10c0-0.276-0.224-0.5-0.5-0.5h-1.5c-0.688 0-1.574-0.367-2.061-0.854l-0.586-0.586c-0.293-0.293-0.939-0.561-1.354-0.561h-5c-0.415 0-1.060 0.267-1.354 0.561l-0.586 0.586c-0.487 0.487-1.372 0.854-2.061 0.854h-1.5z"></path>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 1.1 KiB |
8
src/newsreader/static/icons/car.svg
Executable file
|
|
@ -0,0 +1,8 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<!-- Generated by IcoMoon.io -->
|
||||||
|
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||||
|
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="20" height="20" viewBox="0 0 20 20">
|
||||||
|
<path fill="#000000" d="M5.5 16c-0.827 0-1.5-0.673-1.5-1.5s0.673-1.5 1.5-1.5 1.5 0.673 1.5 1.5-0.673 1.5-1.5 1.5zM5.5 14c-0.276 0-0.5 0.224-0.5 0.5s0.224 0.5 0.5 0.5 0.5-0.224 0.5-0.5-0.224-0.5-0.5-0.5z"></path>
|
||||||
|
<path fill="#000000" d="M14.5 16c-0.827 0-1.5-0.673-1.5-1.5s0.673-1.5 1.5-1.5 1.5 0.673 1.5 1.5-0.673 1.5-1.5 1.5zM14.5 14c-0.276 0-0.5 0.224-0.5 0.5s0.224 0.5 0.5 0.5 0.5-0.224 0.5-0.5-0.224-0.5-0.5-0.5z"></path>
|
||||||
|
<path fill="#000000" d="M16.958 11.907c-0.13-0.792-0.553-3.214-1.011-4.131-0.305-0.61-1.088-1.077-2.326-1.386-1.006-0.251-2.292-0.39-3.621-0.39s-2.615 0.138-3.621 0.39c-1.238 0.31-2.021 0.776-2.326 1.386-0.458 0.916-0.881 3.339-1.011 4.131-0.699 0.479-1.042 1.172-1.042 2.093v2.5c0 0.652 0.418 1.208 1 1.414v1.086c0 0.551 0.449 1 1 1h1c0.551 0 1-0.449 1-1v-1h8v1c0 0.551 0.449 1 1 1h1c0.551 0 1-0.449 1-1v-1.086c0.582-0.206 1-0.762 1-1.414v-2.5c0-0.921-0.343-1.614-1.042-2.093zM4.947 8.224c0.297-0.593 2.168-1.224 5.053-1.224s4.756 0.63 5.053 1.224c0.287 0.575 0.606 2.096 0.803 3.183-0.098-0.029-0.199-0.056-0.303-0.080-0.267-0.063-0.555-0.114-0.863-0.156l-2.899-2.077c-0.224-0.161-0.537-0.109-0.698 0.115s-0.109 0.537 0.115 0.698l1.566 1.122c-0.85-0.028-1.782-0.028-2.775-0.028-0.117 0-0.233 0-0.349 0l-2.874-1.916c-0.23-0.153-0.54-0.091-0.693 0.139s-0.091 0.54 0.139 0.693l1.644 1.096c-1.341 0.024-2.507 0.097-3.42 0.314-0.104 0.025-0.205 0.052-0.303 0.080 0.198-1.087 0.516-2.608 0.804-3.183zM5 19h-1v-1h1v1zM15 19v-1h1v1h-1zM17 16.5c0 0.276-0.224 0.5-0.5 0.5h-13c-0.276 0-0.5-0.224-0.5-0.5v-2.5c0-0.924 0.486-1.417 1.678-1.701 1.255-0.299 3.14-0.299 5.322-0.299s4.066 0 5.322 0.299c1.192 0.284 1.678 0.777 1.678 1.701v2.5z"></path>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 1.9 KiB |
8
src/newsreader/static/icons/cart.svg
Executable file
|
|
@ -0,0 +1,8 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<!-- Generated by IcoMoon.io -->
|
||||||
|
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||||
|
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="20" height="20" viewBox="0 0 20 20">
|
||||||
|
<path fill="#000000" d="M8 20c-1.103 0-2-0.897-2-2s0.897-2 2-2 2 0.897 2 2-0.897 2-2 2zM8 17c-0.551 0-1 0.449-1 1s0.449 1 1 1 1-0.449 1-1-0.449-1-1-1z"></path>
|
||||||
|
<path fill="#000000" d="M15 20c-1.103 0-2-0.897-2-2s0.897-2 2-2 2 0.897 2 2-0.897 2-2 2zM15 17c-0.551 0-1 0.449-1 1s0.449 1 1 1 1-0.449 1-1-0.449-1-1-1z"></path>
|
||||||
|
<path fill="#000000" d="M17.539 4.467c-0.251-0.297-0.63-0.467-1.039-0.467h-12.243l-0.099-0.596c-0.131-0.787-0.859-1.404-1.658-1.404h-1c-0.276 0-0.5 0.224-0.5 0.5s0.224 0.5 0.5 0.5h1c0.307 0 0.621 0.266 0.671 0.569l1.671 10.027c0.131 0.787 0.859 1.404 1.658 1.404h10c0.276 0 0.5-0.224 0.5-0.5s-0.224-0.5-0.5-0.5h-10c-0.307 0-0.621-0.266-0.671-0.569l-0.247-1.48 9.965-0.867c0.775-0.067 1.483-0.721 1.611-1.489l0.671-4.027c0.067-0.404-0.038-0.806-0.289-1.102zM16.842 5.404l-0.671 4.027c-0.053 0.316-0.391 0.629-0.711 0.657l-10.043 0.873-0.994-5.962h12.076c0.117 0 0.215 0.040 0.276 0.113s0.085 0.176 0.066 0.291z"></path>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 1.2 KiB |
9
src/newsreader/static/icons/chart-bars.svg
Executable file
|
|
@ -0,0 +1,9 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<!-- Generated by IcoMoon.io -->
|
||||||
|
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||||
|
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="20" height="20" viewBox="0 0 20 20">
|
||||||
|
<path fill="#000000" d="M17.5 20h-16c-0.827 0-1.5-0.673-1.5-1.5v-16c0-0.827 0.673-1.5 1.5-1.5h16c0.827 0 1.5 0.673 1.5 1.5v16c0 0.827-0.673 1.5-1.5 1.5zM1.5 2c-0.276 0-0.5 0.224-0.5 0.5v16c0 0.276 0.224 0.5 0.5 0.5h16c0.276 0 0.5-0.224 0.5-0.5v-16c0-0.276-0.224-0.5-0.5-0.5h-16z"></path>
|
||||||
|
<path fill="#000000" d="M6.5 17h-2c-0.276 0-0.5-0.224-0.5-0.5v-9c0-0.276 0.224-0.5 0.5-0.5h2c0.276 0 0.5 0.224 0.5 0.5v9c0 0.276-0.224 0.5-0.5 0.5zM5 16h1v-8h-1v8z"></path>
|
||||||
|
<path fill="#000000" d="M10.5 17h-2c-0.276 0-0.5-0.224-0.5-0.5v-12c0-0.276 0.224-0.5 0.5-0.5h2c0.276 0 0.5 0.224 0.5 0.5v12c0 0.276-0.224 0.5-0.5 0.5zM9 16h1v-11h-1v11z"></path>
|
||||||
|
<path fill="#000000" d="M14.5 17h-2c-0.276 0-0.5-0.224-0.5-0.5v-5c0-0.276 0.224-0.5 0.5-0.5h2c0.276 0 0.5 0.224 0.5 0.5v5c0 0.276-0.224 0.5-0.5 0.5zM13 16h1v-4h-1v4z"></path>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 1.1 KiB |
7
src/newsreader/static/icons/checkmark-circle.svg
Executable file
|
|
@ -0,0 +1,7 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<!-- Generated by IcoMoon.io -->
|
||||||
|
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||||
|
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="20" height="20" viewBox="0 0 20 20">
|
||||||
|
<path fill="#000000" d="M9.5 20c-2.538 0-4.923-0.988-6.718-2.782s-2.782-4.18-2.782-6.717c0-2.538 0.988-4.923 2.782-6.718s4.18-2.783 6.718-2.783c2.538 0 4.923 0.988 6.718 2.783s2.782 4.18 2.782 6.718-0.988 4.923-2.782 6.717c-1.794 1.794-4.18 2.782-6.718 2.782zM9.5 2c-4.687 0-8.5 3.813-8.5 8.5s3.813 8.5 8.5 8.5 8.5-3.813 8.5-8.5-3.813-8.5-8.5-8.5z"></path>
|
||||||
|
<path fill="#000000" d="M7.5 14.5c-0.128 0-0.256-0.049-0.354-0.146l-3-3c-0.195-0.195-0.195-0.512 0-0.707s0.512-0.195 0.707 0l2.646 2.646 6.646-6.646c0.195-0.195 0.512-0.195 0.707 0s0.195 0.512 0 0.707l-7 7c-0.098 0.098-0.226 0.146-0.354 0.146z"></path>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 929 B |
7
src/newsreader/static/icons/chevron-down-circle.svg
Executable file
|
|
@ -0,0 +1,7 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<!-- Generated by IcoMoon.io -->
|
||||||
|
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||||
|
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="20" height="20" viewBox="0 0 20 20">
|
||||||
|
<path fill="#000000" d="M16.218 17.218c1.794-1.794 2.782-4.18 2.782-6.718s-0.988-4.923-2.782-6.717-4.18-2.782-6.718-2.782-4.923 0.988-6.718 2.782-2.782 4.18-2.782 6.717 0.988 4.923 2.782 6.718 4.18 2.782 6.718 2.782 4.923-0.988 6.718-2.782zM1 10.5c0-4.687 3.813-8.5 8.5-8.5s8.5 3.813 8.5 8.5c0 4.687-3.813 8.5-8.5 8.5s-8.5-3.813-8.5-8.5z"></path>
|
||||||
|
<path fill="#000000" d="M4 9c0-0.128 0.049-0.256 0.146-0.354 0.195-0.195 0.512-0.195 0.707 0l4.646 4.646 4.646-4.646c0.195-0.195 0.512-0.195 0.707 0s0.195 0.512 0 0.707l-5 5c-0.195 0.195-0.512 0.195-0.707 0l-5-5c-0.098-0.098-0.146-0.226-0.146-0.354z"></path>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 925 B |
|
|
@ -1,6 +1,6 @@
|
||||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<svg role="img" xmlns="http://www.w3.org/2000/svg" width="1000mm" height="1000mm" viewBox="0 0 1000 1000" style="max-width:1.6em; height: auto;">
|
<!-- Generated by IcoMoon.io -->
|
||||||
|
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||||
<path id="path" style="opacity:1;vector-effect:none;fill:#000000;fill-opacity:1;" d=" M 500 275C 507 275 513 278 518 282C 518 282 818 582 818 582C 824 589 827 598 825 607C 822 615 815 622 807 625C 798 627 789 624 782 618C 782 618 500 336 500 336C 500 336 218 618 218 618C 212 624 202 627 194 625C 185 622 178 615 176 607C 173 598 176 589 182 582C 182 582 482 282 482 282C 487 278 493 275 500 275C 500 275 500 275 500 275" transform="rotate(180, 500, 500) ">
|
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="20" height="20" viewBox="0 0 20 20">
|
||||||
</path>
|
<path fill="#000000" d="M0 6c0-0.128 0.049-0.256 0.146-0.354 0.195-0.195 0.512-0.195 0.707 0l8.646 8.646 8.646-8.646c0.195-0.195 0.512-0.195 0.707 0s0.195 0.512 0 0.707l-9 9c-0.195 0.195-0.512 0.195-0.707 0l-9-9c-0.098-0.098-0.146-0.226-0.146-0.354z"></path>
|
||||||
</svg>
|
</svg>
|
||||||
|
After Width: | Height: | Size: 578 B |
7
src/newsreader/static/icons/chevron-left-circle.svg
Executable file
|
|
@ -0,0 +1,7 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<!-- Generated by IcoMoon.io -->
|
||||||
|
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||||
|
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="20" height="20" viewBox="0 0 20 20">
|
||||||
|
<path fill="#000000" d="M2.782 3.782c1.794-1.794 4.18-2.782 6.718-2.782s4.923 0.988 6.718 2.782 2.782 4.18 2.782 6.717-0.988 4.923-2.782 6.718-4.18 2.782-6.718 2.782-4.923-0.988-6.718-2.782-2.782-4.18-2.782-6.718 0.988-4.923 2.782-6.717zM9.5 19c4.687 0 8.5-3.813 8.5-8.5s-3.813-8.5-8.5-8.5c-4.687 0-8.5 3.813-8.5 8.5s3.813 8.5 8.5 8.5z"></path>
|
||||||
|
<path fill="#000000" d="M11 16c0.128 0 0.256-0.049 0.354-0.146 0.195-0.195 0.195-0.512 0-0.707l-4.646-4.646 4.646-4.646c0.195-0.195 0.195-0.512 0-0.707s-0.512-0.195-0.707 0l-5 5c-0.195 0.195-0.195 0.512 0 0.707l5 5c0.098 0.098 0.226 0.146 0.354 0.146z"></path>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 925 B |
6
src/newsreader/static/icons/chevron-left.svg
Executable file
|
|
@ -0,0 +1,6 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<!-- Generated by IcoMoon.io -->
|
||||||
|
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||||
|
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="20" height="20" viewBox="0 0 20 20">
|
||||||
|
<path fill="#000000" d="M14 20c0.128 0 0.256-0.049 0.354-0.146 0.195-0.195 0.195-0.512 0-0.707l-8.646-8.646 8.646-8.646c0.195-0.195 0.195-0.512 0-0.707s-0.512-0.195-0.707 0l-9 9c-0.195 0.195-0.195 0.512 0 0.707l9 9c0.098 0.098 0.226 0.146 0.354 0.146z"></path>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 580 B |
7
src/newsreader/static/icons/chevron-right-circle.svg
Executable file
|
|
@ -0,0 +1,7 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<!-- Generated by IcoMoon.io -->
|
||||||
|
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||||
|
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="20" height="20" viewBox="0 0 20 20">
|
||||||
|
<path fill="#000000" d="M16.218 3.782c-1.794-1.794-4.18-2.782-6.718-2.782s-4.923 0.988-6.718 2.782-2.782 4.18-2.782 6.717 0.988 4.923 2.782 6.718 4.18 2.782 6.718 2.782 4.923-0.988 6.718-2.782 2.782-4.18 2.782-6.718-0.988-4.923-2.782-6.717zM9.5 19c-4.687 0-8.5-3.813-8.5-8.5s3.813-8.5 8.5-8.5c4.687 0 8.5 3.813 8.5 8.5s-3.813 8.5-8.5 8.5z"></path>
|
||||||
|
<path fill="#000000" d="M8 16c-0.128 0-0.256-0.049-0.354-0.146-0.195-0.195-0.195-0.512 0-0.707l4.646-4.646-4.646-4.646c-0.195-0.195-0.195-0.512 0-0.707s0.512-0.195 0.707 0l5 5c0.195 0.195 0.195 0.512 0 0.707l-5 5c-0.098 0.098-0.226 0.146-0.354 0.146z"></path>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 927 B |
|
|
@ -1,6 +1,6 @@
|
||||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<svg role="img" xmlns="http://www.w3.org/2000/svg" width="1000mm" height="1000mm" viewBox="0 0 1000 1000" style="max-width:1.6em; height: auto;">
|
<!-- Generated by IcoMoon.io -->
|
||||||
|
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||||
<path id="path" style="opacity:1;vector-effect:none;fill:#000000;fill-opacity:1;" d=" M 500 275C 507 275 513 278 518 282C 518 282 818 582 818 582C 824 589 827 598 825 607C 822 615 815 622 807 625C 798 627 789 624 782 618C 782 618 500 336 500 336C 500 336 218 618 218 618C 212 624 202 627 194 625C 185 622 178 615 176 607C 173 598 176 589 182 582C 182 582 482 282 482 282C 487 278 493 275 500 275C 500 275 500 275 500 275" transform="rotate(90, 500, 500) ">
|
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="20" height="20" viewBox="0 0 20 20">
|
||||||
</path>
|
<path fill="#000000" d="M5 20c-0.128 0-0.256-0.049-0.354-0.146-0.195-0.195-0.195-0.512 0-0.707l8.646-8.646-8.646-8.646c-0.195-0.195-0.195-0.512 0-0.707s0.512-0.195 0.707 0l9 9c0.195 0.195 0.195 0.512 0 0.707l-9 9c-0.098 0.098-0.226 0.146-0.354 0.146z"></path>
|
||||||
</svg>
|
</svg>
|
||||||
|
After Width: | Height: | Size: 579 B |
7
src/newsreader/static/icons/chevron-up-circle.svg
Executable file
|
|
@ -0,0 +1,7 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<!-- Generated by IcoMoon.io -->
|
||||||
|
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||||
|
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="20" height="20" viewBox="0 0 20 20">
|
||||||
|
<path fill="#000000" d="M2.782 3.782c-1.794 1.794-2.782 4.18-2.782 6.718s0.988 4.923 2.782 6.718 4.18 2.782 6.718 2.782 4.923-0.988 6.718-2.782 2.782-4.18 2.782-6.717-0.988-4.923-2.782-6.718-4.18-2.782-6.718-2.782-4.923 0.988-6.718 2.782zM18 10.5c0 4.687-3.813 8.5-8.5 8.5s-8.5-3.813-8.5-8.5c0-4.687 3.813-8.5 8.5-8.5s8.5 3.813 8.5 8.5z"></path>
|
||||||
|
<path fill="#000000" d="M15 12c0 0.128-0.049 0.256-0.146 0.354-0.195 0.195-0.512 0.195-0.707 0l-4.646-4.646-4.646 4.646c-0.195 0.195-0.512 0.195-0.707 0s-0.195-0.512 0-0.707l5-5c0.195-0.195 0.512-0.195 0.707 0l5 5c0.098 0.098 0.146 0.226 0.146 0.354z"></path>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 925 B |
6
src/newsreader/static/icons/chevron-up.svg
Executable file
|
|
@ -0,0 +1,6 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<!-- Generated by IcoMoon.io -->
|
||||||
|
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||||
|
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="20" height="20" viewBox="0 0 20 20">
|
||||||
|
<path fill="#000000" d="M0 15c0 0.128 0.049 0.256 0.146 0.354 0.195 0.195 0.512 0.195 0.707 0l8.646-8.646 8.646 8.646c0.195 0.195 0.512 0.195 0.707 0s0.195-0.512 0-0.707l-9-9c-0.195-0.195-0.512-0.195-0.707 0l-9 9c-0.098 0.098-0.146 0.226-0.146 0.354z"></path>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 579 B |
7
src/newsreader/static/icons/circle-minus.svg
Executable file
|
|
@ -0,0 +1,7 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<!-- Generated by IcoMoon.io -->
|
||||||
|
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||||
|
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="20" height="20" viewBox="0 0 20 20">
|
||||||
|
<path fill="#000000" d="M16.218 3.782c-1.794-1.794-4.18-2.782-6.718-2.782s-4.923 0.988-6.718 2.782-2.782 4.18-2.782 6.717 0.988 4.923 2.782 6.718 4.18 2.782 6.718 2.782 4.923-0.988 6.718-2.782 2.782-4.18 2.782-6.718-0.988-4.923-2.782-6.717zM9.5 19c-4.687 0-8.5-3.813-8.5-8.5s3.813-8.5 8.5-8.5c4.687 0 8.5 3.813 8.5 8.5s-3.813 8.5-8.5 8.5z"></path>
|
||||||
|
<path fill="#000000" d="M15.5 11h-12c-0.276 0-0.5-0.224-0.5-0.5s0.224-0.5 0.5-0.5h12c0.276 0 0.5 0.224 0.5 0.5s-0.224 0.5-0.5 0.5z"></path>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 807 B |
7
src/newsreader/static/icons/clock.svg
Executable file
|
|
@ -0,0 +1,7 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<!-- Generated by IcoMoon.io -->
|
||||||
|
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||||
|
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="20" height="20" viewBox="0 0 20 20">
|
||||||
|
<path fill="#000000" d="M16.32 17.113c1.729-1.782 2.68-4.124 2.68-6.613 0-2.37-0.862-4.608-2.438-6.355l0.688-0.688 0.647 0.646c0.098 0.098 0.226 0.146 0.353 0.146s0.256-0.049 0.353-0.146c0.195-0.195 0.195-0.512 0-0.707l-2-2c-0.195-0.195-0.512-0.195-0.707 0s-0.195 0.512 0 0.707l0.647 0.646-0.688 0.688c-1.747-1.576-3.985-2.438-6.355-2.438s-4.608 0.862-6.355 2.438l-0.688-0.688 0.646-0.646c0.195-0.195 0.195-0.512 0-0.707s-0.512-0.195-0.707 0l-2 2c-0.195 0.195-0.195 0.512 0 0.707 0.098 0.098 0.226 0.146 0.354 0.146s0.256-0.049 0.354-0.146l0.646-0.646 0.688 0.688c-1.576 1.747-2.438 3.985-2.438 6.355 0 2.489 0.951 4.831 2.68 6.613l-2.034 2.034c-0.195 0.195-0.195 0.512 0 0.707 0.098 0.098 0.226 0.147 0.354 0.147s0.256-0.049 0.354-0.147l2.060-2.059c1.705 1.428 3.836 2.206 6.087 2.206s4.382-0.778 6.087-2.206l2.059 2.059c0.098 0.098 0.226 0.147 0.354 0.147s0.256-0.049 0.353-0.147c0.195-0.195 0.195-0.512 0-0.707l-2.034-2.034zM1 10.5c0-4.687 3.813-8.5 8.5-8.5s8.5 3.813 8.5 8.5c0 4.687-3.813 8.5-8.5 8.5s-8.5-3.813-8.5-8.5z"></path>
|
||||||
|
<path fill="#000000" d="M15.129 7.25c-0.138-0.239-0.444-0.321-0.683-0.183l-4.92 2.841-3.835-2.685c-0.226-0.158-0.538-0.103-0.696 0.123s-0.103 0.538 0.123 0.696l4.096 2.868c0.001 0.001 0.002 0.001 0.002 0.002 0.009 0.006 0.018 0.012 0.027 0.017 0.002 0.001 0.004 0.003 0.006 0.004 0.009 0.005 0.018 0.010 0.027 0.015 0.002 0.001 0.004 0.002 0.006 0.003 0.010 0.005 0.020 0.009 0.031 0.014 0.006 0.003 0.013 0.005 0.019 0.007 0.004 0.001 0.008 0.003 0.013 0.005 0.007 0.002 0.014 0.004 0.021 0.006 0.004 0.001 0.008 0.002 0.012 0.003 0.007 0.002 0.014 0.003 0.022 0.005 0.004 0.001 0.008 0.002 0.012 0.002 0.007 0.001 0.014 0.002 0.021 0.003 0.005 0.001 0.010 0.001 0.015 0.002 0.006 0.001 0.012 0.001 0.018 0.002 0.009 0.001 0.018 0.001 0.027 0.001 0.002 0 0.004 0 0.006 0 0 0 0-0 0-0s0 0 0.001 0c0.019 0 0.037-0.001 0.056-0.003 0.001-0 0.002-0 0.003-0 0.018-0.002 0.036-0.005 0.054-0.010 0.002-0 0.003-0.001 0.005-0.001 0.017-0.004 0.034-0.009 0.050-0.015 0.003-0.001 0.006-0.002 0.008-0.003 0.016-0.006 0.031-0.012 0.046-0.020 0.004-0.002 0.007-0.004 0.011-0.006 0.005-0.003 0.011-0.005 0.016-0.008l5.196-3c0.239-0.138 0.321-0.444 0.183-0.683z"></path>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 2.4 KiB |
7
src/newsreader/static/icons/cloud-check.svg
Executable file
|
|
@ -0,0 +1,7 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<!-- Generated by IcoMoon.io -->
|
||||||
|
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||||
|
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="20" height="20" viewBox="0 0 20 20">
|
||||||
|
<path fill="#000000" d="M16 16h-9.5c-0.276 0-0.5-0.224-0.5-0.5s0.224-0.5 0.5-0.5h9.5c1.654 0 3-1.346 3-3s-1.346-3-3-3c-0.343 0-0.68 0.057-1 0.17-0.217 0.077-0.458-0.005-0.584-0.197s-0.105-0.446 0.051-0.615c0.344-0.371 0.533-0.853 0.533-1.359 0-1.103-0.897-2-2-2-1.055 0-1.931 0.823-1.996 1.875-0.013 0.212-0.159 0.393-0.363 0.45s-0.423-0.020-0.545-0.194c-0.937-1.334-2.468-2.131-4.096-2.131-2.757 0-5 2.243-5 5 0 0.152 0.007 0.305 0.020 0.455 0.025 0.275-0.178 0.518-0.453 0.543s-0.518-0.178-0.543-0.453c-0.016-0.18-0.024-0.363-0.024-0.545 0-3.308 2.692-6 6-6 1.611 0 3.143 0.65 4.261 1.776 0.471-1.050 1.527-1.776 2.739-1.776 1.654 0 3 1.346 3 3 0 0.346-0.059 0.685-0.172 1.004 0.057-0.002 0.115-0.004 0.172-0.004 2.206 0 4 1.794 4 4s-1.794 4-4 4z"></path>
|
||||||
|
<path fill="#000000" d="M3.5 15.5c-0.128 0-0.256-0.049-0.354-0.146l-2-2c-0.195-0.195-0.195-0.512 0-0.707s0.512-0.195 0.707 0l1.646 1.646 4.646-4.646c0.195-0.195 0.512-0.195 0.707 0s0.195 0.512 0 0.707l-5 5c-0.098 0.098-0.226 0.146-0.354 0.146z"></path>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 1.3 KiB |
7
src/newsreader/static/icons/cloud-download.svg
Executable file
|
|
@ -0,0 +1,7 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<!-- Generated by IcoMoon.io -->
|
||||||
|
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||||
|
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="20" height="20" viewBox="0 0 20 20">
|
||||||
|
<path fill="#000000" d="M16.006 16h-2.506c-0.276 0-0.5-0.224-0.5-0.5s0.224-0.5 0.5-0.5h2.506c1.651 0 2.994-1.343 2.994-2.994s-1.343-2.994-2.994-2.994c-0.352 0-0.696 0.060-1.023 0.179-0.218 0.079-0.462-0.002-0.589-0.196s-0.104-0.45 0.056-0.618c0.355-0.373 0.55-0.862 0.55-1.377 0-1.103-0.897-2-2-2-0.642 0-1.229 0.297-1.61 0.814-0.229 0.31-0.362 0.677-0.386 1.061-0.013 0.212-0.159 0.393-0.364 0.451s-0.423-0.021-0.545-0.195l-0.005-0.007c-0.107-0.152-0.226-0.302-0.351-0.442-0.949-1.068-2.312-1.681-3.74-1.681-2.757 0-5 2.243-5 5s2.243 5 5 5h1.5c0.276 0 0.5 0.224 0.5 0.5s-0.224 0.5-0.5 0.5h-1.5c-3.308 0-6-2.692-6-6s2.692-6 6-6c1.603 0 3.137 0.643 4.261 1.775 0.087-0.195 0.196-0.381 0.324-0.555 0.564-0.764 1.467-1.22 2.415-1.22 1.654 0 3 1.346 3 3 0 0.351-0.061 0.694-0.176 1.017 0.061-0.003 0.122-0.004 0.183-0.004 2.202 0 3.994 1.792 3.994 3.994s-1.792 3.994-3.994 3.994z"></path>
|
||||||
|
<path fill="#000000" d="M12.854 13.146c-0.195-0.195-0.512-0.195-0.707 0l-1.146 1.146v-3.793c0-0.276-0.224-0.5-0.5-0.5s-0.5 0.224-0.5 0.5v3.793l-1.146-1.146c-0.195-0.195-0.512-0.195-0.707 0s-0.195 0.512 0 0.707l2 2c0.098 0.098 0.226 0.146 0.354 0.146s0.256-0.049 0.354-0.146l2-2c0.195-0.195 0.195-0.512 0-0.707z"></path>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 1.5 KiB |
8
src/newsreader/static/icons/cloud-sync.svg
Executable file
|
|
@ -0,0 +1,8 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<!-- Generated by IcoMoon.io -->
|
||||||
|
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||||
|
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="20" height="20" viewBox="0 0 20 20">
|
||||||
|
<path fill="#000000" d="M16.006 8.012c-0.061 0-0.122 0.001-0.183 0.004 0.116-0.322 0.177-0.666 0.177-1.017 0-1.654-1.346-3-3-3-0.948 0-1.851 0.456-2.415 1.22-0.129 0.174-0.237 0.36-0.324 0.555-1.123-1.132-2.658-1.775-4.261-1.775-3.308 0-6 2.692-6 6s2.692 6 6 6h10.006c2.202 0 3.994-1.792 3.994-3.994s-1.792-3.994-3.994-3.994zM16.006 15h-10.006c-2.757 0-5-2.243-5-5s2.243-5 5-5c1.428 0 2.791 0.613 3.74 1.681 0.125 0.141 0.243 0.29 0.351 0.442l0.005 0.007c0.122 0.174 0.34 0.253 0.545 0.195s0.351-0.238 0.364-0.451c0.024-0.384 0.157-0.751 0.386-1.061 0.382-0.517 0.969-0.814 1.611-0.814 1.103 0 2 0.897 2 2 0 0.515-0.195 1.004-0.55 1.377-0.16 0.168-0.183 0.424-0.056 0.618s0.371 0.275 0.589 0.196c0.327-0.119 0.671-0.179 1.023-0.179 1.651 0 2.994 1.343 2.994 2.994s-1.343 2.994-2.994 2.994z"></path>
|
||||||
|
<path fill="#000000" d="M6.404 11.959c-0.132 0.027-0.268 0.041-0.404 0.041-1.103 0-2-0.897-2-2v-0.293l0.146 0.146c0.098 0.098 0.226 0.146 0.354 0.146s0.256-0.049 0.354-0.146c0.195-0.195 0.195-0.512 0-0.707l-1-1c-0.195-0.195-0.512-0.195-0.707 0l-1 1c-0.195 0.195-0.195 0.512 0 0.707s0.512 0.195 0.707 0l0.146-0.146v0.293c0 1.654 1.346 3 3 3 0.203 0 0.406-0.021 0.604-0.061 0.271-0.055 0.445-0.32 0.39-0.59s-0.319-0.445-0.59-0.39z"></path>
|
||||||
|
<path fill="#000000" d="M9.146 10.146l-0.146 0.146v-0.293c0-1.654-1.346-3-3-3-0.203 0-0.406 0.021-0.604 0.061-0.271 0.055-0.445 0.32-0.39 0.59s0.32 0.445 0.59 0.39c0.132-0.027 0.268-0.041 0.404-0.041 1.103 0 2 0.897 2 2v0.293l-0.146-0.146c-0.195-0.195-0.512-0.195-0.707 0s-0.195 0.512 0 0.707l1 1c0.098 0.098 0.226 0.146 0.354 0.146s0.256-0.049 0.354-0.146l1-1c0.195-0.195 0.195-0.512 0-0.707s-0.512-0.195-0.707 0z"></path>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 1.9 KiB |
7
src/newsreader/static/icons/cloud-upload.svg
Executable file
|
|
@ -0,0 +1,7 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<!-- Generated by IcoMoon.io -->
|
||||||
|
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||||
|
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="20" height="20" viewBox="0 0 20 20">
|
||||||
|
<path fill="#000000" d="M16.006 16h-3.506c-0.276 0-0.5-0.224-0.5-0.5s0.224-0.5 0.5-0.5h3.506c1.651 0 2.994-1.343 2.994-2.994s-1.343-2.994-2.994-2.994c-0.352 0-0.696 0.060-1.023 0.179-0.218 0.079-0.462-0.002-0.589-0.196s-0.104-0.45 0.056-0.618c0.355-0.373 0.55-0.862 0.55-1.377 0-1.103-0.897-2-2-2-0.642 0-1.229 0.297-1.61 0.814-0.229 0.31-0.362 0.677-0.386 1.061-0.013 0.212-0.159 0.393-0.364 0.451s-0.423-0.021-0.545-0.195l-0.005-0.007c-0.107-0.152-0.226-0.302-0.351-0.442-0.949-1.068-2.312-1.681-3.74-1.681-2.757 0-5 2.243-5 5s2.243 5 5 5h2.5c0.276 0 0.5 0.224 0.5 0.5s-0.224 0.5-0.5 0.5h-2.5c-3.308 0-6-2.692-6-6s2.692-6 6-6c1.603 0 3.137 0.643 4.261 1.775 0.087-0.195 0.196-0.381 0.324-0.555 0.564-0.764 1.467-1.22 2.415-1.22 1.654 0 3 1.346 3 3 0 0.351-0.061 0.694-0.176 1.017 0.061-0.003 0.122-0.004 0.183-0.004 2.202 0 3.994 1.792 3.994 3.994s-1.792 3.994-3.994 3.994z"></path>
|
||||||
|
<path fill="#000000" d="M12.854 12.146l-2-2c-0.195-0.195-0.512-0.195-0.707 0l-2 2c-0.195 0.195-0.195 0.512 0 0.707s0.512 0.195 0.707 0l1.146-1.146v3.793c0 0.276 0.224 0.5 0.5 0.5s0.5-0.224 0.5-0.5v-3.793l1.146 1.146c0.098 0.098 0.226 0.146 0.354 0.146s0.256-0.049 0.354-0.146c0.195-0.195 0.195-0.512 0-0.707z"></path>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 1.5 KiB |
6
src/newsreader/static/icons/cloud.svg
Executable file
|
|
@ -0,0 +1,6 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<!-- Generated by IcoMoon.io -->
|
||||||
|
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||||
|
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="20" height="20" viewBox="0 0 20 20">
|
||||||
|
<path fill="#000000" d="M16.006 16h-10.006c-3.308 0-6-2.692-6-6s2.692-6 6-6c1.602 0 3.137 0.643 4.26 1.775 0.088-0.194 0.196-0.38 0.325-0.555 0.564-0.764 1.467-1.22 2.415-1.22 1.654 0 3 1.346 3 3 0 0.351-0.061 0.694-0.178 1.017 0.061-0.003 0.122-0.004 0.184-0.004 2.202 0 3.994 1.792 3.994 3.994s-1.792 3.994-3.994 3.994zM6 5c-2.757 0-5 2.243-5 5s2.243 5 5 5h10.006c1.651 0 2.994-1.343 2.994-2.994s-1.343-2.994-2.994-2.994c-0.354 0-0.699 0.061-1.026 0.18-0.218 0.080-0.462-0.001-0.59-0.195s-0.104-0.45 0.056-0.619c0.357-0.376 0.554-0.865 0.554-1.379 0-1.103-0.897-2-2-2-0.642 0-1.229 0.297-1.61 0.814-0.23 0.312-0.365 0.678-0.388 1.057-0.013 0.212-0.159 0.393-0.363 0.45s-0.423-0.020-0.545-0.193c-0.11-0.156-0.229-0.307-0.354-0.447-0.949-1.068-2.312-1.681-3.74-1.681z"></path>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 1.1 KiB |
8
src/newsreader/static/icons/code.svg
Executable file
|
|
@ -0,0 +1,8 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<!-- Generated by IcoMoon.io -->
|
||||||
|
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||||
|
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="20" height="20" viewBox="0 0 20 20">
|
||||||
|
<path fill="#000000" d="M5 15c-0.128 0-0.256-0.049-0.354-0.146l-4-4c-0.195-0.195-0.195-0.512 0-0.707l4-4c0.195-0.195 0.512-0.195 0.707 0s0.195 0.512 0 0.707l-3.646 3.646 3.646 3.646c0.195 0.195 0.195 0.512 0 0.707-0.098 0.098-0.226 0.146-0.354 0.146z"></path>
|
||||||
|
<path fill="#000000" d="M15 15c-0.128 0-0.256-0.049-0.354-0.146-0.195-0.195-0.195-0.512 0-0.707l3.646-3.646-3.646-3.646c-0.195-0.195-0.195-0.512 0-0.707s0.512-0.195 0.707 0l4 4c0.195 0.195 0.195 0.512 0 0.707l-4 4c-0.098 0.098-0.226 0.146-0.354 0.146z"></path>
|
||||||
|
<path fill="#000000" d="M7.5 15c-0.091 0-0.182-0.025-0.265-0.076-0.234-0.146-0.305-0.455-0.159-0.689l5-8c0.146-0.234 0.455-0.305 0.689-0.159s0.305 0.455 0.159 0.689l-5 8c-0.095 0.152-0.258 0.235-0.424 0.235z"></path>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 1 KiB |
7
src/newsreader/static/icons/coffee-cup.svg
Executable file
|
|
@ -0,0 +1,7 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<!-- Generated by IcoMoon.io -->
|
||||||
|
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||||
|
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="20" height="20" viewBox="0 0 20 20">
|
||||||
|
<path fill="#000000" d="M10 15c-1.654 0-3-1.346-3-3s1.346-3 3-3 3 1.346 3 3-1.346 3-3 3zM10 10c-1.103 0-2 0.897-2 2s0.897 2 2 2c1.103 0 2-0.897 2-2s-0.897-2-2-2z"></path>
|
||||||
|
<path fill="#000000" d="M15.904 2.056l-0.177-0.707c-0.189-0.756-0.948-1.349-1.728-1.349h-8c-0.78 0-1.538 0.593-1.728 1.349l-0.177 0.707c-0.631 0.177-1.096 0.757-1.096 1.444v1c0 0.663 0.432 1.226 1.029 1.424l0.901 12.614c0.058 0.806 0.762 1.462 1.57 1.462h7c0.808 0 1.512-0.656 1.57-1.462l0.901-12.614c0.597-0.198 1.029-0.761 1.029-1.424v-1c0-0.687-0.464-1.267-1.096-1.444zM6 1h8c0.319 0 0.68 0.282 0.757 0.591l0.102 0.409h-9.719l0.102-0.409c0.077-0.309 0.438-0.591 0.757-0.591zM14.892 7h-9.783l-0.071-1h9.926l-0.071 1zM14.249 16h-8.497l-0.571-8h9.64l-0.571 8zM13.5 19h-7c-0.29 0-0.552-0.244-0.573-0.533l-0.105-1.467h8.355l-0.105 1.467c-0.021 0.289-0.283 0.533-0.573 0.533zM16 4.5c0 0.276-0.224 0.5-0.5 0.5h-11c-0.276 0-0.5-0.224-0.5-0.5v-1c0-0.275 0.224-0.499 0.499-0.5 0.001 0 0.001 0 0.002 0s0.002-0 0.003-0h10.997c0.276 0 0.5 0.224 0.5 0.5v1z"></path>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 1.3 KiB |
7
src/newsreader/static/icons/cog.svg
Executable file
|
|
@ -0,0 +1,7 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<!-- Generated by IcoMoon.io -->
|
||||||
|
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||||
|
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="20" height="20" viewBox="0 0 20 20">
|
||||||
|
<path fill="#000000" d="M7.631 19.702c-0.041 0-0.083-0.005-0.125-0.016-0.898-0.231-1.761-0.587-2.564-1.059-0.233-0.137-0.315-0.434-0.186-0.671 0.159-0.292 0.243-0.622 0.243-0.957 0-1.103-0.897-2-2-2-0.334 0-0.665 0.084-0.957 0.243-0.237 0.129-0.534 0.047-0.671-0.186-0.472-0.804-0.828-1.666-1.059-2.564-0.065-0.254 0.077-0.515 0.325-0.598 0.814-0.274 1.362-1.036 1.362-1.895s-0.547-1.621-1.362-1.895c-0.248-0.084-0.39-0.344-0.325-0.598 0.231-0.898 0.587-1.761 1.059-2.564 0.137-0.233 0.434-0.315 0.671-0.186 0.291 0.159 0.622 0.243 0.957 0.243 1.103 0 2-0.897 2-2 0-0.334-0.084-0.665-0.243-0.957-0.129-0.237-0.047-0.534 0.186-0.671 0.804-0.472 1.666-0.828 2.564-1.059 0.254-0.065 0.515 0.077 0.598 0.325 0.274 0.814 1.036 1.362 1.895 1.362s1.621-0.547 1.895-1.362c0.084-0.248 0.345-0.39 0.598-0.325 0.898 0.231 1.761 0.587 2.564 1.059 0.233 0.137 0.315 0.434 0.186 0.671-0.159 0.292-0.243 0.622-0.243 0.957 0 1.103 0.897 2 2 2 0.334 0 0.665-0.084 0.957-0.243 0.237-0.129 0.534-0.047 0.671 0.186 0.472 0.804 0.828 1.666 1.059 2.564 0.065 0.254-0.077 0.515-0.325 0.598-0.814 0.274-1.362 1.036-1.362 1.895s0.547 1.621 1.362 1.895c0.248 0.084 0.39 0.344 0.325 0.598-0.231 0.898-0.587 1.761-1.059 2.564-0.137 0.233-0.434 0.315-0.671 0.186-0.292-0.159-0.622-0.243-0.957-0.243-1.103 0-2 0.897-2 2 0 0.334 0.084 0.665 0.243 0.957 0.129 0.237 0.047 0.534-0.186 0.671-0.804 0.472-1.666 0.828-2.564 1.059-0.254 0.065-0.515-0.077-0.598-0.325-0.274-0.814-1.036-1.362-1.895-1.362s-1.621 0.547-1.895 1.362c-0.070 0.207-0.264 0.341-0.474 0.341zM10 17c1.127 0 2.142 0.628 2.655 1.602 0.52-0.161 1.026-0.369 1.51-0.622-0.108-0.314-0.164-0.646-0.164-0.98 0-1.654 1.346-3 3-3 0.334 0 0.666 0.056 0.98 0.164 0.253-0.484 0.462-0.989 0.622-1.51-0.974-0.512-1.602-1.527-1.602-2.655s0.628-2.142 1.602-2.655c-0.161-0.52-0.369-1.026-0.622-1.51-0.314 0.108-0.646 0.164-0.98 0.164-1.654 0-3-1.346-3-3 0-0.334 0.056-0.666 0.164-0.98-0.484-0.253-0.989-0.462-1.51-0.622-0.512 0.974-1.527 1.602-2.655 1.602s-2.142-0.628-2.655-1.602c-0.52 0.16-1.026 0.369-1.51 0.622 0.108 0.314 0.164 0.646 0.164 0.98 0 1.654-1.346 3-3 3-0.334 0-0.666-0.056-0.98-0.164-0.253 0.484-0.462 0.989-0.622 1.51 0.974 0.512 1.602 1.527 1.602 2.655s-0.628 2.142-1.602 2.655c0.16 0.52 0.369 1.026 0.622 1.51 0.314-0.108 0.646-0.164 0.98-0.164 1.654 0 3 1.346 3 3 0 0.334-0.056 0.666-0.164 0.98 0.484 0.253 0.989 0.462 1.51 0.622 0.512-0.974 1.527-1.602 2.655-1.602z"></path>
|
||||||
|
<path fill="#000000" d="M10 13c-1.654 0-3-1.346-3-3s1.346-3 3-3 3 1.346 3 3-1.346 3-3 3zM10 8c-1.103 0-2 0.897-2 2s0.897 2 2 2c1.103 0 2-0.897 2-2s-0.897-2-2-2z"></path>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 2.8 KiB |
6
src/newsreader/static/icons/construction.svg
Executable file
|
|
@ -0,0 +1,6 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<!-- Generated by IcoMoon.io -->
|
||||||
|
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||||
|
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="20" height="20" viewBox="0 0 20 20">
|
||||||
|
<path fill="#000000" d="M20 5v-1.5c0-0.276-0.224-0.5-0.5-0.5h-3.5c-0 0-0 0-0 0h-5c-0 0-0 0-0 0h-5c-0 0-0 0-0 0h-5.5c-0.276 0-0.5 0.224-0.5 0.5v6c0 0.276 0.224 0.5 0.5 0.5h1.5v6h-0.5c-0.276 0-0.5 0.224-0.5 0.5s0.224 0.5 0.5 0.5h4c0.276 0 0.5-0.224 0.5-0.5s-0.224-0.5-0.5-0.5h-0.5v-3h10v3h-0.5c-0.276 0-0.5 0.224-0.5 0.5s0.224 0.5 0.5 0.5h4c0.276 0 0.5-0.224 0.5-0.5s-0.224-0.5-0.5-0.5h-0.5v-6h1.5c0.276 0 0.5-0.224 0.5-0.5v-4.5c0-0 0-0 0-0zM19 4.793l-4.207 4.207h-3.586l5-5h2.793v0.793zM6.207 9l5-5h3.586l-5 5h-3.586zM1.207 9l5-5h3.586l-5 5h-3.586zM4.793 4l-3.793 3.793v-3.793h3.793zM3 16v-6h1v6h-1zM5 12v-2h10v2h-10zM17 16h-1v-6h1v6zM16.207 9l2.793-2.793v2.793h-2.793z"></path>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 997 B |
9
src/newsreader/static/icons/crop.svg
Executable file
|
|
@ -0,0 +1,9 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<!-- Generated by IcoMoon.io -->
|
||||||
|
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||||
|
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="20" height="20" viewBox="0 0 20 20">
|
||||||
|
<path fill="#000000" d="M19.5 15h-3c-0.276 0-0.5-0.224-0.5-0.5s0.224-0.5 0.5-0.5h3c0.276 0 0.5 0.224 0.5 0.5s-0.224 0.5-0.5 0.5z"></path>
|
||||||
|
<path fill="#000000" d="M12.5 15h-7c-0.276 0-0.5-0.224-0.5-0.5v-7c0-0.276 0.224-0.5 0.5-0.5s0.5 0.224 0.5 0.5v6.5h6.5c0.276 0 0.5 0.224 0.5 0.5s-0.224 0.5-0.5 0.5z"></path>
|
||||||
|
<path fill="#000000" d="M5.5 4c-0.276 0-0.5-0.224-0.5-0.5v-3c0-0.276 0.224-0.5 0.5-0.5s0.5 0.224 0.5 0.5v3c0 0.276-0.224 0.5-0.5 0.5z"></path>
|
||||||
|
<path fill="#000000" d="M14.5 20c-0.276 0-0.5-0.224-0.5-0.5v-13.5h-13.5c-0.276 0-0.5-0.224-0.5-0.5s0.224-0.5 0.5-0.5h14c0.276 0 0.5 0.224 0.5 0.5v14c0 0.276-0.224 0.5-0.5 0.5z"></path>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 958 B |
7
src/newsreader/static/icons/cross-circle.svg
Executable file
|
|
@ -0,0 +1,7 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<!-- Generated by IcoMoon.io -->
|
||||||
|
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||||
|
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="20" height="20" viewBox="0 0 20 20">
|
||||||
|
<path fill="#000000" d="M14.332 14.126l-4.080-3.626 4.080-3.626c0.206-0.183 0.225-0.499 0.042-0.706s-0.499-0.225-0.706-0.042l-4.168 3.705-4.168-3.705c-0.206-0.183-0.522-0.165-0.706 0.042s-0.165 0.522 0.042 0.706l4.080 3.626-4.080 3.626c-0.206 0.183-0.225 0.499-0.042 0.706 0.099 0.111 0.236 0.168 0.374 0.168 0.118 0 0.237-0.042 0.332-0.126l4.168-3.705 4.168 3.705c0.095 0.085 0.214 0.126 0.332 0.126 0.138 0 0.275-0.057 0.374-0.168 0.183-0.206 0.165-0.522-0.042-0.706z"></path>
|
||||||
|
<path fill="#000000" d="M9.5 20c-2.538 0-4.923-0.988-6.718-2.782s-2.782-4.18-2.782-6.717c0-2.538 0.988-4.923 2.782-6.718s4.18-2.783 6.718-2.783c2.538 0 4.923 0.988 6.718 2.783s2.782 4.18 2.782 6.718-0.988 4.923-2.782 6.717c-1.794 1.794-4.18 2.782-6.718 2.782zM9.5 2c-4.687 0-8.5 3.813-8.5 8.5s3.813 8.5 8.5 8.5 8.5-3.813 8.5-8.5-3.813-8.5-8.5-8.5z"></path>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 1.1 KiB |
6
src/newsreader/static/icons/cross.svg
Executable file
|
|
@ -0,0 +1,6 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<!-- Generated by IcoMoon.io -->
|
||||||
|
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||||
|
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="20" height="20" viewBox="0 0 20 20">
|
||||||
|
<path fill="#000000" d="M10.707 10.5l5.646-5.646c0.195-0.195 0.195-0.512 0-0.707s-0.512-0.195-0.707 0l-5.646 5.646-5.646-5.646c-0.195-0.195-0.512-0.195-0.707 0s-0.195 0.512 0 0.707l5.646 5.646-5.646 5.646c-0.195 0.195-0.195 0.512 0 0.707 0.098 0.098 0.226 0.146 0.354 0.146s0.256-0.049 0.354-0.146l5.646-5.646 5.646 5.646c0.098 0.098 0.226 0.146 0.354 0.146s0.256-0.049 0.354-0.146c0.195-0.195 0.195-0.512 0-0.707l-5.646-5.646z"></path>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 756 B |
6
src/newsreader/static/icons/database.svg
Executable file
|
|
@ -0,0 +1,6 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<!-- Generated by IcoMoon.io -->
|
||||||
|
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||||
|
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="20" height="20" viewBox="0 0 20 20">
|
||||||
|
<path fill="#000000" d="M18.067 1.609c-0.497-0.326-1.193-0.615-2.069-0.858-1.742-0.484-4.050-0.75-6.498-0.75s-4.756 0.267-6.498 0.75c-0.877 0.243-1.573 0.532-2.069 0.858-0.619 0.407-0.933 0.874-0.933 1.391v12c0 0.517 0.314 0.985 0.933 1.391 0.497 0.326 1.193 0.615 2.069 0.858 1.742 0.484 4.050 0.75 6.498 0.75s4.756-0.267 6.498-0.751c0.877-0.243 1.573-0.532 2.069-0.858 0.619-0.406 0.933-0.874 0.933-1.391v-12c0-0.517-0.314-0.985-0.933-1.391zM3.27 1.714c1.658-0.46 3.87-0.714 6.23-0.714s4.573 0.254 6.23 0.714c1.795 0.499 2.27 1.059 2.27 1.286s-0.474 0.787-2.27 1.286c-1.658 0.46-3.87 0.714-6.23 0.714s-4.573-0.254-6.23-0.714c-1.795-0.499-2.27-1.059-2.27-1.286s0.474-0.787 2.27-1.286zM15.73 16.286c-1.658 0.46-3.87 0.714-6.23 0.714s-4.573-0.254-6.23-0.714c-1.795-0.499-2.27-1.059-2.27-1.286v-2.566c0.492 0.309 1.164 0.583 2.002 0.816 1.742 0.484 4.050 0.75 6.498 0.75s4.756-0.267 6.498-0.751c0.838-0.233 1.511-0.507 2.002-0.816v2.566c0 0.227-0.474 0.787-2.27 1.286zM15.73 12.286c-1.658 0.46-3.87 0.714-6.23 0.714s-4.573-0.254-6.23-0.714c-1.795-0.499-2.27-1.059-2.27-1.286v-2.566c0.492 0.309 1.164 0.583 2.002 0.816 1.742 0.484 4.050 0.75 6.498 0.75s4.756-0.267 6.498-0.75c0.838-0.233 1.511-0.507 2.002-0.816v2.566c0 0.227-0.474 0.787-2.27 1.286zM15.73 8.286c-1.658 0.46-3.87 0.714-6.23 0.714s-4.573-0.254-6.23-0.714c-1.795-0.499-2.27-1.059-2.27-1.286v-2.566c0.492 0.309 1.164 0.583 2.002 0.816 1.742 0.484 4.050 0.75 6.498 0.75s4.756-0.267 6.498-0.75c0.838-0.233 1.511-0.507 2.002-0.816v2.566c0 0.227-0.474 0.787-2.27 1.286z"></path>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 1.8 KiB |
6
src/newsreader/static/icons/diamond.svg
Executable file
|
|
@ -0,0 +1,6 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<!-- Generated by IcoMoon.io -->
|
||||||
|
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||||
|
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="20" height="20" viewBox="0 0 20 20">
|
||||||
|
<path fill="#000000" d="M18.9 7.2l-3-4c-0.077-0.103-0.191-0.172-0.318-0.193l-6-1c-0.054-0.009-0.11-0.009-0.164 0l-6 1c-0.127 0.021-0.241 0.090-0.318 0.193l-3 4c-0.143 0.191-0.131 0.457 0.028 0.634l9 10c0.095 0.105 0.23 0.166 0.372 0.166s0.277-0.060 0.372-0.166l9-10c0.16-0.178 0.172-0.443 0.028-0.634zM12.786 7l-3.286 9.037-3.286-9.037h6.572zM6.707 6l2.793-2.793 2.793 2.793h-5.586zM10.957 3.25l3.698 0.616-1.233 1.849-2.466-2.465zM5.578 5.715l-1.233-1.849 3.698-0.616-2.465 2.465zM4.67 6.156l-2.985 0.597 1.791-2.388 1.194 1.791zM5.177 7.075l2.974 8.179-6.692-7.436 3.718-0.744zM13.823 7.075l3.718 0.744-6.692 7.436 2.974-8.179zM14.33 6.156l1.194-1.791 1.791 2.388-2.985-0.597z"></path>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 1,007 B |
12
src/newsreader/static/icons/dice.svg
Executable file
|
|
@ -0,0 +1,12 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<!-- Generated by IcoMoon.io -->
|
||||||
|
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||||
|
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="20" height="20" viewBox="0 0 20 20">
|
||||||
|
<path fill="#000000" d="M5.5 16c-0.827 0-1.5-0.673-1.5-1.5s0.673-1.5 1.5-1.5 1.5 0.673 1.5 1.5-0.673 1.5-1.5 1.5zM5.5 14c-0.276 0-0.5 0.224-0.5 0.5s0.224 0.5 0.5 0.5 0.5-0.224 0.5-0.5-0.224-0.5-0.5-0.5z"></path>
|
||||||
|
<path fill="#000000" d="M5.5 12c-0.827 0-1.5-0.673-1.5-1.5s0.673-1.5 1.5-1.5 1.5 0.673 1.5 1.5-0.673 1.5-1.5 1.5zM5.5 10c-0.276 0-0.5 0.224-0.5 0.5s0.224 0.5 0.5 0.5 0.5-0.224 0.5-0.5-0.224-0.5-0.5-0.5z"></path>
|
||||||
|
<path fill="#000000" d="M5.5 8c-0.827 0-1.5-0.673-1.5-1.5s0.673-1.5 1.5-1.5 1.5 0.673 1.5 1.5-0.673 1.5-1.5 1.5zM5.5 6c-0.276 0-0.5 0.224-0.5 0.5s0.224 0.5 0.5 0.5 0.5-0.224 0.5-0.5-0.224-0.5-0.5-0.5z"></path>
|
||||||
|
<path fill="#000000" d="M13.5 8c-0.827 0-1.5-0.673-1.5-1.5s0.673-1.5 1.5-1.5 1.5 0.673 1.5 1.5-0.673 1.5-1.5 1.5zM13.5 6c-0.276 0-0.5 0.224-0.5 0.5s0.224 0.5 0.5 0.5 0.5-0.224 0.5-0.5-0.224-0.5-0.5-0.5z"></path>
|
||||||
|
<path fill="#000000" d="M13.5 12c-0.827 0-1.5-0.673-1.5-1.5s0.673-1.5 1.5-1.5 1.5 0.673 1.5 1.5-0.673 1.5-1.5 1.5zM13.5 10c-0.276 0-0.5 0.224-0.5 0.5s0.224 0.5 0.5 0.5 0.5-0.224 0.5-0.5-0.224-0.5-0.5-0.5z"></path>
|
||||||
|
<path fill="#000000" d="M13.5 16c-0.827 0-1.5-0.673-1.5-1.5s0.673-1.5 1.5-1.5 1.5 0.673 1.5 1.5-0.673 1.5-1.5 1.5zM13.5 14c-0.276 0-0.5 0.224-0.5 0.5s0.224 0.5 0.5 0.5 0.5-0.224 0.5-0.5-0.224-0.5-0.5-0.5z"></path>
|
||||||
|
<path fill="#000000" d="M15.5 19h-12c-1.378 0-2.5-1.122-2.5-2.5v-12c0-1.378 1.122-2.5 2.5-2.5h12c1.378 0 2.5 1.122 2.5 2.5v12c0 1.378-1.122 2.5-2.5 2.5zM3.5 3c-0.827 0-1.5 0.673-1.5 1.5v12c0 0.827 0.673 1.5 1.5 1.5h12c0.827 0 1.5-0.673 1.5-1.5v-12c0-0.827-0.673-1.5-1.5-1.5h-12z"></path>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 1.8 KiB |
7
src/newsreader/static/icons/dinner.svg
Executable file
|
|
@ -0,0 +1,7 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<!-- Generated by IcoMoon.io -->
|
||||||
|
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||||
|
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="20" height="20" viewBox="0 0 20 20">
|
||||||
|
<path fill="#000000" d="M8 0.5c0-0.276-0.224-0.5-0.5-0.5s-0.5 0.224-0.5 0.5c0 1.306 0.252 2.397 0.455 3.274 0.198 0.854 0.353 1.529 0.13 1.811-0.186 0.234-0.717 0.37-1.581 0.406-0.002-0.162-0.004-0.326-0.004-0.49v-4c0-0.276-0.224-0.5-0.5-0.5s-0.5 0.224-0.5 0.5v4c0 0.165-0.001 0.328-0.004 0.49-0.861-0.037-1.391-0.174-1.577-0.408-0.225-0.283-0.069-0.959 0.128-1.814 0.202-0.875 0.453-1.965 0.453-3.267 0-0.276-0.224-0.5-0.5-0.5s-0.5 0.224-0.5 0.5c0 1.189-0.237 2.217-0.427 3.043-0.258 1.118-0.461 2.002 0.064 2.662 0.39 0.49 1.101 0.733 2.333 0.785-0.112 2.79-0.516 5.19-0.851 7.177-0.446 2.644-0.74 4.39 0.012 5.279 0.311 0.368 0.772 0.555 1.37 0.555s1.059-0.187 1.37-0.555c0.752-0.89 0.458-2.638 0.012-5.284-0.334-1.985-0.738-4.384-0.851-7.172 1.235-0.050 1.946-0.292 2.337-0.783 0.524-0.659 0.32-1.541 0.062-2.659-0.191-0.827-0.429-1.857-0.429-3.048zM6.106 18.799c-0.073 0.086-0.215 0.201-0.606 0.201s-0.533-0.114-0.606-0.2c-0.452-0.535-0.145-2.357 0.211-4.467 0.129-0.762 0.267-1.585 0.396-2.467 0.129 0.881 0.267 1.701 0.395 2.463 0.356 2.112 0.663 3.936 0.211 4.472z"></path>
|
||||||
|
<path fill="#000000" d="M15.882 14.162c-0.393-2.331-0.881-5.231-0.882-8.662v-5c0-0.227-0.153-0.425-0.372-0.483s-0.45 0.038-0.562 0.235c-2.019 3.534-3.016 8.931-3.058 9.159-0.027 0.146 0.013 0.296 0.108 0.41s0.236 0.18 0.384 0.18h2.235c-0.175 1.544-0.409 2.935-0.617 4.166-0.446 2.644-0.74 4.39 0.012 5.279 0.311 0.368 0.772 0.555 1.37 0.555s1.059-0.187 1.37-0.555c0.752-0.89 0.458-2.638 0.012-5.284zM12.111 9c0.248-1.171 0.882-3.887 1.889-6.317v2.817c0 1.236-0.063 2.403-0.163 3.5h-1.727zM15.106 18.799c-0.073 0.086-0.215 0.201-0.606 0.201s-0.533-0.114-0.606-0.2c-0.452-0.535-0.145-2.357 0.211-4.467 0.129-0.762 0.267-1.585 0.396-2.467 0.129 0.881 0.267 1.702 0.395 2.463 0.356 2.112 0.663 3.936 0.211 4.472z"></path>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 2.1 KiB |
7
src/newsreader/static/icons/direction-ltr.svg
Executable file
|
|
@ -0,0 +1,7 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<!-- Generated by IcoMoon.io -->
|
||||||
|
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||||
|
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="20" height="20" viewBox="0 0 20 20">
|
||||||
|
<path fill="#000000" d="M15.354 17.146l-2-2c-0.195-0.195-0.512-0.195-0.707 0s-0.195 0.512 0 0.707l1.146 1.146h-9.293c-0.276 0-0.5 0.224-0.5 0.5s0.224 0.5 0.5 0.5h9.293l-1.146 1.146c-0.195 0.195-0.195 0.512 0 0.707 0.098 0.098 0.226 0.146 0.354 0.146s0.256-0.049 0.354-0.146l2-2c0.195-0.195 0.195-0.512 0-0.707z"></path>
|
||||||
|
<path fill="#000000" d="M15.5 1h-8.5c-2.206 0-4 1.794-4 4s1.794 4 4 4h1v4.5c0 0.276 0.224 0.5 0.5 0.5s0.5-0.224 0.5-0.5v-11.5h3v11.5c0 0.276 0.224 0.5 0.5 0.5s0.5-0.224 0.5-0.5v-11.5h2.5c0.276 0 0.5-0.224 0.5-0.5s-0.224-0.5-0.5-0.5zM8 8h-1c-1.654 0-3-1.346-3-3s1.346-3 3-3h1v6z"></path>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 926 B |
7
src/newsreader/static/icons/direction-rtl.svg
Executable file
|
|
@ -0,0 +1,7 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<!-- Generated by IcoMoon.io -->
|
||||||
|
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||||
|
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="20" height="20" viewBox="0 0 20 20">
|
||||||
|
<path fill="#000000" d="M15.5 1h-8.5c-2.206 0-4 1.794-4 4s1.794 4 4 4h1v4.5c0 0.276 0.224 0.5 0.5 0.5s0.5-0.224 0.5-0.5v-11.5h3v11.5c0 0.276 0.224 0.5 0.5 0.5s0.5-0.224 0.5-0.5v-11.5h2.5c0.276 0 0.5-0.224 0.5-0.5s-0.224-0.5-0.5-0.5zM8 8h-1c-1.654 0-3-1.346-3-3s1.346-3 3-3h1v6z"></path>
|
||||||
|
<path fill="#000000" d="M14.5 17h-9.293l1.146-1.146c0.195-0.195 0.195-0.512 0-0.707s-0.512-0.195-0.707 0l-2 2c-0.195 0.195-0.195 0.512 0 0.707l2 2c0.098 0.098 0.226 0.146 0.354 0.146s0.256-0.049 0.354-0.146c0.195-0.195 0.195-0.512 0-0.707l-1.146-1.146h9.293c0.276 0 0.5-0.224 0.5-0.5s-0.224-0.5-0.5-0.5z"></path>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 919 B |
7
src/newsreader/static/icons/download.svg
Executable file
|
|
@ -0,0 +1,7 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<!-- Generated by IcoMoon.io -->
|
||||||
|
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||||
|
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="20" height="20" viewBox="0 0 20 20">
|
||||||
|
<path fill="#000000" d="M14.853 9.647c-0.195-0.195-0.512-0.195-0.707 0l-4.146 4.146v-11.293c0-0.276-0.224-0.5-0.5-0.5s-0.5 0.224-0.5 0.5v11.293l-4.146-4.146c-0.195-0.195-0.512-0.195-0.707 0s-0.195 0.512 0 0.707l5 5c0.098 0.098 0.226 0.146 0.354 0.146s0.256-0.049 0.354-0.147l5-5c0.195-0.195 0.195-0.512-0-0.707z"></path>
|
||||||
|
<path fill="#000000" d="M17.5 19h-16c-0.827 0-1.5-0.673-1.5-1.5v-2c0-0.276 0.224-0.5 0.5-0.5s0.5 0.224 0.5 0.5v2c0 0.276 0.224 0.5 0.5 0.5h16c0.276 0 0.5-0.224 0.5-0.5v-2c0-0.276 0.224-0.5 0.5-0.5s0.5 0.224 0.5 0.5v2c0 0.827-0.673 1.5-1.5 1.5z"></path>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 893 B |
6
src/newsreader/static/icons/drop.svg
Executable file
|
|
@ -0,0 +1,6 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<!-- Generated by IcoMoon.io -->
|
||||||
|
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||||
|
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="20" height="20" viewBox="0 0 20 20">
|
||||||
|
<path fill="#000000" d="M10 20c-1.614 0-3.118-0.655-4.236-1.845-1.133-1.206-1.757-2.859-1.757-4.655 0-2.943 1.308-5.049 2.693-7.278 1.070-1.723 2.177-3.504 2.817-5.853 0.059-0.218 0.257-0.368 0.482-0.368s0.423 0.151 0.482 0.368c0.641 2.35 1.749 4.132 2.821 5.855 1.387 2.229 2.697 4.335 2.697 7.277 0 1.799-0.62 3.452-1.746 4.654-1.115 1.19-2.626 1.846-4.254 1.846zM10 2.113c-0.674 1.776-1.574 3.225-2.45 4.636-1.364 2.196-2.543 4.093-2.543 6.751 0 3.136 2.147 5.5 4.993 5.5 2.85 0 5-2.364 5-5.5 0-2.657-1.18-4.553-2.546-6.749-0.878-1.411-1.78-2.861-2.454-4.638z"></path>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 891 B |
6
src/newsreader/static/icons/earth.svg
Executable file
|
|
@ -0,0 +1,6 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<!-- Generated by IcoMoon.io -->
|
||||||
|
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||||
|
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="20" height="20" viewBox="0 0 20 20">
|
||||||
|
<path fill="#000000" d="M17.071 2.929c-1.889-1.889-4.4-2.929-7.071-2.929s-5.182 1.040-7.071 2.929c-1.889 1.889-2.929 4.4-2.929 7.071s1.040 5.182 2.929 7.071c1.889 1.889 4.4 2.929 7.071 2.929s5.182-1.040 7.071-2.929c1.889-1.889 2.929-4.4 2.929-7.071s-1.040-5.182-2.929-7.071zM18.397 6.761c-0.195-0.351-0.685-0.518-1.325-0.736-0.687-0.234-0.93-0.94-1.211-1.758-0.244-0.71-0.496-1.443-1.095-1.899 1.639 1.027 2.924 2.567 3.631 4.393zM15.591 10.191c0.076 0.677 0.154 1.378-0.687 2.322-0.227 0.255-0.36 0.61-0.501 0.986-0.326 0.871-0.634 1.694-1.946 1.706-0.037-0.044-0.141-0.21-0.234-0.733-0.085-0.482-0.134-1.106-0.187-1.765-0.080-1.012-0.171-2.16-0.421-3.112-0.32-1.217-0.857-1.936-1.641-2.198-0.342-0.114-0.692-0.17-1.068-0.17-0.278 0-0.53 0.030-0.752 0.056-0.173 0.020-0.337 0.040-0.475 0.040 0 0-0 0-0 0-0.234 0-0.499 0-0.826-0.748-0.469-1.075-0.123-2.798 1.254-3.707 0.755-0.498 1.276-0.711 1.742-0.711 0.372 0 0.773 0.129 1.342 0.433 0.672 0.358 1.199 0.404 1.583 0.404 0.152 0 0.29-0.008 0.423-0.016 0.112-0.007 0.217-0.013 0.315-0.013 0.22 0 0.398 0.029 0.607 0.171 0.385 0.263 0.585 0.844 0.796 1.458 0.32 0.932 0.683 1.988 1.835 2.38 0.155 0.053 0.421 0.143 0.61 0.222-0.163 0.168-0.435 0.411-0.702 0.649-0.172 0.154-0.367 0.328-0.583 0.525-0.624 0.569-0.55 1.235-0.484 1.822zM1.001 9.923c0.108 0.019 0.224 0.042 0.344 0.067 0.562 0.12 0.825 0.228 0.94 0.289-0.053 0.103-0.16 0.255-0.231 0.355-0.247 0.351-0.555 0.788-0.438 1.269 0.079 0.325 0.012 0.723-0.103 1.091-0.332-0.938-0.513-1.946-0.513-2.996 0-0.026 0.001-0.051 0.001-0.077zM10 19c-3.425 0-6.41-1.924-7.93-4.747 0.262-0.499 0.748-1.603 0.521-2.569 0.016-0.097 0.181-0.331 0.28-0.472 0.271-0.385 0.608-0.863 0.358-1.37-0.175-0.356-0.644-0.596-1.566-0.804-0.214-0.048-0.422-0.087-0.599-0.118 0.536-4.455 4.338-7.919 8.935-7.919 1.578 0 3.062 0.409 4.352 1.125-0.319-0.139-0.608-0.161-0.84-0.161-0.127 0-0.253 0.007-0.375 0.015-0.119 0.007-0.242 0.014-0.364 0.014-0.284 0-0.638-0.034-1.112-0.287-0.724-0.385-1.266-0.55-1.812-0.55-0.676 0-1.362 0.262-2.293 0.876-0.805 0.531-1.411 1.343-1.707 2.288-0.289 0.921-0.258 1.864 0.087 2.654 0.407 0.932 0.944 1.348 1.742 1.348 0 0 0 0 0 0 0.197 0 0.389-0.023 0.592-0.047 0.205-0.024 0.416-0.049 0.635-0.049 0.271 0 0.51 0.038 0.751 0.118 0.439 0.147 0.763 0.639 0.991 1.504s0.314 1.966 0.391 2.936c0.064 0.81 0.124 1.574 0.257 2.151 0.081 0.35 0.185 0.616 0.32 0.813 0.201 0.294 0.489 0.456 0.811 0.456 0.884 0 1.59-0.285 2.099-0.847 0.423-0.467 0.639-1.044 0.813-1.508 0.102-0.273 0.208-0.556 0.311-0.672 1.137-1.277 1.020-2.329 0.934-3.098-0.063-0.564-0.064-0.764 0.164-0.972 0.212-0.193 0.405-0.366 0.575-0.518 0.363-0.324 0.625-0.558 0.809-0.758 0.126-0.138 0.422-0.461 0.34-0.865-0.001-0.004-0.002-0.007-0.002-0.011 0.343 0.951 0.53 1.976 0.53 3.044 0 4.963-4.037 9-9 9z"></path>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 3 KiB |
7
src/newsreader/static/icons/enter-down.svg
Executable file
|
|
@ -0,0 +1,7 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<!-- Generated by IcoMoon.io -->
|
||||||
|
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||||
|
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="20" height="20" viewBox="0 0 20 20">
|
||||||
|
<path fill="#000000" d="M12.854 11.646c-0.195-0.195-0.512-0.195-0.707 0l-2.146 2.146v-12.293c0-0.276-0.224-0.5-0.5-0.5s-0.5 0.224-0.5 0.5v12.293l-2.146-2.146c-0.195-0.195-0.512-0.195-0.707 0s-0.195 0.512 0 0.707l3 3c0.098 0.098 0.226 0.146 0.354 0.146s0.256-0.049 0.354-0.146l3-3c0.195-0.195 0.195-0.512 0-0.707z"></path>
|
||||||
|
<path fill="#000000" d="M15.5 20h-12c-0.827 0-1.5-0.673-1.5-1.5v-10c0-0.827 0.673-1.5 1.5-1.5h4c0.276 0 0.5 0.224 0.5 0.5s-0.224 0.5-0.5 0.5h-4c-0.276 0-0.5 0.224-0.5 0.5v10c0 0.276 0.224 0.5 0.5 0.5h12c0.276 0 0.5-0.224 0.5-0.5v-10c0-0.276-0.224-0.5-0.5-0.5h-4c-0.276 0-0.5-0.224-0.5-0.5s0.224-0.5 0.5-0.5h4c0.827 0 1.5 0.673 1.5 1.5v10c0 0.827-0.673 1.5-1.5 1.5z"></path>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 1,015 B |
7
src/newsreader/static/icons/enter.svg
Executable file
|
|
@ -0,0 +1,7 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<!-- Generated by IcoMoon.io -->
|
||||||
|
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||||
|
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="20" height="20" viewBox="0 0 20 20">
|
||||||
|
<path fill="#000000" d="M17.5 2h-9c-0.827 0-1.5 0.673-1.5 1.5v3c0 0.276 0.224 0.5 0.5 0.5s0.5-0.224 0.5-0.5v-3c0-0.276 0.224-0.5 0.5-0.5h7.564l-3.842 1.647c-0.685 0.294-1.222 1.108-1.222 1.853v9.5h-2.5c-0.276 0-0.5-0.224-0.5-0.5v-3c0-0.276-0.224-0.5-0.5-0.5s-0.5 0.224-0.5 0.5v3c0 0.827 0.673 1.5 1.5 1.5h2.5v1.5c0 0.433 0.18 0.801 0.495 1.008 0.174 0.114 0.376 0.172 0.589 0.172 0.173 0 0.354-0.038 0.532-0.114l5.162-2.212c0.685-0.294 1.222-1.108 1.222-1.854v-12c0-0.827-0.673-1.5-1.5-1.5zM18 15.5c0 0.351-0.294 0.796-0.616 0.934l-5.162 2.212c-0.096 0.041-0.159 0.038-0.177 0.027s-0.045-0.069-0.045-0.173v-12c0-0.351 0.294-0.796 0.616-0.934l5.333-2.286c0.033 0.066 0.051 0.141 0.051 0.22v12z"></path>
|
||||||
|
<path fill="#000000" d="M8.354 9.146l-3-3c-0.195-0.195-0.512-0.195-0.707 0s-0.195 0.512 0 0.707l2.146 2.146h-6.293c-0.276 0-0.5 0.224-0.5 0.5s0.224 0.5 0.5 0.5h6.293l-2.146 2.146c-0.195 0.195-0.195 0.512 0 0.707 0.098 0.098 0.226 0.146 0.354 0.146s0.256-0.049 0.354-0.146l3-3c0.195-0.195 0.195-0.512 0-0.707z"></path>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 1.3 KiB |
6
src/newsreader/static/icons/envelope.svg
Executable file
|
|
@ -0,0 +1,6 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<!-- Generated by IcoMoon.io -->
|
||||||
|
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||||
|
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="20" height="20" viewBox="0 0 20 20">
|
||||||
|
<path fill="#000000" d="M17.5 6h-16c-0.827 0-1.5 0.673-1.5 1.5v9c0 0.827 0.673 1.5 1.5 1.5h16c0.827 0 1.5-0.673 1.5-1.5v-9c0-0.827-0.673-1.5-1.5-1.5zM17.5 7c0.030 0 0.058 0.003 0.087 0.008l-7.532 5.021c-0.29 0.193-0.819 0.193-1.109 0l-7.532-5.021c0.028-0.005 0.057-0.008 0.087-0.008h16zM17.5 17h-16c-0.276 0-0.5-0.224-0.5-0.5v-8.566l7.391 4.927c0.311 0.207 0.71 0.311 1.109 0.311s0.798-0.104 1.109-0.311l7.391-4.927v8.566c0 0.276-0.224 0.5-0.5 0.5z"></path>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 777 B |
7
src/newsreader/static/icons/exit-up.svg
Executable file
|
|
@ -0,0 +1,7 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<!-- Generated by IcoMoon.io -->
|
||||||
|
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||||
|
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="20" height="20" viewBox="0 0 20 20">
|
||||||
|
<path fill="#000000" d="M15.5 20h-12c-0.827 0-1.5-0.673-1.5-1.5v-10c0-0.827 0.673-1.5 1.5-1.5h4c0.276 0 0.5 0.224 0.5 0.5s-0.224 0.5-0.5 0.5h-4c-0.276 0-0.5 0.224-0.5 0.5v10c0 0.276 0.224 0.5 0.5 0.5h12c0.276 0 0.5-0.224 0.5-0.5v-10c0-0.276-0.224-0.5-0.5-0.5h-4c-0.276 0-0.5-0.224-0.5-0.5s0.224-0.5 0.5-0.5h4c0.827 0 1.5 0.673 1.5 1.5v10c0 0.827-0.673 1.5-1.5 1.5z"></path>
|
||||||
|
<path fill="#000000" d="M12.853 3.646l-3-3c-0.195-0.195-0.512-0.195-0.707 0l-3 3c-0.195 0.195-0.195 0.512 0 0.707s0.512 0.195 0.707 0l2.147-2.146v11.293c0 0.276 0.224 0.5 0.5 0.5s0.5-0.224 0.5-0.5v-11.293l2.147 2.146c0.098 0.098 0.226 0.146 0.353 0.146s0.256-0.049 0.353-0.146c0.195-0.195 0.195-0.512 0-0.707z"></path>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 1,012 B |
7
src/newsreader/static/icons/exit.svg
Executable file
|
|
@ -0,0 +1,7 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<!-- Generated by IcoMoon.io -->
|
||||||
|
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||||
|
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="20" height="20" viewBox="0 0 20 20">
|
||||||
|
<path fill="#000000" d="M11.5 8c0.276 0 0.5-0.224 0.5-0.5v-4c0-0.827-0.673-1.5-1.5-1.5h-9c-0.827 0-1.5 0.673-1.5 1.5v12c0 0.746 0.537 1.56 1.222 1.853l5.162 2.212c0.178 0.076 0.359 0.114 0.532 0.114 0.213-0 0.416-0.058 0.589-0.172 0.314-0.207 0.495-0.575 0.495-1.008v-1.5h2.5c0.827 0 1.5-0.673 1.5-1.5v-4c0-0.276-0.224-0.5-0.5-0.5s-0.5 0.224-0.5 0.5v4c0 0.276-0.224 0.5-0.5 0.5h-2.5v-9.5c0-0.746-0.537-1.56-1.222-1.853l-3.842-1.647h7.564c0.276 0 0.5 0.224 0.5 0.5v4c0 0.276 0.224 0.5 0.5 0.5zM6.384 5.566c0.322 0.138 0.616 0.584 0.616 0.934v12c0 0.104-0.028 0.162-0.045 0.173s-0.081 0.014-0.177-0.027l-5.162-2.212c-0.322-0.138-0.616-0.583-0.616-0.934v-12c0-0.079 0.018-0.153 0.051-0.22l5.333 2.286z"></path>
|
||||||
|
<path fill="#000000" d="M18.354 9.146l-3-3c-0.195-0.195-0.512-0.195-0.707 0s-0.195 0.512 0 0.707l2.146 2.146h-6.293c-0.276 0-0.5 0.224-0.5 0.5s0.224 0.5 0.5 0.5h6.293l-2.146 2.146c-0.195 0.195-0.195 0.512 0 0.707 0.098 0.098 0.226 0.146 0.354 0.146s0.256-0.049 0.354-0.146l3-3c0.195-0.195 0.195-0.512 0-0.707z"></path>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 1.3 KiB |
6
src/newsreader/static/icons/eye.svg
Executable file
|
|
@ -0,0 +1,6 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<!-- Generated by IcoMoon.io -->
|
||||||
|
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||||
|
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="20" height="20" viewBox="0 0 20 20">
|
||||||
|
<path fill="#000000" d="M19.872 10.166c-0.047-0.053-1.182-1.305-2.956-2.572-1.047-0.748-2.1-1.344-3.13-1.773-1.305-0.544-2.579-0.82-3.786-0.82s-2.481 0.276-3.786 0.82c-1.030 0.429-2.083 1.026-3.13 1.773-1.774 1.267-2.909 2.52-2.956 2.572-0.171 0.19-0.171 0.479 0 0.669 0.047 0.053 1.182 1.305 2.956 2.572 1.047 0.748 2.1 1.344 3.13 1.773 1.305 0.544 2.579 0.82 3.786 0.82s2.481-0.276 3.786-0.82c1.030-0.429 2.083-1.026 3.13-1.773 1.774-1.267 2.909-2.52 2.956-2.572 0.171-0.19 0.171-0.479 0-0.669zM12.574 6.438c0.907 0.763 1.426 1.873 1.426 3.062 0 2.206-1.794 4-4 4s-4-1.794-4-4c0-1.188 0.519-2.299 1.426-3.062 0.822-0.268 1.691-0.438 2.574-0.438s1.752 0.17 2.574 0.438zM16.317 12.606c-1.533 1.092-3.873 2.394-6.317 2.394s-4.784-1.302-6.317-2.394c-1.157-0.824-2.042-1.658-2.489-2.106 0.447-0.448 1.332-1.281 2.489-2.106 0.53-0.378 1.156-0.78 1.85-1.145-0.347 0.688-0.533 1.455-0.533 2.251 0 2.757 2.243 5 5 5s5-2.243 5-5c0-0.796-0.186-1.563-0.533-2.251 0.694 0.365 1.32 0.768 1.85 1.145 1.157 0.824 2.042 1.658 2.489 2.106-0.447 0.448-1.332 1.281-2.489 2.106z"></path>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 1.4 KiB |
7
src/newsreader/static/icons/file-add.svg
Executable file
|
|
@ -0,0 +1,7 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<!-- Generated by IcoMoon.io -->
|
||||||
|
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||||
|
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="20" height="20" viewBox="0 0 20 20">
|
||||||
|
<path fill="#000000" d="M17.854 5.646l-4.5-4.5c-0.094-0.094-0.221-0.146-0.354-0.146h-9.5c-0.827 0-1.5 0.673-1.5 1.5v16c0 0.827 0.673 1.5 1.5 1.5h13c0.827 0 1.5-0.673 1.5-1.5v-12.5c0-0.133-0.053-0.26-0.146-0.354zM16.793 6h-3.293c-0.276 0-0.5-0.224-0.5-0.5v-3.293l3.793 3.793zM16.5 19h-13c-0.276 0-0.5-0.224-0.5-0.5v-16c0-0.276 0.224-0.5 0.5-0.5h8.5v3.5c0 0.827 0.673 1.5 1.5 1.5h3.5v11.5c0 0.276-0.224 0.5-0.5 0.5z"></path>
|
||||||
|
<path fill="#000000" d="M11.5 13h-2.5v-2.5c0-0.276-0.224-0.5-0.5-0.5s-0.5 0.224-0.5 0.5v2.5h-2.5c-0.276 0-0.5 0.224-0.5 0.5s0.224 0.5 0.5 0.5h2.5v2.5c0 0.276 0.224 0.5 0.5 0.5s0.5-0.224 0.5-0.5v-2.5h2.5c0.276 0 0.5-0.224 0.5-0.5s-0.224-0.5-0.5-0.5z"></path>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 1,000 B |
6
src/newsreader/static/icons/file-empty.svg
Executable file
|
|
@ -0,0 +1,6 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<!-- Generated by IcoMoon.io -->
|
||||||
|
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||||
|
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="20" height="20" viewBox="0 0 20 20">
|
||||||
|
<path fill="#000000" d="M17.854 5.646l-4.5-4.5c-0.094-0.094-0.221-0.146-0.354-0.146h-9.5c-0.827 0-1.5 0.673-1.5 1.5v16c0 0.827 0.673 1.5 1.5 1.5h13c0.827 0 1.5-0.673 1.5-1.5v-12.5c0-0.133-0.053-0.26-0.146-0.354zM16.793 6h-3.293c-0.276 0-0.5-0.224-0.5-0.5v-3.293l3.793 3.793zM17 18.5c0 0.276-0.224 0.5-0.5 0.5h-13c-0.276 0-0.5-0.224-0.5-0.5v-16c0-0.276 0.224-0.5 0.5-0.5h8.5v3.5c0 0.827 0.673 1.5 1.5 1.5h3.5v11.5z"></path>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 742 B |