diff --git a/site/src/components/file-icon/icons/apache.svg b/site/src/components/file-icon/icons/apache.svg
new file mode 100644
index 0000000..796141e
--- /dev/null
+++ b/site/src/components/file-icon/icons/apache.svg
@@ -0,0 +1,63 @@
+
diff --git a/site/src/components/file-icon/icons/audio.svg b/site/src/components/file-icon/icons/audio.svg
new file mode 100644
index 0000000..49a6cf3
--- /dev/null
+++ b/site/src/components/file-icon/icons/audio.svg
@@ -0,0 +1,4 @@
+
diff --git a/site/src/components/file-icon/icons/c.svg b/site/src/components/file-icon/icons/c.svg
new file mode 100644
index 0000000..ffb7ab3
--- /dev/null
+++ b/site/src/components/file-icon/icons/c.svg
@@ -0,0 +1,7 @@
+
diff --git a/site/src/components/file-icon/icons/coffee.svg b/site/src/components/file-icon/icons/coffee.svg
new file mode 100644
index 0000000..1434fde
--- /dev/null
+++ b/site/src/components/file-icon/icons/coffee.svg
@@ -0,0 +1,19 @@
+
diff --git a/site/src/components/file-icon/icons/css.svg b/site/src/components/file-icon/icons/css.svg
new file mode 100644
index 0000000..8b66cdc
--- /dev/null
+++ b/site/src/components/file-icon/icons/css.svg
@@ -0,0 +1,6 @@
+
diff --git a/site/src/components/file-icon/icons/folder-active.svg b/site/src/components/file-icon/icons/folder-active.svg
new file mode 100644
index 0000000..e26942d
--- /dev/null
+++ b/site/src/components/file-icon/icons/folder-active.svg
@@ -0,0 +1,13 @@
+
diff --git a/site/src/components/file-icon/icons/folder.svg b/site/src/components/file-icon/icons/folder.svg
new file mode 100644
index 0000000..a1bf103
--- /dev/null
+++ b/site/src/components/file-icon/icons/folder.svg
@@ -0,0 +1,10 @@
+
diff --git a/site/src/components/file-icon/icons/font.svg b/site/src/components/file-icon/icons/font.svg
new file mode 100644
index 0000000..61c22df
--- /dev/null
+++ b/site/src/components/file-icon/icons/font.svg
@@ -0,0 +1,7 @@
+
diff --git a/site/src/components/file-icon/icons/git.svg b/site/src/components/file-icon/icons/git.svg
new file mode 100644
index 0000000..7f760fb
--- /dev/null
+++ b/site/src/components/file-icon/icons/git.svg
@@ -0,0 +1,10 @@
+
diff --git a/site/src/components/file-icon/icons/html.svg b/site/src/components/file-icon/icons/html.svg
new file mode 100644
index 0000000..72ff50b
--- /dev/null
+++ b/site/src/components/file-icon/icons/html.svg
@@ -0,0 +1,8 @@
+
diff --git a/site/src/components/file-icon/icons/image.svg b/site/src/components/file-icon/icons/image.svg
new file mode 100644
index 0000000..e183ffd
--- /dev/null
+++ b/site/src/components/file-icon/icons/image.svg
@@ -0,0 +1,5 @@
+
diff --git a/site/src/components/file-icon/icons/jade.svg b/site/src/components/file-icon/icons/jade.svg
new file mode 100644
index 0000000..6cad7fe
--- /dev/null
+++ b/site/src/components/file-icon/icons/jade.svg
@@ -0,0 +1,58 @@
+
diff --git a/site/src/components/file-icon/icons/js.svg b/site/src/components/file-icon/icons/js.svg
new file mode 100644
index 0000000..8cfa4b1
--- /dev/null
+++ b/site/src/components/file-icon/icons/js.svg
@@ -0,0 +1,13 @@
+
diff --git a/site/src/components/file-icon/icons/json.svg b/site/src/components/file-icon/icons/json.svg
new file mode 100644
index 0000000..02bc980
--- /dev/null
+++ b/site/src/components/file-icon/icons/json.svg
@@ -0,0 +1,20 @@
+
diff --git a/site/src/components/file-icon/icons/less.svg b/site/src/components/file-icon/icons/less.svg
new file mode 100644
index 0000000..441cafe
--- /dev/null
+++ b/site/src/components/file-icon/icons/less.svg
@@ -0,0 +1,30 @@
+
diff --git a/site/src/components/file-icon/icons/md.svg b/site/src/components/file-icon/icons/md.svg
new file mode 100644
index 0000000..9f056fd
--- /dev/null
+++ b/site/src/components/file-icon/icons/md.svg
@@ -0,0 +1,15 @@
+
diff --git a/site/src/components/file-icon/icons/php.svg b/site/src/components/file-icon/icons/php.svg
new file mode 100644
index 0000000..5a0dea2
--- /dev/null
+++ b/site/src/components/file-icon/icons/php.svg
@@ -0,0 +1,18 @@
+
diff --git a/site/src/components/file-icon/icons/pug.svg b/site/src/components/file-icon/icons/pug.svg
new file mode 100644
index 0000000..5d9f725
--- /dev/null
+++ b/site/src/components/file-icon/icons/pug.svg
@@ -0,0 +1,18 @@
+
+
diff --git a/site/src/components/file-icon/icons/random.svg b/site/src/components/file-icon/icons/random.svg
new file mode 100644
index 0000000..0d46b29
--- /dev/null
+++ b/site/src/components/file-icon/icons/random.svg
@@ -0,0 +1,8 @@
+
diff --git a/site/src/components/file-icon/icons/sass.svg b/site/src/components/file-icon/icons/sass.svg
new file mode 100644
index 0000000..7a336ff
--- /dev/null
+++ b/site/src/components/file-icon/icons/sass.svg
@@ -0,0 +1,28 @@
+
diff --git a/site/src/components/file-icon/icons/sql.svg b/site/src/components/file-icon/icons/sql.svg
new file mode 100644
index 0000000..21335b3
--- /dev/null
+++ b/site/src/components/file-icon/icons/sql.svg
@@ -0,0 +1,13 @@
+
diff --git a/site/src/components/file-icon/icons/stylus.svg b/site/src/components/file-icon/icons/stylus.svg
new file mode 100644
index 0000000..0d69e13
--- /dev/null
+++ b/site/src/components/file-icon/icons/stylus.svg
@@ -0,0 +1,21 @@
+
diff --git a/site/src/components/file-icon/icons/svg.svg b/site/src/components/file-icon/icons/svg.svg
new file mode 100644
index 0000000..71920e3
--- /dev/null
+++ b/site/src/components/file-icon/icons/svg.svg
@@ -0,0 +1,15 @@
+
diff --git a/site/src/components/file-icon/icons/twig.svg b/site/src/components/file-icon/icons/twig.svg
new file mode 100644
index 0000000..603c574
--- /dev/null
+++ b/site/src/components/file-icon/icons/twig.svg
@@ -0,0 +1,7 @@
+
diff --git a/site/src/components/file-icon/icons/txt.svg b/site/src/components/file-icon/icons/txt.svg
new file mode 100644
index 0000000..6083e1a
--- /dev/null
+++ b/site/src/components/file-icon/icons/txt.svg
@@ -0,0 +1,9 @@
+
diff --git a/site/src/components/file-icon/icons/video.svg b/site/src/components/file-icon/icons/video.svg
new file mode 100644
index 0000000..f300a82
--- /dev/null
+++ b/site/src/components/file-icon/icons/video.svg
@@ -0,0 +1,4 @@
+
diff --git a/site/src/components/file-icon/icons/xml.svg b/site/src/components/file-icon/icons/xml.svg
new file mode 100644
index 0000000..56fe4a5
--- /dev/null
+++ b/site/src/components/file-icon/icons/xml.svg
@@ -0,0 +1,8 @@
+
diff --git a/site/src/components/file-icon/icons/yml.svg b/site/src/components/file-icon/icons/yml.svg
new file mode 100644
index 0000000..915e769
--- /dev/null
+++ b/site/src/components/file-icon/icons/yml.svg
@@ -0,0 +1,9 @@
+
diff --git a/site/src/components/file-icon/icons/zip.svg b/site/src/components/file-icon/icons/zip.svg
new file mode 100644
index 0000000..1c0af6e
--- /dev/null
+++ b/site/src/components/file-icon/icons/zip.svg
@@ -0,0 +1,10 @@
+
diff --git a/site/src/components/file-icon/index.vue b/site/src/components/file-icon/index.vue
new file mode 100644
index 0000000..a6fe49a
--- /dev/null
+++ b/site/src/components/file-icon/index.vue
@@ -0,0 +1,3 @@
+
+
+
\ No newline at end of file
diff --git a/site/src/components/file-icon/script.js b/site/src/components/file-icon/script.js
new file mode 100644
index 0000000..7786d4f
--- /dev/null
+++ b/site/src/components/file-icon/script.js
@@ -0,0 +1,61 @@
+export default
+{
+ name: 'file-icon',
+
+ data()
+ {
+ return {
+ test: require('./icons/' + 'apache' + '.svg')
+ }
+ },
+
+ props:
+ {
+ extension: { type: String, default: '' }
+ },
+
+ created()
+ {
+ this.icons = {
+ js: ['js'],
+ html: ['html', 'htm'],
+ sass: ['sass', 'scss'],
+ less: ['less'],
+ stylus: ['stylus', 'styl'],
+ css: ['css'],
+ php: ['php'],
+ json: ['json'],
+ jade: ['jade'],
+ pug: ['pug'],
+ md: ['md'],
+ sql: ['sql'],
+ apache: ['htaccess', 'htpasswd'],
+ yml: ['yml'],
+ svg: ['svg'],
+ font: ['eot', 'ttf', 'woff', 'woff2'],
+ image: ['jpeg', 'jpg', 'tiff', 'gif', 'bmp', 'png', 'webp'],
+ video: ['mpeg', 'mpg', 'mp4', 'amv', 'wmv', 'mov', 'avi', 'ogv', 'mkv', 'webm'],
+ audio: ['mp3', 'wav', 'ogg', 'raw'],
+ zip: ['zip', 'rar', '7z', 'gz'],
+ txt: ['txt'],
+ coffee: ['coffee'],
+ git: ['gitignore', 'gitkeep'],
+ xml: ['xml'],
+ twig: ['twig'],
+ c: ['c', 'h']
+ }
+
+ this.icon = 'random'
+
+ for(const iconKey in this.icons)
+ {
+ const iconExtensions = this.icons[ iconKey ]
+ if(iconExtensions.indexOf(this.extension) !== -1)
+ {
+ this.icon = iconKey
+ }
+ }
+
+ this.iconPath = require(`./icons/${this.icon}.svg`)
+ }
+}
\ No newline at end of file
diff --git a/site/src/components/file-icon/style.styl b/site/src/components/file-icon/style.styl
new file mode 100644
index 0000000..e69de29
diff --git a/site/src/components/file-icon/template.html b/site/src/components/file-icon/template.html
new file mode 100644
index 0000000..b01c555
--- /dev/null
+++ b/site/src/components/file-icon/template.html
@@ -0,0 +1,3 @@
+
+
+
\ No newline at end of file
diff --git a/site/src/components/files-tree-file/script.js b/site/src/components/files-tree-file/script.js
index 87dcb24..dc735df 100644
--- a/site/src/components/files-tree-file/script.js
+++ b/site/src/components/files-tree-file/script.js
@@ -1,17 +1,20 @@
+import FileIcon from '@/components/file-icon/'
+
export default
{
name: 'files-tree-file',
+ components:
+ {
+ FileIcon
+ },
+
props:
{
depth: { type: Number, default: 0 },
content: { type: Object }
},
- created()
- {
- },
-
methods:
{
onNameClick()
diff --git a/site/src/components/files-tree-file/style.styl b/site/src/components/files-tree-file/style.styl
index e69de29..c650010 100644
--- a/site/src/components/files-tree-file/style.styl
+++ b/site/src/components/files-tree-file/style.styl
@@ -0,0 +1,9 @@
+.icon
+ display inline-block
+ width 12px
+ height 12px
+
+ img
+ display inline-block
+ width 100%
+ height 100%
\ No newline at end of file
diff --git a/site/src/components/files-tree-file/template.html b/site/src/components/files-tree-file/template.html
index 98e4133..6d68169 100644
--- a/site/src/components/files-tree-file/template.html
+++ b/site/src/components/files-tree-file/template.html
@@ -1,5 +1,8 @@