copied fucking angular from htmlsupplier, I hate this shit, got at least 50 errors, now its only 100 warnings, but at least it doesnt die on me, fuck this shit

This commit is contained in:
Daniel Hübleitner
2019-07-28 11:55:17 +02:00
parent cb1060dbca
commit 1e6621bb11
38 changed files with 4816 additions and 489 deletions
+5
View File
@@ -0,0 +1,5 @@
export default class Controller {
private $rootScope;
static $inject: string[];
constructor($rootScope: any);
}
+8
View File
@@ -0,0 +1,8 @@
export default class Controller {
static $inject = ['$rootScope']
constructor(private $rootScope){
}
}
+7
View File
@@ -0,0 +1,7 @@
import './index.scss';
import rootCtrl from './controller';
declare const _default: {
template: string;
controller: typeof rootCtrl;
};
export default _default;
+34
View File
@@ -0,0 +1,34 @@
<div class="grid">
<aside class="sidenav">
<div class="sidenav__profile">
<a class="sidenav__brand-link" href="#">Front<span class="text-light">block</span></a>
<i class="fas fa-times sidenav__brand-close"></i>
</div>
<div class="row row--align-v-center row--align-h-center">
<ul class="navlist">
<li class="navlist__heading">wallets<i class="far fa-file-alt"></i></li>
<!--
<a ui-sref="btc" ui-sref-active="active">
<div class="navlist__subheading row row--align-v-center">
<span class="navlist__subheading-icon"><i class="fas fa-briefcase-medical"></i></span>
<span class="navlist__subheading-title">Bitcoin</span>
</div>
</a>
-->
<a ui-sref="todolist" ui-sref-active="active">
<div class="navlist__subheading row row--align-v-center">
<span class="navlist__subheading-icon"><i class="fas fa-users"></i></span>
<span class="navlist__subheading-title">ANOTHER ONE</span>
</div>
</a>
</ul>
</div>
</aside>
<main class="main">
<div ui-view class="view"></div>
</main>
<footer class="footer">
<p><span class="footer__copyright">&copy;</span> MIT license (open source)</p>
<p>by <a href="https://frontblock.me" target="_blank" class="footer__signature">Frontblock.me</a></p>
</footer>
</div>
+6
View File
@@ -0,0 +1,6 @@
.view {
height: 100%;
min-height: 300px;
}
+8
View File
@@ -0,0 +1,8 @@
import html from './index.html'
import './index.scss'
import rootCtrl from './controller'
export default {
template: html,
controller: rootCtrl
}
+2
View File
@@ -0,0 +1,2 @@
declare const _default: string;
export default _default;
+7
View File
@@ -0,0 +1,7 @@
import angular = require('angular')
import Root from './Root'
export default angular
.module('components', [])
.component('root', Root)
.name
+5
View File
@@ -0,0 +1,5 @@
declare function routerRegister($urlRouterProvider: any, $stateProvider: any): void;
declare namespace routerRegister {
var $inject: string[];
}
export default routerRegister;
+34
View File
@@ -0,0 +1,34 @@
const routePathes: Array<string> = [
'todo-list'
]
let routes: Array<object> = []
routePathes.forEach(path => {
const parentRoutes = require(`../views/${path}/route`).default
const { children } = parentRoutes
let childRoutes: Array<object> = []
if (children && children.length > 0) {
childRoutes = children.map(childRoute => {
childRoute.name = `${parentRoutes.name}.${childRoute.name}`
return childRoute
})
}
delete parentRoutes.children
childRoutes.push(parentRoutes)
routes = routes.concat(childRoutes)
})
function routerRegister($urlRouterProvider, $stateProvider): void {
$urlRouterProvider.otherwise('views')
routes.forEach(route => {
$stateProvider.state(route)
})
}
routerRegister.$inject = ['$urlRouterProvider', '$stateProvider']
export default routerRegister
+2
View File
@@ -0,0 +1,2 @@
declare const _default: string;
export default _default;
+7
View File
@@ -0,0 +1,7 @@
import angular = require('angular')
import todosVisible from './todosVisible'
export default angular
.module('filters', [])
.filter('todosVisible', () => todosVisible)
.name
+1
View File
@@ -0,0 +1 @@
export default function (todos: any, type: string): Array<object>;
+12
View File
@@ -0,0 +1,12 @@
export default function (todos, type: string): Array<object> {
switch (type) {
case 'All':
return todos
case 'Todo':
return todos.filter(todo => !todo.complete)
case 'Done':
return todos.filter(todo => todo.complete)
default:
throw new Error('Unknown type ' + type)
}
}
+2
View File
@@ -0,0 +1,2 @@
/// <reference path="type.d.ts" />
import './index.scss';
+12
View File
@@ -0,0 +1,12 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<root></root>
</body>
</html>
+897
View File
@@ -0,0 +1,897 @@
html, body {
margin: 0;
padding: 0;
box-sizing: border-box;
font-family: "Open Sans","Helvetica Neue",Helvetica,Arial,sans-serif; }
a {
text-decoration: none; }
.break-word {
word-wrap: break-word;
}
.text-light {
font-weight: 300; }
.monospace {
font-family: monospace;
font-size: 90%
}
.text-bold {
font-weight: bold; }
.row {
}
.row--align-v-center {
align-items: center; }
.row--align-h-center {
justify-content: center; }
.grid {
position: relative;
display: grid;
grid-template-columns: 100%;
grid-template-rows: 50px 1fr 50px;
grid-template-areas: 'header' 'main' 'footer';
height: 100vh;
overflow-x: hidden; }
.grid--noscroll {
overflow-y: hidden; }
.header {
grid-area: header;
display: flex;
align-items: center;
justify-content: space-between;
background-color: #F9FAFC; }
.header__menu {
position: fixed;
padding: 13px;
left: 12px;
background-color: #DADAE3;
border-radius: 50%;
z-index: 1; }
.header__menu:hover {
cursor: pointer; }
.header__search {
margin-left: 55px;
font-size: 20px;
color: #777; }
.header__input {
border: none;
background: transparent;
padding: 12px;
font-size: 20px;
color: #777; }
.header__input:focus {
outline: none;
border: none; }
.header__avatar {
background-size: cover;
background-repeat: no-repeat;
border-radius: 50%;
border: 2px solid rgba(255, 255, 255, 0.2);
position: relative;
margin: 0 26px;
width: 35px;
height: 35px;
cursor: pointer; }
.header__avatar:after {
position: absolute;
content: "";
width: 6px;
height: 6px;
background: none;
border-left: 2px solid #777;
border-bottom: 2px solid #777;
transform: rotate(-45deg) translateY(-50%);
top: 50%;
right: -18px; }
.dropdown {
position: absolute;
top: 54px;
right: -16px;
width: 220px;
height: auto;
z-index: 1;
background-color: #fff;
border-radius: 4px;
visibility: hidden;
opacity: 0;
transform: translateY(-10px);
transition: all .3s;
box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.16), 0 0 0 1px rgba(0, 0, 0, 0.08); }
.dropdown__list {
margin: 0;
padding: 0;
list-style-type: none; }
.dropdown__list-item {
padding: 12px 24px;
color: #777;
text-transform: capitalize; }
.dropdown__list-item:hover {
background-color: rgba(0, 0, 0, 0.1); }
.dropdown__icon {
color: #1BBAE1; }
.dropdown__title {
margin-left: 10px; }
.dropdown:before {
position: absolute;
content: "";
top: -6px;
right: 30px;
width: 0;
height: 0;
border-left: 4px solid transparent;
border-right: 4px solid transparent;
border-bottom: 6px solid #FFF; }
.dropdown--active {
visibility: visible;
opacity: 1;
transform: translateY(0); }
.sidenav {
position: fixed;
grid-area: sidenav;
height: 100%;
overflow-y: auto;
background-color: #394263;
color: #FFF;
width: 220px;
transform: translateX(-245px);
transition: all .6s ease-in-out;
box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.16), 0 0 0 1px rgba(0, 0, 0, 0.08);
z-index: 2; }
.sidenav__brand {
position: relative;
display: flex;
align-items: center;
padding: 0 16px;
height: 50px;
background-color: rgba(0, 0, 0, 0.15); }
.sidenav__brand-icon {
margin-top: 2px;
font-size: 14px;
color: rgba(255, 255, 255, 0.5); }
.sidenav__brand-close {
position: absolute;
right: 8px;
top: 8px;
visibility: visible;
color: rgba(255, 255, 255, 0.5);
cursor: pointer; }
.sidenav__brand-link {
font-size: 18px;
font-weight: bold;
color: #FFF;
margin: 0 15px;
letter-spacing: 1.5px; }
.sidenav__profile {
display: flex;
align-items: center;
min-height: 90px;
background-color: rgba(255, 255, 255, 0.1); }
.sidenav__profile-avatar {
background-size: cover;
background-repeat: no-repeat;
border-radius: 50%;
border: 2px solid rgba(255, 255, 255, 0.2);
height: 64px;
width: 64px;
margin: 0 15px; }
.sidenav__profile-title {
font-size: 17px;
letter-spacing: 1px; }
.sidenav__arrow {
position: absolute;
content: "";
width: 6px;
height: 6px;
top: 50%;
right: 20px;
border-left: 2px solid rgba(255, 255, 255, 0.5);
border-bottom: 2px solid rgba(255, 255, 255, 0.5);
transform: translateY(-50%) rotate(225deg); }
.sidenav__sublist {
list-style-type: none;
margin: 0;
padding: 10px 0 0; }
.sidenav--active {
transform: translateX(0); }
.navlist {
width: 220px;
padding: 0;
margin: 0;
background-color: #394263;
list-style-type: none; }
.navlist__heading {
position: relative;
display: flex;
align-items: center;
justify-content: space-between;
padding: 16px 16px 3px;
color: rgba(255, 255, 255, 0.5);
text-transform: uppercase;
font-size: 15px; }
.navlist__subheading {
position: relative;
padding: 10px 30px;
color: #fff;
font-size: 16px;
text-transform: capitalize; }
.navlist__subheading-icon {
display: flex;
align-items: center;
justify-content: center;
font-size: 12px;
color: rgba(255, 255, 255, 0.5);
width: 12px; }
.navlist__subheading-title {
margin: 0 15px; }
.navlist__subheading:after {
position: absolute;
content: "";
height: 6px;
width: 6px;
top: 17px;
right: 25px;
border-left: 1px solid rgba(255, 255, 255, 0.5);
border-bottom: 1px solid rgba(255, 255, 255, 0.5);
transform: rotate(225deg);
transition: all .2s; }
.navlist__subheading:hover {
background-color: #303753;
cursor: pointer; }
.navlist__subheading--open {
background-color: #303753; }
.navlist__subheading--open:after {
transform: rotate(315deg); }
.navlist .sublist {
padding: 0;
margin: 0;
list-style-type: none;
background-color: #262c43;
visibility: visible;
overflow: hidden;
max-height: 220px;
transition: all .4s ease-in-out; }
.navlist .sublist__item {
padding: 8px;
text-transform: capitalize;
padding: 8px 30px;
color: #D3D3D3; }
.navlist .sublist__item:first-child {
padding-top: 15px; }
.navlist .sublist__item:hover {
background-color: rgba(255, 255, 255, 0.1);
cursor: pointer; }
.navlist .sublist--hidden {
visibility: hidden;
max-height: 0; }
.errorDisplay {
background: rgba(180, 55, 87, 0.5);
padding: 10px;
}
.main {
grid-area: main;
background-color: #EAEDF1;
color: #394263; }
.main__cards {
display: block;
column-count: 1;
column-gap: 20px;
margin: 20px; }
.main-header {
position: relative;
display: flex;
justify-content: space-between;
height: 250px;
color: #FFF;
background-size: cover;
margin-bottom: 20px; }
.main-header__intro-wrapper {
display: flex;
flex: 1;
flex-direction: column;
align-items: center;
justify-content: space-between;
height: 160px;
padding: 12px 30px;
background: rgba(255, 255, 255, 0.12);
font-size: 26px;
letter-spacing: 1px; }
.main-header__welcome {
display: flex;
flex-direction: column;
align-items: center; }
.main-header__welcome-title {
margin-bottom: 8px;
font-size: 26px; }
.main-header__welcome-subtitle {
font-size: 18px; }
.quickview {
display: grid;
grid-auto-flow: column;
grid-gap: 60px; }
.quickview__item {
display: flex;
align-items: center;
flex-direction: column; }
.quickview__item-total {
margin-bottom: 2px;
font-size: 32px; }
.quickview__item-description {
font-size: 16px;
text-align: center; }
.main-overview {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(265px, 1fr));
grid-auto-rows: 94px;
grid-gap: 30px;
margin: 20px; }
.overviewcard {
display: flex;
align-items: center;
justify-content: space-between;
padding: 12px;
background-color: #FFF;
transform: translateY(0);
transition: all .3s; }
.overviewcard-icon {
display: flex;
align-items: center;
justify-content: center;
height: 60px;
width: 60px;
border-radius: 50%;
font-size: 21px;
color: #fff; }
.overviewcard-icon--document {
background-color: #e67e22; }
.overviewcard-icon--calendar {
background-color: #27ae60; }
.overviewcard-icon--mail {
background-color: #e74c3c; }
.overviewcard-icon--photo {
background-color: #af64cc; }
.overviewcard-description {
display: flex;
flex-direction: column;
align-items: center; }
.overviewcard-title {
font-size: 18px;
color: #1BBAE1;
margin: 0; }
.overviewcard-subtitle {
margin: 2px;
color: #777; }
.overviewcard:hover {
transform: translateY(-3px);
box-shadow: 0 5px 5px rgba(0, 0, 0, 0.1);
cursor: pointer; }
.card {
display: flex;
flex-direction: column;
width: 100%;
background-color: #fff;
margin-bottom: 20px;
-webkit-column-break-inside: avoid; }
.card__header {
display: flex;
align-items: center;
justify-content: space-between;
height: 50px;
background-color: #394263;
color: #FFF; }
.card__header-title {
margin: 0 20px;
font-size: 20px;
letter-spacing: 1.2px; }
.card__header-link {
font-size: 16px;
color: #1BBAE1;
letter-spacing: normal;
display: inline-block; }
.card__main {
position: relative;
padding-right: 20px;
background-color: #FFF; }
.card__main:after {
content: "";
position: absolute;
top: 0;
left: 120px;
bottom: 0;
width: 2px;
background-color: #f0f0f0; }
.card__secondary {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(100px, 1fr));
grid-auto-rows: 100px;
grid-gap: 25px;
padding: 20px;
background-color: #FFF; }
.card__photo {
background-size: cover;
background-repeat: no-repeat;
background-color: slategray;
transform: scale(1);
transition: transform .3s ease-in-out;
width: 100%;
height: 100%; }
.card__photo:hover {
transform: scale(1.1);
cursor: pointer; }
.card__photo-wrapper {
overflow: hidden; }
.card__row {
position: relative;
display: flex;
flex: 1;
margin: 15px 15px 15px; }
.card__icon {
position: absolute;
display: flex;
align-items: center;
justify-content: center;
content: "";
width: 30px;
height: 30px;
top: 0;
left: 121px;
transform: translateX(-50%);
border-radius: 50%;
color: #FFF;
background-color: #1BBAE1;
z-index: 1; }
.card__row:nth-child(even) .card__icon {
background-color: #e74c3c; }
.card__time {
display: flex;
flex: 1;
justify-content: flex-end;
max-width: 80px;
margin-left: 15px;
text-align: right;
font-size: 14px;
line-height: 2; }
.card__detail {
display: flex;
flex: 1;
flex-direction: column;
padding-left: 12px;
margin-left: 48px;
transform: translateX(0);
transition: all .3s; }
.card__detail:hover {
background-color: #f0f0f0;
transform: translateX(4px);
cursor: pointer; }
.card__source {
line-height: 1.8;
color: #1BBAE1; }
.card__note {
margin: 10px 0;
color: #777; }
.card--finance {
position: relative; }
.settings {
display: flex;
margin: 8px;
align-self: flex-start;
background-color: rgba(255, 255, 255, 0.5);
border: 1px solid rgba(0, 0, 0, 0.1);
border-radius: 2px; }
.settings__block {
display: flex;
align-items: center;
justify-content: center;
padding: 4px;
color: #394263;
font-size: 11px; }
.settings__block:not(:last-child) {
border-right: 1px solid rgba(0, 0, 0, 0.1); }
.settings__icon {
padding: 0px 3px;
font-size: 12px; }
.settings__icon:hover {
background-color: rgba(255, 255, 255, 0.8);
cursor: pointer; }
.settings:hover {
background-color: #fff;
cursor: pointer; }
.documents {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(105px, 1fr));
grid-auto-rows: 214px;
grid-gap: 12px;
height: auto;
background-color: #FFF; }
.document {
display: flex;
align-items: center;
justify-content: center;
margin: 15px 0 0;
flex-direction: column; }
.document__img {
width: 105px;
height: 136px;
background-size: cover;
box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 3px 1px -2px rgba(0, 0, 0, 0.12), 0 1px 5px 0 rgba(0, 0, 0, 0.2);
cursor: pointer;
transition: transform .3s ease; }
.document__img:hover {
transform: translateY(-4px); }
.document__title {
margin: 8px 0 2px;
color: #777; }
.document__date {
font-size: 10px; }
#chartdiv {
width: 100%;
height: 300px;
font-size: 11px;
min-width: 0; }
.footer {
grid-area: footer;
display: flex;
align-items: center;
justify-content: space-between;
padding: 0 16px;
color: #777;
background-color: #FFF; }
.footer__copyright {
color: #1BBAE1; }
.footer__icon {
color: #e74c3c; }
.footer__signature {
color: #1BBAE1;
cursor: pointer;
font-weight: bold; }
@media only screen and (min-width: 46.875em) {
.grid {
display: grid;
grid-template-columns: 220px calc(100% - 220px);
grid-template-rows: 0px 1fr 50px;
grid-template-areas: 'sidenav header' 'sidenav main' 'sidenav footer';
height: 100vh; }
.grid__no-head {
display: grid;
grid-template-columns: 220px calc(100% - 220px);
grid-template-rows: 0px 1fr 0px;
grid-template-areas: 'sidenav header' 'sidenav main' 'sidenav footer';
height: calc(100%); }
.sidenav {
position: relative;
transform: translateX(0); }
.sidenav__brand-close {
visibility: hidden; }
.main-header__intro-wrapper {
padding: 0 30px; }
.header__menu {
display: none; }
.header__search {
margin-left: 20px; }
.header__avatar {
width: 40px;
height: 40px; } }
@media only screen and (min-width: 65.625em) {
.main__cards {
column-count: 2; }
.main-header__intro-wrapper {
flex-direction: row; }
.main-header__welcome {
align-items: flex-start; } }
table {
border-spacing: 1;
border-collapse: collapse;
background: white;
overflow: hidden;
width: 100%;
margin: 0 auto;
position: relative;
}
table * {
position: relative;
}
table td, table th {
padding-left: 8px;
}
table thead tr {
height: 50px;
background: #394263;
}
table tbody tr {
height: 50px;
}
table tbody tr:last-child {
border: 0;
}
table td, table th {
text-align: left;
}
table td.l, table th.l {
text-align: right;
}
table td.c, table th.c {
text-align: center;
}
table td.r, table th.r {
text-align: center;
}
.table100-head th{
color: #fff;
line-height: 1.2;
font-weight: unset;
}
tbody tr:nth-child(even) {
background-color: #f5f5f5;
}
tbody tr {
font-size: 15px;
color: #808080;
line-height: 1.2;
font-weight: unset;
}
tbody tr:hover {
color: #555555;
background-color: #f5f5f5;
cursor: pointer;
}
.column1 {
padding-left: 40px;
width: 280px;
}
.column2 {
width: 280px;
}
.column3 {
width: 280px;
}
.column4 {
width: 280px;
}
.column5 {
width: 170px;
text-align: right;
}
.column6 {
width: 222px;
text-align: right;
padding-right: 62px;
}
@media screen and (max-width: 1050px) {
table {
display: block;
}
table > *, table tr, table td, table th {
display: block;
}
table thead {
display: none;
}
table tbody tr {
height: auto;
padding: 37px 0;
}
table tbody tr td {
padding-left: 40% !important;
margin-bottom: 24px;
}
table tbody tr td:last-child {
margin-bottom: 0;
}
table tbody tr td:before {
font-size: 14px;
color: #999999;
line-height: 1.2;
font-weight: unset;
position: absolute;
width: 40%;
left: 30px;
top: 0;
}
table.t1 tbody tr td:nth-child(1):before {
content: "Address";
}
table.t1 tbody tr td:nth-child(2):before {
content: "Balance";
}
table.t1 tbody tr td:nth-child(3):before {
content: "Unconfirmed";
}
table.t1 tbody tr td:nth-child(4):before {
content: "Total";
}
table.t2 tbody tr td:nth-child(1):before {
content: "Type";
}
table.t2 tbody tr td:nth-child(2):before {
content: "Value";
}
table.t3 tbody tr:nth-child(1) td:nth-child(1) {
display: none;
}
table.t3 tbody tr:nth-child(1) td:nth-child(2):before {
content: "To";
}
table.t3 tbody tr:nth-child(2) td:nth-child(1){
display: none;
}
table.t3 tbody tr:nth-child(2) td:nth-child(2):before {
content: "Amount";
}
.column4,
.column5,
.column6 {
text-align: left;
}
.column4,
.column5,
.column6,
.column1,
.column2,
.column3 {
width: 100%;
}
tbody tr {
font-size: 14px;
}
}
@media (max-width: 576px) {
.container-table100 {
padding-left: 15px;
padding-right: 15px;
}
}
.qtip {
display: inline-block;
position: relative;
cursor: pointer;
color: #3bb4e5;
border-bottom: 0.05em dotted #3bb4e5;
box-sizing: border-box;
font-style: normal;
transition:all .25s ease-in-out;
z-index: 10000
}
.qtip:hover {color:#069;border-bottom:0.05em dotted #069}
/*the tip*/
.qtip:before {
content: attr(data-tip);
font-size: 14px;
position: absolute;
background: rgba(10, 20, 30, 0.85);
color: #fff;
line-height: 1.2em;
padding: 0.5em;
font-style: normal;
box-shadow: 0 1px 3px rgba(0, 0, 0, 0.3);
min-width: 120px;
text-align: center;
opacity: 0;
visibility: hidden;
transition: all .3s ease-in-out;
text-shadow: 1px 1px 1px rgba(0, 0, 0, 0.5);
font-family: sans-serif;
letter-spacing: 0;
font-weight: 600
}
.qtip:after {
width: 0;
height: 0;
border-style: solid;
content: '';
position: absolute;
opacity: 0;
visibility: hidden;
transition: all .3s ease-in-out
}
.qtip:hover:before,
.qtip:hover:after {
visibility: visible;
opacity: 1
}
/*top*/
.qtip.tip-top:before {
top: 0;
left: 50%;
transform: translate(-50%, calc(-100% - 8px));
box-sizing: border-box;
border-radius: 3px;
}
.qtip.tip-top:after {
border-width: 8px 8px 0 8px;
border-color: rgba(10, 20, 30, 0.85) transparent transparent transparent;
top: -8px;
left: 50%;
transform: translate(-50%, 0);
}
/*bottom*/
.qtip.tip-bottom:before {
bottom: 0;
left: 50%;
transform: translate(-50%, calc(100% + 8px));
box-sizing: border-box;
border-radius: 3px;
}
.qtip.tip-bottom:after {
border-width: 0 8px 8px 8px;
border-color: transparent transparent rgba(10, 20, 30, 0.85) transparent;
bottom: -8px;
left: 50%;
transform: translate(-50%, 0);
}
/*left*/
.qtip.tip-left:before {
left: 0;
top: 50%;
transform: translate(calc(-100% - 8px), -50%);
box-sizing: border-box;
border-radius: 3px;
}
.qtip.tip-left:after {
border-width: 8px 0 8px 8px;
border-color: transparent transparent transparent rgba(10, 20, 30, 0.85);
left: -8px;
top: 50%;
transform: translate(0, -50%);
}
/*right*/
.qtip.tip-right:before {
right: 0;
top: 50%;
transform: translate(calc(100% + 8px), -50%);
box-sizing: border-box;
border-radius: 3px;
}
.qtip.tip-right:after {
border-width: 8px 8px 8px 0;
border-color: transparent rgba(10, 20, 30, 0.85) transparent transparent;
right: -8px;
top: 50%;
transform: translate(0, -50%);
}
+24
View File
@@ -0,0 +1,24 @@
/// <reference path='./type.d.ts'/>
import './index.scss'
import angular = require('angular')
import uiRouter from '@uirouter/angularjs'
import router from './config/routes.config'
import components from './components'
import views from './views'
import filters from './filters'
angular
.module('app', [
uiRouter,
components,
views,
filters
])
.config(router)
angular.bootstrap(document, ['app'])
if (module.hot) {
module.hot.accept()
}
View File
+7
View File
@@ -0,0 +1,7 @@
class Log {
info(info) {
alert(info)
}
}
export default Log
+8
View File
@@ -0,0 +1,8 @@
declare module '*.html' {
const content: string
export default content
}
declare function require(arg: string): any
declare var module
+2
View File
@@ -0,0 +1,2 @@
declare const _default: string;
export default _default;
+7
View File
@@ -0,0 +1,7 @@
import angular = require('angular')
import TodoList from './todo-list'
export default angular
.module('wallets', [])
.component('todolist', TodoList)
.name
+13
View File
@@ -0,0 +1,13 @@
export default class TodoListCtrl {
private bip32;
static $inject: string[];
todos: any[];
id: number;
todo: string;
todoTypes: string[];
visibleType: string;
constructor(bip32: any);
handleSubmit(e: any): void;
toggleTodo(curTodo: any): void;
toggleType(type: string): void;
}
+23
View File
@@ -0,0 +1,23 @@
export default class TodoListCtrl {
static $inject = ['bip32']
todos = []
id = 0
todo: string
todoTypes = ['All', 'Todo', 'Done']
visibleType = 'All'
constructor(private bip32) {
}
handleSubmit(e): void {
if (e.keyCode !== 13) {
return
}
}
toggleType(type: string): void {
this.visibleType = type
}
}
+7
View File
@@ -0,0 +1,7 @@
import ctrl from './controller';
import './index.scss';
declare const _default: {
template: string;
controller: typeof ctrl;
};
export default _default;
+9
View File
@@ -0,0 +1,9 @@
<div class="todo-list">
<ul class="todos-type">
<li ng-repeat="type in $ctrl.todoTypes" ng-click="$ctrl.toggleType(type)" ng-class="{active:type===$ctrl.visibleType}">{{ type }}</li>
</ul>
<input type="text" class="input" ng-model="$ctrl.todo" ng-keyup="$ctrl.handleSubmit($event)" />
<ul class="todos">
<li ng-repeat="todo in $ctrl.todos | todosVisible:$ctrl.visibleType" ng-click="$ctrl.toggleTodo(todo)" ng-style="{textDecoration: todo.complete ? 'line-through' : 'none'}">{{ todo.text }}</li>
</ul>
</div>
+38
View File
@@ -0,0 +1,38 @@
.todo-list {
.input {
box-sizing: border-box;
display: block;
width: 200px;
margin: 20px auto;
padding: 5px 8px;
background-color: #fff;
border: 1px solid #d9d9d9;
border-radius: 4px;
transition: all .3s;
}
@at-root {
.todos-type {
display: table;
margin: 0 auto;
li {
display: table-cell;
padding: 3px 8px;
cursor: pointer;
&:hover {
color: #108ee9;
}
&.active {
color: #108ee9;
}
}
}
.todos {
width: 200px;
margin: 0 auto;
li {
line-height: 1.8;
cursor: pointer;
}
}
}
}
+8
View File
@@ -0,0 +1,8 @@
import ctrl from './controller'
import html from './index.html'
import './index.scss'
export default {
template: html,
controller: ctrl
}
+6
View File
@@ -0,0 +1,6 @@
declare const _default: {
name: string;
url: string;
component: string;
};
export default _default;
+5
View File
@@ -0,0 +1,5 @@
export default {
name: 'todolist',
url: '/todolist',
component: 'todolist'
}