2020-11-11 00:00:54 +01:00
( function ( l , r ) { if ( l . getElementById ( 'livereloadscript' ) ) return ; r = l . createElement ( 'script' ) ; r . async = 1 ; r . src = '//' + ( window . location . host || 'localhost' ) . split ( ':' ) [ 0 ] + ':5000/livereload.js?snipver=1' ; r . id = 'livereloadscript' ; l . getElementsByTagName ( 'head' ) [ 0 ] . appendChild ( r ) } ) ( window . document ) ;
var app = ( function ( ) {
'use strict' ;
function noop ( ) { }
const identity = x => x ;
function assign ( tar , src ) {
// @ts-ignore
for ( const k in src )
tar [ k ] = src [ k ] ;
return tar ;
}
function add _location ( element , file , line , column , char ) {
element . _ _svelte _meta = {
loc : { file , line , column , char }
} ;
}
function run ( fn ) {
return fn ( ) ;
}
function blank _object ( ) {
return Object . create ( null ) ;
}
function run _all ( fns ) {
fns . forEach ( run ) ;
}
function is _function ( thing ) {
return typeof thing === 'function' ;
}
function safe _not _equal ( a , b ) {
return a != a ? b == b : a !== b || ( ( a && typeof a === 'object' ) || typeof a === 'function' ) ;
}
function is _empty ( obj ) {
return Object . keys ( obj ) . length === 0 ;
}
function create _slot ( definition , ctx , $$scope , fn ) {
if ( definition ) {
const slot _ctx = get _slot _context ( definition , ctx , $$scope , fn ) ;
return definition [ 0 ] ( slot _ctx ) ;
}
}
function get _slot _context ( definition , ctx , $$scope , fn ) {
return definition [ 1 ] && fn
? assign ( $$scope . ctx . slice ( ) , definition [ 1 ] ( fn ( ctx ) ) )
: $$scope . ctx ;
}
function get _slot _changes ( definition , $$scope , dirty , fn ) {
if ( definition [ 2 ] && fn ) {
const lets = definition [ 2 ] ( fn ( dirty ) ) ;
if ( $$scope . dirty === undefined ) {
return lets ;
}
if ( typeof lets === 'object' ) {
const merged = [ ] ;
const len = Math . max ( $$scope . dirty . length , lets . length ) ;
for ( let i = 0 ; i < len ; i += 1 ) {
merged [ i ] = $$scope . dirty [ i ] | lets [ i ] ;
}
return merged ;
}
return $$scope . dirty | lets ;
}
return $$scope . dirty ;
}
function update _slot ( slot , slot _definition , ctx , $$scope , dirty , get _slot _changes _fn , get _slot _context _fn ) {
const slot _changes = get _slot _changes ( slot _definition , $$scope , dirty , get _slot _changes _fn ) ;
if ( slot _changes ) {
const slot _context = get _slot _context ( slot _definition , ctx , $$scope , get _slot _context _fn ) ;
slot . p ( slot _context , slot _changes ) ;
}
}
function action _destroyer ( action _result ) {
return action _result && is _function ( action _result . destroy ) ? action _result . destroy : noop ;
}
const is _client = typeof window !== 'undefined' ;
let now = is _client
? ( ) => window . performance . now ( )
: ( ) => Date . now ( ) ;
let raf = is _client ? cb => requestAnimationFrame ( cb ) : noop ;
const tasks = new Set ( ) ;
function run _tasks ( now ) {
tasks . forEach ( task => {
if ( ! task . c ( now ) ) {
tasks . delete ( task ) ;
task . f ( ) ;
}
} ) ;
if ( tasks . size !== 0 )
raf ( run _tasks ) ;
}
/ * *
* Creates a new task that runs on each raf frame
* until it returns a falsy value or is aborted
* /
function loop ( callback ) {
let task ;
if ( tasks . size === 0 )
raf ( run _tasks ) ;
return {
promise : new Promise ( fulfill => {
tasks . add ( task = { c : callback , f : fulfill } ) ;
} ) ,
abort ( ) {
tasks . delete ( task ) ;
}
} ;
}
function append ( target , node ) {
target . appendChild ( node ) ;
}
function insert ( target , node , anchor ) {
target . insertBefore ( node , anchor || null ) ;
}
function detach ( node ) {
node . parentNode . removeChild ( node ) ;
}
function destroy _each ( iterations , detaching ) {
for ( let i = 0 ; i < iterations . length ; i += 1 ) {
if ( iterations [ i ] )
iterations [ i ] . d ( detaching ) ;
}
}
function element ( name ) {
return document . createElement ( name ) ;
}
function svg _element ( name ) {
return document . createElementNS ( 'http://www.w3.org/2000/svg' , name ) ;
}
function text ( data ) {
return document . createTextNode ( data ) ;
}
function space ( ) {
return text ( ' ' ) ;
}
function empty ( ) {
return text ( '' ) ;
}
function listen ( node , event , handler , options ) {
node . addEventListener ( event , handler , options ) ;
return ( ) => node . removeEventListener ( event , handler , options ) ;
}
2020-11-11 23:45:52 +01:00
function prevent _default ( fn ) {
return function ( event ) {
event . preventDefault ( ) ;
// @ts-ignore
return fn . call ( this , event ) ;
} ;
}
2020-11-11 00:00:54 +01:00
function stop _propagation ( fn ) {
return function ( event ) {
event . stopPropagation ( ) ;
// @ts-ignore
return fn . call ( this , event ) ;
} ;
}
function attr ( node , attribute , value ) {
if ( value == null )
node . removeAttribute ( attribute ) ;
else if ( node . getAttribute ( attribute ) !== value )
node . setAttribute ( attribute , value ) ;
}
function children ( element ) {
return Array . from ( element . childNodes ) ;
}
2020-11-17 23:39:27 +01:00
function set _input _value ( input , value ) {
input . value = value == null ? '' : value ;
}
2020-11-11 00:00:54 +01:00
function set _style ( node , key , value , important ) {
node . style . setProperty ( key , value , important ? 'important' : '' ) ;
}
function toggle _class ( element , name , toggle ) {
element . classList [ toggle ? 'add' : 'remove' ] ( name ) ;
}
function custom _event ( type , detail ) {
const e = document . createEvent ( 'CustomEvent' ) ;
e . initCustomEvent ( type , false , false , detail ) ;
return e ;
}
const active _docs = new Set ( ) ;
let active = 0 ;
// https://github.com/darkskyapp/string-hash/blob/master/index.js
function hash ( str ) {
let hash = 5381 ;
let i = str . length ;
while ( i -- )
hash = ( ( hash << 5 ) - hash ) ^ str . charCodeAt ( i ) ;
return hash >>> 0 ;
}
function create _rule ( node , a , b , duration , delay , ease , fn , uid = 0 ) {
const step = 16.666 / duration ;
let keyframes = '{\n' ;
for ( let p = 0 ; p <= 1 ; p += step ) {
const t = a + ( b - a ) * ease ( p ) ;
keyframes += p * 100 + ` %{ ${ fn ( t , 1 - t ) } } \n ` ;
}
const rule = keyframes + ` 100% { ${ fn ( b , 1 - b ) } } \n } ` ;
const name = ` __svelte_ ${ hash ( rule ) } _ ${ uid } ` ;
const doc = node . ownerDocument ;
active _docs . add ( doc ) ;
const stylesheet = doc . _ _svelte _stylesheet || ( doc . _ _svelte _stylesheet = doc . head . appendChild ( element ( 'style' ) ) . sheet ) ;
const current _rules = doc . _ _svelte _rules || ( doc . _ _svelte _rules = { } ) ;
if ( ! current _rules [ name ] ) {
current _rules [ name ] = true ;
stylesheet . insertRule ( ` @keyframes ${ name } ${ rule } ` , stylesheet . cssRules . length ) ;
}
const animation = node . style . animation || '' ;
node . style . animation = ` ${ animation ? ` ${ animation } , ` : '' } ${ name } ${ duration } ms linear ${ delay } ms 1 both ` ;
active += 1 ;
return name ;
}
function delete _rule ( node , name ) {
const previous = ( node . style . animation || '' ) . split ( ', ' ) ;
const next = previous . filter ( name
? anim => anim . indexOf ( name ) < 0 // remove specific animation
: anim => anim . indexOf ( '__svelte' ) === - 1 // remove all Svelte animations
) ;
const deleted = previous . length - next . length ;
if ( deleted ) {
node . style . animation = next . join ( ', ' ) ;
active -= deleted ;
if ( ! active )
clear _rules ( ) ;
}
}
function clear _rules ( ) {
raf ( ( ) => {
if ( active )
return ;
active _docs . forEach ( doc => {
const stylesheet = doc . _ _svelte _stylesheet ;
let i = stylesheet . cssRules . length ;
while ( i -- )
stylesheet . deleteRule ( i ) ;
doc . _ _svelte _rules = { } ;
} ) ;
active _docs . clear ( ) ;
} ) ;
}
let current _component ;
function set _current _component ( component ) {
current _component = component ;
}
function get _current _component ( ) {
if ( ! current _component )
throw new Error ( 'Function called outside component initialization' ) ;
return current _component ;
}
function onMount ( fn ) {
get _current _component ( ) . $$ . on _mount . push ( fn ) ;
}
function createEventDispatcher ( ) {
const component = get _current _component ( ) ;
return ( type , detail ) => {
const callbacks = component . $$ . callbacks [ type ] ;
if ( callbacks ) {
// TODO are there situations where events could be dispatched
// in a server (non-DOM) environment?
const event = custom _event ( type , detail ) ;
callbacks . slice ( ) . forEach ( fn => {
fn . call ( component , event ) ;
} ) ;
}
} ;
}
// TODO figure out if we still want to support
// shorthand events, or if we want to implement
// a real bubbling mechanism
function bubble ( component , event ) {
const callbacks = component . $$ . callbacks [ event . type ] ;
if ( callbacks ) {
callbacks . slice ( ) . forEach ( fn => fn ( event ) ) ;
}
}
const dirty _components = [ ] ;
const binding _callbacks = [ ] ;
const render _callbacks = [ ] ;
const flush _callbacks = [ ] ;
const resolved _promise = Promise . resolve ( ) ;
let update _scheduled = false ;
function schedule _update ( ) {
if ( ! update _scheduled ) {
update _scheduled = true ;
resolved _promise . then ( flush ) ;
}
}
function add _render _callback ( fn ) {
render _callbacks . push ( fn ) ;
}
let flushing = false ;
const seen _callbacks = new Set ( ) ;
function flush ( ) {
if ( flushing )
return ;
flushing = true ;
do {
// first, call beforeUpdate functions
// and update components
for ( let i = 0 ; i < dirty _components . length ; i += 1 ) {
const component = dirty _components [ i ] ;
set _current _component ( component ) ;
update ( component . $$ ) ;
}
set _current _component ( null ) ;
dirty _components . length = 0 ;
while ( binding _callbacks . length )
binding _callbacks . pop ( ) ( ) ;
// then, once components are updated, call
// afterUpdate functions. This may cause
// subsequent updates...
for ( let i = 0 ; i < render _callbacks . length ; i += 1 ) {
const callback = render _callbacks [ i ] ;
if ( ! seen _callbacks . has ( callback ) ) {
// ...so guard against infinite loops
seen _callbacks . add ( callback ) ;
callback ( ) ;
}
}
render _callbacks . length = 0 ;
} while ( dirty _components . length ) ;
while ( flush _callbacks . length ) {
flush _callbacks . pop ( ) ( ) ;
}
update _scheduled = false ;
flushing = false ;
seen _callbacks . clear ( ) ;
}
function update ( $$ ) {
if ( $$ . fragment !== null ) {
$$ . update ( ) ;
run _all ( $$ . before _update ) ;
const dirty = $$ . dirty ;
$$ . dirty = [ - 1 ] ;
$$ . fragment && $$ . fragment . p ( $$ . ctx , dirty ) ;
$$ . after _update . forEach ( add _render _callback ) ;
}
}
let promise ;
function wait ( ) {
if ( ! promise ) {
promise = Promise . resolve ( ) ;
promise . then ( ( ) => {
promise = null ;
} ) ;
}
return promise ;
}
function dispatch ( node , direction , kind ) {
node . dispatchEvent ( custom _event ( ` ${ direction ? 'intro' : 'outro' } ${ kind } ` ) ) ;
}
const outroing = new Set ( ) ;
let outros ;
function group _outros ( ) {
outros = {
r : 0 ,
c : [ ] ,
p : outros // parent group
} ;
}
function check _outros ( ) {
if ( ! outros . r ) {
run _all ( outros . c ) ;
}
outros = outros . p ;
}
function transition _in ( block , local ) {
if ( block && block . i ) {
outroing . delete ( block ) ;
block . i ( local ) ;
}
}
function transition _out ( block , local , detach , callback ) {
if ( block && block . o ) {
if ( outroing . has ( block ) )
return ;
outroing . add ( block ) ;
outros . c . push ( ( ) => {
outroing . delete ( block ) ;
if ( callback ) {
if ( detach )
block . d ( 1 ) ;
callback ( ) ;
}
} ) ;
block . o ( local ) ;
}
}
const null _transition = { duration : 0 } ;
function create _bidirectional _transition ( node , fn , params , intro ) {
let config = fn ( node , params ) ;
let t = intro ? 0 : 1 ;
let running _program = null ;
let pending _program = null ;
let animation _name = null ;
function clear _animation ( ) {
if ( animation _name )
delete _rule ( node , animation _name ) ;
}
function init ( program , duration ) {
const d = program . b - t ;
duration *= Math . abs ( d ) ;
return {
a : t ,
b : program . b ,
d ,
duration ,
start : program . start ,
end : program . start + duration ,
group : program . group
} ;
}
function go ( b ) {
const { delay = 0 , duration = 300 , easing = identity , tick = noop , css } = config || null _transition ;
const program = {
start : now ( ) + delay ,
b
} ;
if ( ! b ) {
// @ts-ignore todo: improve typings
program . group = outros ;
outros . r += 1 ;
}
if ( running _program || pending _program ) {
pending _program = program ;
}
else {
// if this is an intro, and there's a delay, we need to do
// an initial tick and/or apply CSS animation immediately
if ( css ) {
clear _animation ( ) ;
animation _name = create _rule ( node , t , b , duration , delay , easing , css ) ;
}
if ( b )
tick ( 0 , 1 ) ;
running _program = init ( program , duration ) ;
add _render _callback ( ( ) => dispatch ( node , b , 'start' ) ) ;
loop ( now => {
if ( pending _program && now > pending _program . start ) {
running _program = init ( pending _program , duration ) ;
pending _program = null ;
dispatch ( node , running _program . b , 'start' ) ;
if ( css ) {
clear _animation ( ) ;
animation _name = create _rule ( node , t , running _program . b , running _program . duration , 0 , easing , config . css ) ;
}
}
if ( running _program ) {
if ( now >= running _program . end ) {
tick ( t = running _program . b , 1 - t ) ;
dispatch ( node , running _program . b , 'end' ) ;
if ( ! pending _program ) {
// we're done
if ( running _program . b ) {
// intro — we can tidy up immediately
clear _animation ( ) ;
}
else {
// outro — needs to be coordinated
if ( ! -- running _program . group . r )
run _all ( running _program . group . c ) ;
}
}
running _program = null ;
}
else if ( now >= running _program . start ) {
const p = now - running _program . start ;
t = running _program . a + running _program . d * easing ( p / running _program . duration ) ;
tick ( t , 1 - t ) ;
}
}
return ! ! ( running _program || pending _program ) ;
} ) ;
}
}
return {
run ( b ) {
if ( is _function ( config ) ) {
wait ( ) . then ( ( ) => {
// @ts-ignore
config = config ( ) ;
go ( b ) ;
} ) ;
}
else {
go ( b ) ;
}
} ,
end ( ) {
clear _animation ( ) ;
running _program = pending _program = null ;
}
} ;
}
const globals = ( typeof window !== 'undefined'
? window
: typeof globalThis !== 'undefined'
? globalThis
: global ) ;
function create _component ( block ) {
block && block . c ( ) ;
}
function mount _component ( component , target , anchor ) {
const { fragment , on _mount , on _destroy , after _update } = component . $$ ;
fragment && fragment . m ( target , anchor ) ;
// onMount happens before the initial afterUpdate
add _render _callback ( ( ) => {
const new _on _destroy = on _mount . map ( run ) . filter ( is _function ) ;
if ( on _destroy ) {
on _destroy . push ( ... new _on _destroy ) ;
}
else {
// Edge case - component was destroyed immediately,
// most likely as a result of a binding initialising
run _all ( new _on _destroy ) ;
}
component . $$ . on _mount = [ ] ;
} ) ;
after _update . forEach ( add _render _callback ) ;
}
function destroy _component ( component , detaching ) {
const $$ = component . $$ ;
if ( $$ . fragment !== null ) {
run _all ( $$ . on _destroy ) ;
$$ . fragment && $$ . fragment . d ( detaching ) ;
// TODO null out other refs, including component.$$ (but need to
// preserve final state?)
$$ . on _destroy = $$ . fragment = null ;
$$ . ctx = [ ] ;
}
}
function make _dirty ( component , i ) {
if ( component . $$ . dirty [ 0 ] === - 1 ) {
dirty _components . push ( component ) ;
schedule _update ( ) ;
component . $$ . dirty . fill ( 0 ) ;
}
component . $$ . dirty [ ( i / 31 ) | 0 ] |= ( 1 << ( i % 31 ) ) ;
}
function init ( component , options , instance , create _fragment , not _equal , props , dirty = [ - 1 ] ) {
const parent _component = current _component ;
set _current _component ( component ) ;
const prop _values = options . props || { } ;
const $$ = component . $$ = {
fragment : null ,
ctx : null ,
// state
props ,
update : noop ,
not _equal ,
bound : blank _object ( ) ,
// lifecycle
on _mount : [ ] ,
on _destroy : [ ] ,
before _update : [ ] ,
after _update : [ ] ,
context : new Map ( parent _component ? parent _component . $$ . context : [ ] ) ,
// everything else
callbacks : blank _object ( ) ,
dirty ,
skip _bound : false
} ;
let ready = false ;
$$ . ctx = instance
? instance ( component , prop _values , ( i , ret , ... rest ) => {
const value = rest . length ? rest [ 0 ] : ret ;
if ( $$ . ctx && not _equal ( $$ . ctx [ i ] , $$ . ctx [ i ] = value ) ) {
if ( ! $$ . skip _bound && $$ . bound [ i ] )
$$ . bound [ i ] ( value ) ;
if ( ready )
make _dirty ( component , i ) ;
}
return ret ;
} )
: [ ] ;
$$ . update ( ) ;
ready = true ;
run _all ( $$ . before _update ) ;
// `false` as a special case of no DOM component
$$ . fragment = create _fragment ? create _fragment ( $$ . ctx ) : false ;
if ( options . target ) {
if ( options . hydrate ) {
const nodes = children ( options . target ) ;
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
$$ . fragment && $$ . fragment . l ( nodes ) ;
nodes . forEach ( detach ) ;
}
else {
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
$$ . fragment && $$ . fragment . c ( ) ;
}
if ( options . intro )
transition _in ( component . $$ . fragment ) ;
mount _component ( component , options . target , options . anchor ) ;
flush ( ) ;
}
set _current _component ( parent _component ) ;
}
class SvelteComponent {
$destroy ( ) {
destroy _component ( this , 1 ) ;
this . $destroy = noop ;
}
$on ( type , callback ) {
const callbacks = ( this . $$ . callbacks [ type ] || ( this . $$ . callbacks [ type ] = [ ] ) ) ;
callbacks . push ( callback ) ;
return ( ) => {
const index = callbacks . indexOf ( callback ) ;
if ( index !== - 1 )
callbacks . splice ( index , 1 ) ;
} ;
}
$set ( $$props ) {
if ( this . $$set && ! is _empty ( $$props ) ) {
this . $$ . skip _bound = true ;
this . $$set ( $$props ) ;
this . $$ . skip _bound = false ;
}
}
}
function dispatch _dev ( type , detail ) {
document . dispatchEvent ( custom _event ( type , Object . assign ( { version : '3.29.6' } , detail ) ) ) ;
}
function append _dev ( target , node ) {
dispatch _dev ( 'SvelteDOMInsert' , { target , node } ) ;
append ( target , node ) ;
}
function insert _dev ( target , node , anchor ) {
dispatch _dev ( 'SvelteDOMInsert' , { target , node , anchor } ) ;
insert ( target , node , anchor ) ;
}
function detach _dev ( node ) {
dispatch _dev ( 'SvelteDOMRemove' , { node } ) ;
detach ( node ) ;
}
function listen _dev ( node , event , handler , options , has _prevent _default , has _stop _propagation ) {
const modifiers = options === true ? [ 'capture' ] : options ? Array . from ( Object . keys ( options ) ) : [ ] ;
if ( has _prevent _default )
modifiers . push ( 'preventDefault' ) ;
if ( has _stop _propagation )
modifiers . push ( 'stopPropagation' ) ;
dispatch _dev ( 'SvelteDOMAddEventListener' , { node , event , handler , modifiers } ) ;
const dispose = listen ( node , event , handler , options ) ;
return ( ) => {
dispatch _dev ( 'SvelteDOMRemoveEventListener' , { node , event , handler , modifiers } ) ;
dispose ( ) ;
} ;
}
function attr _dev ( node , attribute , value ) {
attr ( node , attribute , value ) ;
if ( value == null )
dispatch _dev ( 'SvelteDOMRemoveAttribute' , { node , attribute } ) ;
else
dispatch _dev ( 'SvelteDOMSetAttribute' , { node , attribute , value } ) ;
}
function set _data _dev ( text , data ) {
data = '' + data ;
if ( text . wholeText === data )
return ;
dispatch _dev ( 'SvelteDOMSetData' , { node : text , data } ) ;
text . data = data ;
}
function validate _each _argument ( arg ) {
if ( typeof arg !== 'string' && ! ( arg && typeof arg === 'object' && 'length' in arg ) ) {
let msg = '{#each} only iterates over array-like objects.' ;
if ( typeof Symbol === 'function' && arg && Symbol . iterator in arg ) {
msg += ' You can use a spread to convert this iterable into an array.' ;
}
throw new Error ( msg ) ;
}
}
function validate _slots ( name , slot , keys ) {
for ( const slot _key of Object . keys ( slot ) ) {
if ( ! ~ keys . indexOf ( slot _key ) ) {
console . warn ( ` < ${ name } > received an unexpected slot " ${ slot _key } ". ` ) ;
}
}
}
class SvelteComponentDev extends SvelteComponent {
constructor ( options ) {
if ( ! options || ( ! options . target && ! options . $$inline ) ) {
throw new Error ( "'target' is a required option" ) ;
}
super ( ) ;
}
$destroy ( ) {
super . $destroy ( ) ;
this . $destroy = ( ) => {
console . warn ( 'Component was already destroyed' ) ; // eslint-disable-line no-console
} ;
}
$capture _state ( ) { }
$inject _state ( ) { }
}
/* src/util/Formatting.svelte generated by Svelte v3.29.6 */
2020-11-17 23:39:27 +01:00
const formatNumber = ( amt , precision ) => {
if ( precision < 3 ) {
precision = 3 ;
}
if ( amt >= 1000000 ) {
return ( amt / 1000000 ) . toPrecision ( precision ) + "M" ;
} else if ( amt >= 1000 ) {
return ( amt / 1000 ) . toPrecision ( precision ) + "k" ;
}
return amt ;
} ;
2020-11-11 00:00:54 +01:00
const formatThousands = x => {
return x . toString ( ) . replace ( /\B(?=(\d{3})+(?!\d))/g , " " ) ;
} ;
const formatDataVolume = ( amt , precision ) => {
if ( precision < 3 ) {
precision = 3 ;
}
if ( amt >= 1000000000000000000 ) {
return ( amt / 1000000000000000000 ) . toPrecision ( precision ) + " EB" ;
} else if ( amt >= 1000000000000000 ) {
return ( amt / 1000000000000000 ) . toPrecision ( precision ) + " PB" ;
} else if ( amt >= 1000000000000 ) {
return ( amt / 1000000000000 ) . toPrecision ( precision ) + " TB" ;
} else if ( amt >= 1000000000 ) {
return ( amt / 1000000000 ) . toPrecision ( precision ) + " GB" ;
} else if ( amt >= 1000000 ) {
return ( amt / 1000000 ) . toPrecision ( precision ) + " MB" ;
} else if ( amt >= 1000 ) {
return ( amt / 1000 ) . toPrecision ( precision ) + " kB" ;
}
return amt + " B" ;
} ;
const formatDate = ( date , hours , minutes , seconds ) => {
if ( ! ( date instanceof Date ) ) {
date = new Date ( date ) ;
}
let dateStr = date . getFullYear ( ) + "-" + ( "00" + ( date . getMonth ( ) + 1 ) ) . slice ( - 2 ) + "-" + ( "00" + date . getDate ( ) ) . slice ( - 2 ) ;
if ( hours ) {
dateStr += " " + ( "00" + date . getHours ( ) ) . slice ( - 2 ) ;
}
if ( minutes ) {
dateStr += ":" + ( "00" + date . getMinutes ( ) ) . slice ( - 2 ) ;
}
if ( seconds ) {
dateStr += ":" + ( "00" + date . getMinutes ( ) ) . slice ( - 2 ) ;
}
return dateStr ;
} ;
2020-11-17 23:39:27 +01:00
/* src/filesystem/FilesystemAPI.svelte generated by Svelte v3.29.6 */
const fs _create _directory = ( bucket , path , dir _name ) => {
if ( ! path . startsWith ( "/" ) ) {
path = "/" + path ;
}
let form = new FormData ( ) ;
form . append ( "type" , "dir" ) ;
return fetch ( window . api _endpoint + "/filesystem/" + bucket + encodeURIComponent ( path + "/" + dir _name ) , { method : "POST" , body : form } ) . then ( resp => {
if ( resp . status >= 400 ) {
throw new Error ( resp . text ( ) ) ;
}
} ) ;
} ;
const fs _get _node = ( bucket , path ) => {
if ( ! path . startsWith ( "/" ) ) {
path = "/" + path ;
}
return fetch ( window . api _endpoint + "/filesystem/" + bucket + encodeURIComponent ( path ) + "?stat" ) . then ( resp => {
if ( resp . status >= 400 ) {
throw new Error ( resp . text ( ) ) ;
}
return resp . json ( ) ;
} ) ;
} ;
const fs _get _file _url = ( bucket , path ) => {
if ( ! path . startsWith ( "/" ) ) {
path = "/" + path ;
}
return window . api _endpoint + "/filesystem/" + bucket + encodeURIComponent ( path ) ;
} ;
const fs _delete _node = ( bucket , path ) => {
if ( ! path . startsWith ( "/" ) ) {
path = "/" + path ;
}
return fetch ( window . api _endpoint + "/filesystem/" + bucket + encodeURIComponent ( path ) , { method : "DELETE" } ) . then ( resp => {
if ( resp . status >= 400 ) {
throw new Error ( resp . text ( ) ) ;
}
} ) ;
} ;
2020-11-11 00:00:54 +01:00
/* src/filesystem/Sharebar.svelte generated by Svelte v3.29.6 */
const file = "src/filesystem/Sharebar.svelte" ;
function create _fragment ( ctx ) {
let div ;
let t0 ;
let br ;
let t1 ;
let button0 ;
let t3 ;
let button1 ;
let t5 ;
let button2 ;
let t7 ;
let button3 ;
let t9 ;
let button4 ;
const block = {
c : function create ( ) {
div = element ( "div" ) ;
t0 = text ( "Share on:" ) ;
br = element ( "br" ) ;
t1 = space ( ) ;
button0 = element ( "button" ) ;
button0 . textContent = "E-Mail" ;
t3 = space ( ) ;
button1 = element ( "button" ) ;
button1 . textContent = "Reddit" ;
t5 = space ( ) ;
button2 = element ( "button" ) ;
button2 . textContent = "Twitter" ;
t7 = space ( ) ;
button3 = element ( "button" ) ;
button3 . textContent = "Facebook" ;
t9 = space ( ) ;
button4 = element ( "button" ) ;
button4 . textContent = "Tumblr" ;
add _location ( br , file , 8 , 10 , 230 ) ;
attr _dev ( button0 , "class" , "sharebar-button button_full_width" ) ;
attr _dev ( button0 , "onclick" , "window.open('mailto:please@set.address?subject=File%20on%20pixeldrain&body=' + window.location.href);" ) ;
add _location ( button0 , file , 9 , 1 , 237 ) ;
attr _dev ( button1 , "class" , "sharebar-button button_full_width" ) ;
attr _dev ( button1 , "onclick" , "window.open('https://www.reddit.com/submit?url=' + window.location.href);" ) ;
add _location ( button1 , file , 12 , 1 , 421 ) ;
attr _dev ( button2 , "class" , "sharebar-button button_full_width" ) ;
attr _dev ( button2 , "onclick" , "window.open('https://twitter.com/share?url=' + window.location.href);" ) ;
add _location ( button2 , file , 15 , 1 , 577 ) ;
attr _dev ( button3 , "class" , "sharebar-button button_full_width" ) ;
attr _dev ( button3 , "onclick" , "window.open('http://www.facebook.com/sharer.php?u=' + window.location.href);" ) ;
add _location ( button3 , file , 18 , 1 , 730 ) ;
attr _dev ( button4 , "class" , "sharebar-button button_full_width" ) ;
attr _dev ( button4 , "onclick" , "window.open('http://www.tumblr.com/share/link?url=' + window.location.href);" ) ;
add _location ( button4 , file , 21 , 1 , 891 ) ;
attr _dev ( div , "class" , "sharebar svelte-gnq1s2" ) ;
toggle _class ( div , "visible" , /*visible*/ ctx [ 0 ] ) ;
add _location ( div , file , 7 , 0 , 162 ) ;
} ,
l : function claim ( nodes ) {
throw new Error ( "options.hydrate only works if the component was compiled with the `hydratable: true` option" ) ;
} ,
m : function mount ( target , anchor ) {
insert _dev ( target , div , anchor ) ;
append _dev ( div , t0 ) ;
append _dev ( div , br ) ;
append _dev ( div , t1 ) ;
append _dev ( div , button0 ) ;
append _dev ( div , t3 ) ;
append _dev ( div , button1 ) ;
append _dev ( div , t5 ) ;
append _dev ( div , button2 ) ;
append _dev ( div , t7 ) ;
append _dev ( div , button3 ) ;
append _dev ( div , t9 ) ;
append _dev ( div , button4 ) ;
/*div_binding*/ ctx [ 4 ] ( div ) ;
} ,
p : function update ( ctx , [ dirty ] ) {
if ( dirty & /*visible*/ 1 ) {
toggle _class ( div , "visible" , /*visible*/ ctx [ 0 ] ) ;
}
} ,
i : noop ,
o : noop ,
d : function destroy ( detaching ) {
if ( detaching ) detach _dev ( div ) ;
/*div_binding*/ ctx [ 4 ] ( null ) ;
}
} ;
dispatch _dev ( "SvelteRegisterBlock" , {
block ,
id : create _fragment . name ,
type : "component" ,
source : "" ,
ctx
} ) ;
return block ;
}
function instance ( $$self , $$props , $$invalidate ) {
let { $$slots : slots = { } , $$scope } = $$props ;
validate _slots ( "Sharebar" , slots , [ ] ) ;
let sharebar ;
let { visible = false } = $$props ;
const setVisible = v => {
$$invalidate ( 0 , visible = v ) ;
} ;
const toggle = ( ) => {
setVisible ( ! visible ) ;
} ;
const writable _props = [ "visible" ] ;
Object . keys ( $$props ) . forEach ( key => {
if ( ! ~ writable _props . indexOf ( key ) && key . slice ( 0 , 2 ) !== "$$" ) console . warn ( ` <Sharebar> was created with unknown prop ' ${ key } ' ` ) ;
} ) ;
function div _binding ( $$value ) {
binding _callbacks [ $$value ? "unshift" : "push" ] ( ( ) => {
sharebar = $$value ;
$$invalidate ( 1 , sharebar ) ;
} ) ;
}
$$self . $$set = $$props => {
if ( "visible" in $$props ) $$invalidate ( 0 , visible = $$props . visible ) ;
} ;
$$self . $capture _state = ( ) => ( { sharebar , visible , setVisible , toggle } ) ;
$$self . $inject _state = $$props => {
if ( "sharebar" in $$props ) $$invalidate ( 1 , sharebar = $$props . sharebar ) ;
if ( "visible" in $$props ) $$invalidate ( 0 , visible = $$props . visible ) ;
} ;
if ( $$props && "$$inject" in $$props ) {
$$self . $inject _state ( $$props . $$inject ) ;
}
return [ visible , sharebar , setVisible , toggle , div _binding ] ;
}
class Sharebar extends SvelteComponentDev {
constructor ( options ) {
super ( options ) ;
init ( this , options , instance , create _fragment , safe _not _equal , { visible : 0 , setVisible : 2 , toggle : 3 } ) ;
dispatch _dev ( "SvelteRegisterComponent" , {
component : this ,
tagName : "Sharebar" ,
options ,
id : create _fragment . name
} ) ;
}
get visible ( ) {
throw new Error ( "<Sharebar>: Props cannot be read directly from the component instance unless compiling with 'accessors: true' or '<svelte:options accessors/>'" ) ;
}
set visible ( value ) {
throw new Error ( "<Sharebar>: Props cannot be set directly on the component instance unless compiling with 'accessors: true' or '<svelte:options accessors/>'" ) ;
}
get setVisible ( ) {
return this . $$ . ctx [ 2 ] ;
}
set setVisible ( value ) {
throw new Error ( "<Sharebar>: Props cannot be set directly on the component instance unless compiling with 'accessors: true' or '<svelte:options accessors/>'" ) ;
}
get toggle ( ) {
return this . $$ . ctx [ 3 ] ;
}
set toggle ( value ) {
throw new Error ( "<Sharebar>: Props cannot be set directly on the component instance unless compiling with 'accessors: true' or '<svelte:options accessors/>'" ) ;
}
}
/* src/util/Spinner.svelte generated by Svelte v3.29.6 */
const file$1 = "src/util/Spinner.svelte" ;
function create _fragment$1 ( ctx ) {
let svg ;
let path ;
let animateTransform ;
const block = {
c : function create ( ) {
svg = svg _element ( "svg" ) ;
path = svg _element ( "path" ) ;
animateTransform = svg _element ( "animateTransform" ) ;
attr _dev ( animateTransform , "attributeType" , "xml" ) ;
attr _dev ( animateTransform , "attributeName" , "transform" ) ;
attr _dev ( animateTransform , "type" , "rotate" ) ;
attr _dev ( animateTransform , "from" , "0 40 40" ) ;
attr _dev ( animateTransform , "to" , "360 40 40" ) ;
attr _dev ( animateTransform , "dur" , "0.6s" ) ;
attr _dev ( animateTransform , "repeatCount" , "indefinite" ) ;
add _location ( animateTransform , file$1 , 22 , 2 , 1719 ) ;
attr _dev ( path , "d" , "M10,40c0,0,0-0.4,0-1.1c0-0.3,0-0.8,0-1.3c0-0.3,0-0.5,0-0.8c0-0.3,0.1-0.6,0.1-0.9c0.1-0.6,0.1-1.4,0.2-2.1\n\t\tc0.2-0.8,0.3-1.6,0.5-2.5c0.2-0.9,0.6-1.8,0.8-2.8c0.3-1,0.8-1.9,1.2-3c0.5-1,1.1-2,1.7-3.1c0.7-1,1.4-2.1,2.2-3.1\n\t\tc1.6-2.1,3.7-3.9,6-5.6c2.3-1.7,5-3,7.9-4.1c0.7-0.2,1.5-0.4,2.2-0.7c0.7-0.3,1.5-0.3,2.3-0.5c0.8-0.2,1.5-0.3,2.3-0.4l1.2-0.1\n\t\tl0.6-0.1l0.3,0l0.1,0l0.1,0l0,0c0.1,0-0.1,0,0.1,0c1.5,0,2.9-0.1,4.5,0.2c0.8,0.1,1.6,0.1,2.4,0.3c0.8,0.2,1.5,0.3,2.3,0.5\n\t\tc3,0.8,5.9,2,8.5,3.6c2.6,1.6,4.9,3.4,6.8,5.4c1,1,1.8,2.1,2.7,3.1c0.8,1.1,1.5,2.1,2.1,3.2c0.6,1.1,1.2,2.1,1.6,3.1\n\t\tc0.4,1,0.9,2,1.2,3c0.3,1,0.6,1.9,0.8,2.7c0.2,0.9,0.3,1.6,0.5,2.4c0.1,0.4,0.1,0.7,0.2,1c0,0.3,0.1,0.6,0.1,0.9\n\t\tc0.1,0.6,0.1,1,0.1,1.4C74,39.6,74,40,74,40c0.2,2.2-1.5,4.1-3.7,4.3s-4.1-1.5-4.3-3.7c0-0.1,0-0.2,0-0.3l0-0.4c0,0,0-0.3,0-0.9\n\t\tc0-0.3,0-0.7,0-1.1c0-0.2,0-0.5,0-0.7c0-0.2-0.1-0.5-0.1-0.8c-0.1-0.6-0.1-1.2-0.2-1.9c-0.1-0.7-0.3-1.4-0.4-2.2\n\t\tc-0.2-0.8-0.5-1.6-0.7-2.4c-0.3-0.8-0.7-1.7-1.1-2.6c-0.5-0.9-0.9-1.8-1.5-2.7c-0.6-0.9-1.2-1.8-1.9-2.7c-1.4-1.8-3.2-3.4-5.2-4.9\n\t\tc-2-1.5-4.4-2.7-6.9-3.6c-0.6-0.2-1.3-0.4-1.9-0.6c-0.7-0.2-1.3-0.3-1.9-0.4c-1.2-0.3-2.8-0.4-4.2-0.5l-2,0c-0.7,0-1.4,0.1-2.1,0.1\n\t\tc-0.7,0.1-1.4,0.1-2,0.3c-0.7,0.1-1.3,0.3-2,0.4c-2.6,0.7-5.2,1.7-7.5,3.1c-2.2,1.4-4.3,2.9-6,4.7c-0.9,0.8-1.6,1.8-2.4,2.7\n\t\tc-0.7,0.9-1.3,1.9-1.9,2.8c-0.5,1-1,1.9-1.4,2.8c-0.4,0.9-0.8,1.8-1,2.6c-0.3,0.9-0.5,1.6-0.7,2.4c-0.2,0.7-0.3,1.4-0.4,2.1\n\t\tc-0.1,0.3-0.1,0.6-0.2,0.9c0,0.3-0.1,0.6-0.1,0.8c0,0.5-0.1,0.9-0.1,1.3C10,39.6,10,40,10,40z" ) ;
add _location ( path , file$1 , 8 , 1 , 183 ) ;
attr _dev ( svg , "version" , "1.1" ) ;
attr _dev ( svg , "class" , "svg_spinner svelte-1pco739" ) ;
attr _dev ( svg , "xmlns" , "http://www.w3.org/2000/svg" ) ;
attr _dev ( svg , "xmlns:xlink" , "http://www.w3.org/1999/xlink" ) ;
attr _dev ( svg , "x" , "0px" ) ;
attr _dev ( svg , "y" , "0px" ) ;
attr _dev ( svg , "viewBox" , "0 0 80 80" ) ;
attr _dev ( svg , "xml:space" , "preserve" ) ;
add _location ( svg , file$1 , 0 , 0 , 0 ) ;
} ,
l : function claim ( nodes ) {
throw new Error ( "options.hydrate only works if the component was compiled with the `hydratable: true` option" ) ;
} ,
m : function mount ( target , anchor ) {
insert _dev ( target , svg , anchor ) ;
append _dev ( svg , path ) ;
append _dev ( path , animateTransform ) ;
} ,
p : noop ,
i : noop ,
o : noop ,
d : function destroy ( detaching ) {
if ( detaching ) detach _dev ( svg ) ;
}
} ;
dispatch _dev ( "SvelteRegisterBlock" , {
block ,
id : create _fragment$1 . name ,
type : "component" ,
source : "" ,
ctx
} ) ;
return block ;
}
function instance$1 ( $$self , $$props ) {
let { $$slots : slots = { } , $$scope } = $$props ;
validate _slots ( "Spinner" , slots , [ ] ) ;
const writable _props = [ ] ;
Object . keys ( $$props ) . forEach ( key => {
if ( ! ~ writable _props . indexOf ( key ) && key . slice ( 0 , 2 ) !== "$$" ) console . warn ( ` <Spinner> was created with unknown prop ' ${ key } ' ` ) ;
} ) ;
return [ ] ;
}
class Spinner extends SvelteComponentDev {
constructor ( options ) {
super ( options ) ;
init ( this , options , instance$1 , create _fragment$1 , safe _not _equal , { } ) ;
dispatch _dev ( "SvelteRegisterComponent" , {
component : this ,
tagName : "Spinner" ,
options ,
id : create _fragment$1 . name
} ) ;
}
}
function fade ( node , { delay = 0 , duration = 400 , easing = identity } ) {
const o = + getComputedStyle ( node ) . opacity ;
return {
delay ,
duration ,
easing ,
css : t => ` opacity: ${ t * o } `
} ;
}
/* src/util/Modal.svelte generated by Svelte v3.29.6 */
const file$2 = "src/util/Modal.svelte" ;
// (45:0) {#if visible}
function create _if _block ( ctx ) {
let div4 ;
let div3 ;
let div1 ;
let div0 ;
let t0 ;
let t1 ;
let button ;
let i ;
let t3 ;
let div2 ;
let load _modal _action ;
let load _bg _action ;
let div4 _transition ;
let current ;
let mounted ;
let dispose ;
const default _slot _template = /*#slots*/ ctx [ 11 ] . default ;
const default _slot = create _slot ( default _slot _template , ctx , /*$$scope*/ ctx [ 10 ] , null ) ;
const block = {
c : function create ( ) {
div4 = element ( "div" ) ;
div3 = element ( "div" ) ;
div1 = element ( "div" ) ;
div0 = element ( "div" ) ;
t0 = text ( /*title*/ ctx [ 0 ] ) ;
t1 = space ( ) ;
button = element ( "button" ) ;
i = element ( "i" ) ;
i . textContent = "close" ;
t3 = space ( ) ;
div2 = element ( "div" ) ;
if ( default _slot ) default _slot . c ( ) ;
attr _dev ( div0 , "class" , "title svelte-tirhyp" ) ;
add _location ( div0 , file$2 , 48 , 3 , 1188 ) ;
attr _dev ( i , "class" , "icon" ) ;
add _location ( i , file$2 , 50 , 4 , 1285 ) ;
attr _dev ( button , "class" , "button_close button_red svelte-tirhyp" ) ;
add _location ( button , file$2 , 49 , 3 , 1224 ) ;
attr _dev ( div1 , "class" , "header highlight_1 svelte-tirhyp" ) ;
add _location ( div1 , file$2 , 47 , 2 , 1152 ) ;
attr _dev ( div2 , "class" , "body svelte-tirhyp" ) ;
add _location ( div2 , file$2 , 53 , 2 , 1335 ) ;
attr _dev ( div3 , "class" , "window svelte-tirhyp" ) ;
attr _dev ( div3 , "role" , "dialog" ) ;
attr _dev ( div3 , "aria-modal" , "true" ) ;
add _location ( div3 , file$2 , 46 , 1 , 1057 ) ;
attr _dev ( div4 , "class" , "background svelte-tirhyp" ) ;
add _location ( div4 , file$2 , 45 , 0 , 969 ) ;
} ,
m : function mount ( target , anchor ) {
insert _dev ( target , div4 , anchor ) ;
append _dev ( div4 , div3 ) ;
append _dev ( div3 , div1 ) ;
append _dev ( div1 , div0 ) ;
append _dev ( div0 , t0 ) ;
append _dev ( div1 , t1 ) ;
append _dev ( div1 , button ) ;
append _dev ( button , i ) ;
append _dev ( div3 , t3 ) ;
append _dev ( div3 , div2 ) ;
if ( default _slot ) {
default _slot . m ( div2 , null ) ;
}
current = true ;
if ( ! mounted ) {
dispose = [
listen _dev ( button , "click" , /*hide*/ ctx [ 1 ] , false , false , false ) ,
action _destroyer ( load _modal _action = /*load_modal*/ ctx [ 4 ] . call ( null , div3 ) ) ,
listen _dev ( div3 , "click" , stop _propagation ( /*click_handler*/ ctx [ 12 ] ) , false , false , true ) ,
action _destroyer ( load _bg _action = /*load_bg*/ ctx [ 3 ] . call ( null , div4 ) ) ,
listen _dev ( div4 , "click" , /*hide*/ ctx [ 1 ] , false , false , false )
] ;
mounted = true ;
}
} ,
p : function update ( ctx , dirty ) {
if ( ! current || dirty & /*title*/ 1 ) set _data _dev ( t0 , /*title*/ ctx [ 0 ] ) ;
if ( default _slot ) {
if ( default _slot . p && dirty & /*$$scope*/ 1024 ) {
update _slot ( default _slot , default _slot _template , ctx , /*$$scope*/ ctx [ 10 ] , dirty , null , null ) ;
}
}
} ,
i : function intro ( local ) {
if ( current ) return ;
transition _in ( default _slot , local ) ;
add _render _callback ( ( ) => {
if ( ! div4 _transition ) div4 _transition = create _bidirectional _transition ( div4 , fade , { duration : 200 } , true ) ;
div4 _transition . run ( 1 ) ;
} ) ;
current = true ;
} ,
o : function outro ( local ) {
transition _out ( default _slot , local ) ;
if ( ! div4 _transition ) div4 _transition = create _bidirectional _transition ( div4 , fade , { duration : 200 } , false ) ;
div4 _transition . run ( 0 ) ;
current = false ;
} ,
d : function destroy ( detaching ) {
if ( detaching ) detach _dev ( div4 ) ;
if ( default _slot ) default _slot . d ( detaching ) ;
if ( detaching && div4 _transition ) div4 _transition . end ( ) ;
mounted = false ;
run _all ( dispose ) ;
}
} ;
dispatch _dev ( "SvelteRegisterBlock" , {
block ,
id : create _if _block . name ,
type : "if" ,
source : "(45:0) {#if visible}" ,
ctx
} ) ;
return block ;
}
function create _fragment$2 ( ctx ) {
let if _block _anchor ;
let current ;
let mounted ;
let dispose ;
let if _block = /*visible*/ ctx [ 2 ] && create _if _block ( ctx ) ;
const block = {
c : function create ( ) {
if ( if _block ) if _block . c ( ) ;
if _block _anchor = empty ( ) ;
} ,
l : function claim ( nodes ) {
throw new Error ( "options.hydrate only works if the component was compiled with the `hydratable: true` option" ) ;
} ,
m : function mount ( target , anchor ) {
if ( if _block ) if _block . m ( target , anchor ) ;
insert _dev ( target , if _block _anchor , anchor ) ;
current = true ;
if ( ! mounted ) {
dispose = listen _dev ( window , "keydown" , /*keydown*/ ctx [ 5 ] , false , false , false ) ;
mounted = true ;
}
} ,
p : function update ( ctx , [ dirty ] ) {
if ( /*visible*/ ctx [ 2 ] ) {
if ( if _block ) {
if _block . p ( ctx , dirty ) ;
if ( dirty & /*visible*/ 4 ) {
transition _in ( if _block , 1 ) ;
}
} else {
if _block = create _if _block ( ctx ) ;
if _block . c ( ) ;
transition _in ( if _block , 1 ) ;
if _block . m ( if _block _anchor . parentNode , if _block _anchor ) ;
}
} else if ( if _block ) {
group _outros ( ) ;
transition _out ( if _block , 1 , 1 , ( ) => {
if _block = null ;
} ) ;
check _outros ( ) ;
}
} ,
i : function intro ( local ) {
if ( current ) return ;
transition _in ( if _block ) ;
current = true ;
} ,
o : function outro ( local ) {
transition _out ( if _block ) ;
current = false ;
} ,
d : function destroy ( detaching ) {
if ( if _block ) if _block . d ( detaching ) ;
if ( detaching ) detach _dev ( if _block _anchor ) ;
mounted = false ;
dispose ( ) ;
}
} ;
dispatch _dev ( "SvelteRegisterBlock" , {
block ,
id : create _fragment$2 . name ,
type : "component" ,
source : "" ,
ctx
} ) ;
return block ;
}
let global _index = 10000 ;
function instance$2 ( $$self , $$props , $$invalidate ) {
let { $$slots : slots = { } , $$scope } = $$props ;
validate _slots ( "Modal" , slots , [ 'default' ] ) ;
let { title = "" } = $$props ;
let { width = "800px" } = $$props ;
let { height = "auto" } = $$props ;
let visible = false ;
const load _bg = background => {
background . style . zIndex = global _index . valueOf ( ) ;
global _index ++ ;
} ;
const load _modal = modal => {
modal . style . width = width ;
modal . style . height = height ;
} ;
const dispatch = createEventDispatcher ( ) ;
const show = ( ) => {
$$invalidate ( 2 , visible = true ) ;
dispatch ( "shown" ) ;
} ;
const hide = ( ) => {
$$invalidate ( 2 , visible = false ) ;
dispatch ( "hidden" ) ;
} ;
const toggle = ( ) => {
if ( visible ) {
hide ( ) ;
} else {
show ( ) ;
}
} ;
const keydown = e => {
if ( e . key === "Escape" ) {
hide ( ) ;
return ;
}
} ;
const writable _props = [ "title" , "width" , "height" ] ;
Object . keys ( $$props ) . forEach ( key => {
if ( ! ~ writable _props . indexOf ( key ) && key . slice ( 0 , 2 ) !== "$$" ) console . warn ( ` <Modal> was created with unknown prop ' ${ key } ' ` ) ;
} ) ;
function click _handler ( event ) {
bubble ( $$self , event ) ;
}
$$self . $$set = $$props => {
if ( "title" in $$props ) $$invalidate ( 0 , title = $$props . title ) ;
if ( "width" in $$props ) $$invalidate ( 6 , width = $$props . width ) ;
if ( "height" in $$props ) $$invalidate ( 7 , height = $$props . height ) ;
if ( "$$scope" in $$props ) $$invalidate ( 10 , $$scope = $$props . $$scope ) ;
} ;
$$self . $capture _state = ( ) => ( {
global _index ,
createEventDispatcher ,
fade ,
title ,
width ,
height ,
visible ,
load _bg ,
load _modal ,
dispatch ,
show ,
hide ,
toggle ,
keydown
} ) ;
$$self . $inject _state = $$props => {
if ( "title" in $$props ) $$invalidate ( 0 , title = $$props . title ) ;
if ( "width" in $$props ) $$invalidate ( 6 , width = $$props . width ) ;
if ( "height" in $$props ) $$invalidate ( 7 , height = $$props . height ) ;
if ( "visible" in $$props ) $$invalidate ( 2 , visible = $$props . visible ) ;
} ;
if ( $$props && "$$inject" in $$props ) {
$$self . $inject _state ( $$props . $$inject ) ;
}
return [
title ,
hide ,
visible ,
load _bg ,
load _modal ,
keydown ,
width ,
height ,
show ,
toggle ,
$$scope ,
slots ,
click _handler
] ;
}
class Modal extends SvelteComponentDev {
constructor ( options ) {
super ( options ) ;
init ( this , options , instance$2 , create _fragment$2 , safe _not _equal , {
title : 0 ,
width : 6 ,
height : 7 ,
show : 8 ,
hide : 1 ,
toggle : 9
} ) ;
dispatch _dev ( "SvelteRegisterComponent" , {
component : this ,
tagName : "Modal" ,
options ,
id : create _fragment$2 . name
} ) ;
}
get title ( ) {
throw new Error ( "<Modal>: Props cannot be read directly from the component instance unless compiling with 'accessors: true' or '<svelte:options accessors/>'" ) ;
}
set title ( value ) {
throw new Error ( "<Modal>: Props cannot be set directly on the component instance unless compiling with 'accessors: true' or '<svelte:options accessors/>'" ) ;
}
get width ( ) {
throw new Error ( "<Modal>: Props cannot be read directly from the component instance unless compiling with 'accessors: true' or '<svelte:options accessors/>'" ) ;
}
set width ( value ) {
throw new Error ( "<Modal>: Props cannot be set directly on the component instance unless compiling with 'accessors: true' or '<svelte:options accessors/>'" ) ;
}
get height ( ) {
throw new Error ( "<Modal>: Props cannot be read directly from the component instance unless compiling with 'accessors: true' or '<svelte:options accessors/>'" ) ;
}
set height ( value ) {
throw new Error ( "<Modal>: Props cannot be set directly on the component instance unless compiling with 'accessors: true' or '<svelte:options accessors/>'" ) ;
}
get show ( ) {
return this . $$ . ctx [ 8 ] ;
}
set show ( value ) {
throw new Error ( "<Modal>: Props cannot be set directly on the component instance unless compiling with 'accessors: true' or '<svelte:options accessors/>'" ) ;
}
get hide ( ) {
return this . $$ . ctx [ 1 ] ;
}
set hide ( value ) {
throw new Error ( "<Modal>: Props cannot be set directly on the component instance unless compiling with 'accessors: true' or '<svelte:options accessors/>'" ) ;
}
get toggle ( ) {
return this . $$ . ctx [ 9 ] ;
}
set toggle ( value ) {
throw new Error ( "<Modal>: Props cannot be set directly on the component instance unless compiling with 'accessors: true' or '<svelte:options accessors/>'" ) ;
}
}
2020-11-17 23:39:27 +01:00
/* src/filesystem/filemanager/CreateDirectory.svelte generated by Svelte v3.29.6 */
const file$3 = "src/filesystem/filemanager/CreateDirectory.svelte" ;
2020-11-11 00:00:54 +01:00
2020-11-17 23:39:27 +01:00
function create _fragment$3 ( ctx ) {
let form ;
2020-11-11 23:45:52 +01:00
let td0 ;
2020-11-11 00:00:54 +01:00
let img ;
let img _src _value ;
let t0 ;
2020-11-11 23:45:52 +01:00
let td1 ;
2020-11-17 23:39:27 +01:00
let input0 ;
2020-11-11 00:00:54 +01:00
let t1 ;
2020-11-11 23:45:52 +01:00
let td2 ;
2020-11-17 23:39:27 +01:00
let input1 ;
2020-11-11 00:00:54 +01:00
let mounted ;
let dispose ;
const block = {
c : function create ( ) {
2020-11-17 23:39:27 +01:00
form = element ( "form" ) ;
2020-11-11 23:45:52 +01:00
td0 = element ( "td" ) ;
2020-11-11 00:00:54 +01:00
img = element ( "img" ) ;
t0 = space ( ) ;
2020-11-11 23:45:52 +01:00
td1 = element ( "td" ) ;
2020-11-17 23:39:27 +01:00
input0 = element ( "input" ) ;
t1 = space ( ) ;
2020-11-11 23:45:52 +01:00
td2 = element ( "td" ) ;
2020-11-17 23:39:27 +01:00
input1 = element ( "input" ) ;
if ( img . src !== ( img _src _value = "/res/img/mime/folder.png" ) ) attr _dev ( img , "src" , img _src _value ) ;
attr _dev ( img , "class" , "node_icon" ) ;
2020-11-11 00:00:54 +01:00
attr _dev ( img , "alt" , "icon" ) ;
2020-11-17 23:39:27 +01:00
add _location ( img , file$3 , 29 , 5 , 674 ) ;
add _location ( td0 , file$3 , 29 , 1 , 670 ) ;
attr _dev ( input0 , "type" , "text" ) ;
set _style ( input0 , "width" , "100%" ) ;
add _location ( input0 , file$3 , 30 , 5 , 751 ) ;
add _location ( td1 , file$3 , 30 , 1 , 747 ) ;
attr _dev ( input1 , "type" , "submit" ) ;
input1 . value = "create" ;
add _location ( input1 , file$3 , 31 , 5 , 856 ) ;
add _location ( td2 , file$3 , 31 , 1 , 852 ) ;
attr _dev ( form , "class" , "node" ) ;
add _location ( form , file$3 , 28 , 0 , 611 ) ;
} ,
l : function claim ( nodes ) {
throw new Error ( "options.hydrate only works if the component was compiled with the `hydratable: true` option" ) ;
2020-11-11 00:00:54 +01:00
} ,
m : function mount ( target , anchor ) {
2020-11-17 23:39:27 +01:00
insert _dev ( target , form , anchor ) ;
append _dev ( form , td0 ) ;
2020-11-11 23:45:52 +01:00
append _dev ( td0 , img ) ;
2020-11-17 23:39:27 +01:00
append _dev ( form , t0 ) ;
append _dev ( form , td1 ) ;
append _dev ( td1 , input0 ) ;
/*input0_binding*/ ctx [ 4 ] ( input0 ) ;
set _input _value ( input0 , /*create_dir_name*/ ctx [ 1 ] ) ;
append _dev ( form , t1 ) ;
append _dev ( form , td2 ) ;
append _dev ( td2 , input1 ) ;
2020-11-11 00:00:54 +01:00
if ( ! mounted ) {
2020-11-17 23:39:27 +01:00
dispose = [
listen _dev ( input0 , "input" , /*input0_input_handler*/ ctx [ 5 ] ) ,
listen _dev ( form , "submit" , prevent _default ( /*create_dir*/ ctx [ 2 ] ) , false , true , false )
] ;
2020-11-11 00:00:54 +01:00
mounted = true ;
}
} ,
2020-11-17 23:39:27 +01:00
p : function update ( ctx , [ dirty ] ) {
if ( dirty & /*create_dir_name*/ 2 && input0 . value !== /*create_dir_name*/ ctx [ 1 ] ) {
set _input _value ( input0 , /*create_dir_name*/ ctx [ 1 ] ) ;
2020-11-11 00:00:54 +01:00
}
2020-11-17 23:39:27 +01:00
} ,
i : noop ,
o : noop ,
d : function destroy ( detaching ) {
if ( detaching ) detach _dev ( form ) ;
/*input0_binding*/ ctx [ 4 ] ( null ) ;
mounted = false ;
run _all ( dispose ) ;
}
} ;
dispatch _dev ( "SvelteRegisterBlock" , {
block ,
id : create _fragment$3 . name ,
type : "component" ,
source : "" ,
ctx
} ) ;
2020-11-11 00:00:54 +01:00
2020-11-17 23:39:27 +01:00
return block ;
}
2020-11-11 23:45:52 +01:00
2020-11-17 23:39:27 +01:00
function instance$3 ( $$self , $$props , $$invalidate ) {
let { $$slots : slots = { } , $$scope } = $$props ;
validate _slots ( "CreateDirectory" , slots , [ ] ) ;
let dispatch = createEventDispatcher ( ) ;
let { state } = $$props ;
let name _input ;
let create _dir _name = "" ;
let create _dir = ( ) => {
dispatch ( "loading" , true ) ;
let form = new FormData ( ) ;
form . append ( "type" , "dir" ) ;
fs _create _directory ( state . bucket . id , state . base . path , create _dir _name ) . then ( resp => {
$$invalidate ( 1 , create _dir _name = "" ) ; // Clear input field
} ) . catch ( err => {
alert ( "Error: " + err ) ;
} ) . finally ( ( ) => {
dispatch ( "done" ) ;
} ) ;
} ;
onMount ( ( ) => {
name _input . focus ( ) ;
} ) ;
const writable _props = [ "state" ] ;
Object . keys ( $$props ) . forEach ( key => {
if ( ! ~ writable _props . indexOf ( key ) && key . slice ( 0 , 2 ) !== "$$" ) console . warn ( ` <CreateDirectory> was created with unknown prop ' ${ key } ' ` ) ;
} ) ;
function input0 _binding ( $$value ) {
binding _callbacks [ $$value ? "unshift" : "push" ] ( ( ) => {
name _input = $$value ;
$$invalidate ( 0 , name _input ) ;
} ) ;
}
function input0 _input _handler ( ) {
create _dir _name = this . value ;
$$invalidate ( 1 , create _dir _name ) ;
}
$$self . $$set = $$props => {
if ( "state" in $$props ) $$invalidate ( 3 , state = $$props . state ) ;
} ;
$$self . $capture _state = ( ) => ( {
onMount ,
createEventDispatcher ,
fs _create _directory ,
dispatch ,
state ,
name _input ,
create _dir _name ,
create _dir
} ) ;
$$self . $inject _state = $$props => {
if ( "dispatch" in $$props ) dispatch = $$props . dispatch ;
if ( "state" in $$props ) $$invalidate ( 3 , state = $$props . state ) ;
if ( "name_input" in $$props ) $$invalidate ( 0 , name _input = $$props . name _input ) ;
if ( "create_dir_name" in $$props ) $$invalidate ( 1 , create _dir _name = $$props . create _dir _name ) ;
if ( "create_dir" in $$props ) $$invalidate ( 2 , create _dir = $$props . create _dir ) ;
} ;
if ( $$props && "$$inject" in $$props ) {
$$self . $inject _state ( $$props . $$inject ) ;
}
return [
name _input ,
create _dir _name ,
create _dir ,
state ,
input0 _binding ,
input0 _input _handler
] ;
}
class CreateDirectory extends SvelteComponentDev {
constructor ( options ) {
super ( options ) ;
init ( this , options , instance$3 , create _fragment$3 , safe _not _equal , { state : 3 } ) ;
dispatch _dev ( "SvelteRegisterComponent" , {
component : this ,
tagName : "CreateDirectory" ,
options ,
id : create _fragment$3 . name
} ) ;
const { ctx } = this . $$ ;
const props = options . props || { } ;
if ( /*state*/ ctx [ 3 ] === undefined && ! ( "state" in props ) ) {
console . warn ( "<CreateDirectory> was created without expected prop 'state'" ) ;
}
}
get state ( ) {
throw new Error ( "<CreateDirectory>: Props cannot be read directly from the component instance unless compiling with 'accessors: true' or '<svelte:options accessors/>'" ) ;
}
set state ( value ) {
throw new Error ( "<CreateDirectory>: Props cannot be set directly on the component instance unless compiling with 'accessors: true' or '<svelte:options accessors/>'" ) ;
}
}
/* src/filesystem/filemanager/FileUploader.svelte generated by Svelte v3.29.6 */
const { console : console _1 } = globals ;
const file$4 = "src/filesystem/filemanager/FileUploader.svelte" ;
function get _each _context ( ctx , list , i ) {
const child _ctx = ctx . slice ( ) ;
child _ctx [ 18 ] = list [ i ] ;
return child _ctx ;
}
// (172:1) {#each upload_jobs as c}
function create _each _block ( ctx ) {
let div2 ;
let t0 ;
let t1 _value = /*c*/ ctx [ 18 ] . file . name + "" ;
let t1 ;
let t2 ;
let br ;
let t3 ;
let div1 ;
let div0 ;
let t4 ;
const block = {
c : function create ( ) {
div2 = element ( "div" ) ;
t0 = text ( " " ) ;
t1 = text ( t1 _value ) ;
t2 = text ( " " ) ;
br = element ( "br" ) ;
t3 = space ( ) ;
div1 = element ( "div" ) ;
div0 = element ( "div" ) ;
t4 = space ( ) ;
add _location ( br , file$4 , 173 , 28 , 3977 ) ;
attr _dev ( div0 , "class" , "upload_progress svelte-2zhofy" ) ;
set _style ( div0 , "width" , /*c*/ ctx [ 18 ] . progress * 100 + "%" ) ;
add _location ( div0 , file$4 , 175 , 4 , 4024 ) ;
attr _dev ( div1 , "class" , "upload_progress_bar svelte-2zhofy" ) ;
add _location ( div1 , file$4 , 174 , 3 , 3986 ) ;
attr _dev ( div2 , "class" , "file_upload svelte-2zhofy" ) ;
add _location ( div2 , file$4 , 172 , 2 , 3923 ) ;
} ,
m : function mount ( target , anchor ) {
insert _dev ( target , div2 , anchor ) ;
append _dev ( div2 , t0 ) ;
append _dev ( div2 , t1 ) ;
append _dev ( div2 , t2 ) ;
append _dev ( div2 , br ) ;
append _dev ( div2 , t3 ) ;
append _dev ( div2 , div1 ) ;
append _dev ( div1 , div0 ) ;
append _dev ( div2 , t4 ) ;
} ,
p : function update ( ctx , dirty ) {
if ( dirty & /*upload_jobs*/ 1 && t1 _value !== ( t1 _value = /*c*/ ctx [ 18 ] . file . name + "" ) ) set _data _dev ( t1 , t1 _value ) ;
2020-11-11 23:45:52 +01:00
2020-11-17 23:39:27 +01:00
if ( dirty & /*upload_jobs*/ 1 ) {
set _style ( div0 , "width" , /*c*/ ctx [ 18 ] . progress * 100 + "%" ) ;
2020-11-11 23:45:52 +01:00
}
2020-11-11 00:00:54 +01:00
} ,
d : function destroy ( detaching ) {
2020-11-17 23:39:27 +01:00
if ( detaching ) detach _dev ( div2 ) ;
2020-11-11 00:00:54 +01:00
}
} ;
dispatch _dev ( "SvelteRegisterBlock" , {
block ,
id : create _each _block . name ,
type : "each" ,
2020-11-17 23:39:27 +01:00
source : "(172:1) {#each upload_jobs as c}" ,
2020-11-11 00:00:54 +01:00
ctx
} ) ;
return block ;
}
2020-11-17 23:39:27 +01:00
function create _fragment$4 ( ctx ) {
let t0 ;
2020-11-11 23:45:52 +01:00
let div1 ;
2020-11-17 23:39:27 +01:00
let input ;
2020-11-11 00:00:54 +01:00
let t1 ;
2020-11-11 23:45:52 +01:00
let div0 ;
2020-11-17 23:39:27 +01:00
let t3 ;
2020-11-11 00:00:54 +01:00
let mounted ;
let dispose ;
2020-11-17 23:39:27 +01:00
let each _value = /*upload_jobs*/ ctx [ 0 ] ;
2020-11-11 23:45:52 +01:00
validate _each _argument ( each _value ) ;
let each _blocks = [ ] ;
for ( let i = 0 ; i < each _value . length ; i += 1 ) {
each _blocks [ i ] = create _each _block ( get _each _context ( ctx , each _value , i ) ) ;
}
2020-11-11 00:00:54 +01:00
const block = {
c : function create ( ) {
2020-11-17 23:39:27 +01:00
t0 = space ( ) ;
2020-11-11 23:45:52 +01:00
div1 = element ( "div" ) ;
2020-11-17 23:39:27 +01:00
input = element ( "input" ) ;
2020-11-11 23:45:52 +01:00
t1 = space ( ) ;
2020-11-11 00:00:54 +01:00
div0 = element ( "div" ) ;
2020-11-17 23:39:27 +01:00
div0 . textContent = "Drop files here to upload them" ;
t3 = space ( ) ;
2020-11-11 23:45:52 +01:00
for ( let i = 0 ; i < each _blocks . length ; i += 1 ) {
each _blocks [ i ] . c ( ) ;
}
2020-11-17 23:39:27 +01:00
attr _dev ( input , "class" , "file_input svelte-2zhofy" ) ;
attr _dev ( input , "type" , "file" ) ;
input . multiple = "multiple" ;
add _location ( input , file$4 , 166 , 1 , 3696 ) ;
attr _dev ( div0 , "class" , "highlight_green svelte-2zhofy" ) ;
toggle _class ( div0 , "hidden" , /*hidden*/ ctx [ 2 ] ) ;
add _location ( div0 , file$4 , 167 , 1 , 3810 ) ;
add _location ( div1 , file$4 , 165 , 0 , 3689 ) ;
2020-11-11 00:00:54 +01:00
} ,
l : function claim ( nodes ) {
throw new Error ( "options.hydrate only works if the component was compiled with the `hydratable: true` option" ) ;
} ,
m : function mount ( target , anchor ) {
2020-11-17 23:39:27 +01:00
insert _dev ( target , t0 , anchor ) ;
insert _dev ( target , div1 , anchor ) ;
append _dev ( div1 , input ) ;
/*input_binding*/ ctx [ 12 ] ( input ) ;
append _dev ( div1 , t1 ) ;
append _dev ( div1 , div0 ) ;
append _dev ( div1 , t3 ) ;
for ( let i = 0 ; i < each _blocks . length ; i += 1 ) {
each _blocks [ i ] . m ( div1 , null ) ;
}
if ( ! mounted ) {
dispose = [
listen _dev ( document . body , "dragover" , stop _propagation ( prevent _default ( /*dragover*/ ctx [ 4 ] ) ) , false , true , true ) ,
listen _dev ( document . body , "dragleave" , stop _propagation ( prevent _default ( /*dragleave*/ ctx [ 5 ] ) ) , false , true , true ) ,
listen _dev ( document . body , "drop" , stop _propagation ( prevent _default ( /*drop*/ ctx [ 6 ] ) ) , false , true , true ) ,
listen _dev ( document . body , "paste" , /*paste*/ ctx [ 7 ] , false , false , false ) ,
listen _dev ( input , "change" , /*file_input_change*/ ctx [ 3 ] , false , false , false )
] ;
mounted = true ;
}
} ,
p : function update ( ctx , [ dirty ] ) {
if ( dirty & /*hidden*/ 4 ) {
toggle _class ( div0 , "hidden" , /*hidden*/ ctx [ 2 ] ) ;
}
if ( dirty & /*upload_jobs*/ 1 ) {
each _value = /*upload_jobs*/ ctx [ 0 ] ;
validate _each _argument ( each _value ) ;
let i ;
for ( i = 0 ; i < each _value . length ; i += 1 ) {
const child _ctx = get _each _context ( ctx , each _value , i ) ;
if ( each _blocks [ i ] ) {
each _blocks [ i ] . p ( child _ctx , dirty ) ;
} else {
each _blocks [ i ] = create _each _block ( child _ctx ) ;
each _blocks [ i ] . c ( ) ;
each _blocks [ i ] . m ( div1 , null ) ;
}
}
for ( ; i < each _blocks . length ; i += 1 ) {
each _blocks [ i ] . d ( 1 ) ;
}
each _blocks . length = each _value . length ;
}
} ,
i : noop ,
o : noop ,
d : function destroy ( detaching ) {
if ( detaching ) detach _dev ( t0 ) ;
if ( detaching ) detach _dev ( div1 ) ;
/*input_binding*/ ctx [ 12 ] ( null ) ;
destroy _each ( each _blocks , detaching ) ;
mounted = false ;
run _all ( dispose ) ;
}
} ;
dispatch _dev ( "SvelteRegisterBlock" , {
block ,
id : create _fragment$4 . name ,
type : "component" ,
source : "" ,
ctx
} ) ;
return block ;
}
function instance$4 ( $$self , $$props , $$invalidate ) {
let { $$slots : slots = { } , $$scope } = $$props ;
validate _slots ( "FileUploader" , slots , [ ] ) ;
let dispatch = createEventDispatcher ( ) ;
let { bucket _id } = $$props ;
let { target _dir } = $$props ;
let upload _jobs = [ ] ;
let upload _threads = 0 ;
let max _upload _threads = 4 ;
const upload = file _list => {
for ( let i = 0 ; i < file _list . length ; i ++ ) {
upload _jobs . push ( {
file : file _list [ i ] ,
progress : 0 ,
target _dir : target _dir . valueOf ( ) ,
uploading : false ,
finished : false ,
tries : 0
} ) ;
}
// This updates the UI
$$invalidate ( 0 , upload _jobs ) ;
while ( upload _threads <= max _upload _threads ) {
upload _threads ++ ;
setTimeout ( upload _file , 1 ) ;
}
} ;
const uploads _finished = ( ) => {
dispatch ( "finished" ) ;
} ;
const upload _file = ( ) => {
let job = null ;
for ( let i = 0 ; i < upload _jobs . length ; i ++ ) {
// If a file is done we remove it from the array
if ( upload _jobs [ i ] . progress >= 1 ) {
upload _jobs . splice ( i , 1 ) ;
continue ;
}
if ( upload _jobs [ i ] . uploading === false && upload _jobs [ i ] . finished === false ) {
job = upload _jobs [ i ] ;
job . uploading = true ;
$$invalidate ( 0 , upload _jobs ) ;
break ;
}
}
if ( job === null ) {
upload _threads -- ;
if ( upload _threads === 0 ) {
uploads _finished ( ) ;
}
return ;
}
console . log ( job ) ;
let form = new FormData ( ) ;
form . append ( "type" , "file" ) ;
form . append ( "file" , job . file ) ;
let xhr = new XMLHttpRequest ( ) ;
xhr . open ( "POST" , "/api/filesystem/" + bucket _id + encodeURIComponent ( job . target _dir + "/" + job . file . name ) , true ) ;
xhr . timeout = 21600000 ; // 6 hours, to account for slow connections
// Report progress updates back to the caller
xhr . upload . addEventListener ( "progress" , evt => {
if ( evt . lengthComputable ) {
job . progress = evt . loaded / evt . total ;
$$invalidate ( 0 , upload _jobs ) ;
}
} ) ;
xhr . onreadystatechange = ( ) => {
// readystate 4 means the upload is done
if ( xhr . readyState !== 4 ) {
return ;
}
if ( xhr . status >= 100 && xhr . status < 400 ) {
// Request is a success
// Finish the upload job
job . uploading = false ;
job . finished = true ;
upload _file ( ) ;
} else if ( xhr . status >= 400 ) {
// Request failed
console . log ( "Upload error. status: " + xhr . status + " response: " + xhr . response ) ;
let resp = JSON . parse ( xhr . response ) ;
if ( job . tries === 3 ) {
// Upload failed
return ;
} else {
// Try again
job . tries ++ ;
job . uploading = false ;
job . finished = false ;
}
// Sleep the upload thread for 5 seconds
setTimeout ( upload _file , 5000 ) ;
} else {
// Request did not arrive
if ( job . tries === 3 ) {
// Upload failed
alert ( "upload failed " + xhr . responseText ) ;
job . uploading = false ;
job . finished = false ;
} else {
// Try again
job . tries ++ ;
}
// Sleep the upload thread for 5 seconds
setTimeout ( upload _file , 5000 ) ;
}
$$invalidate ( 0 , upload _jobs ) ;
} ;
xhr . send ( form ) ;
} ;
// File input dialog handling
let file _input ;
const picker = ( ) => {
file _input . click ( ) ;
} ;
const file _input _change = e => {
upload ( e . target . files ) ;
$$invalidate ( 1 , file _input . nodeValue = "" , file _input ) ;
} ;
// Drag and drop upload
let hidden = true ;
const dragover = e => {
$$invalidate ( 2 , hidden = false ) ;
} ;
const dragleave = e => {
$$invalidate ( 2 , hidden = true ) ;
} ;
const drop = e => {
$$invalidate ( 2 , hidden = true ) ;
upload ( e . dataTransfer . files ) ;
} ;
const paste = e => {
if ( e . clipboardData . files [ 0 ] ) {
e . preventDefault ( ) ;
e . stopPropagation ( ) ;
console . log ( e . clipboardData . files [ 0 ] . getAsFile ( ) ) ;
}
} ;
const writable _props = [ "bucket_id" , "target_dir" ] ;
Object . keys ( $$props ) . forEach ( key => {
if ( ! ~ writable _props . indexOf ( key ) && key . slice ( 0 , 2 ) !== "$$" ) console _1 . warn ( ` <FileUploader> was created with unknown prop ' ${ key } ' ` ) ;
} ) ;
function input _binding ( $$value ) {
binding _callbacks [ $$value ? "unshift" : "push" ] ( ( ) => {
file _input = $$value ;
$$invalidate ( 1 , file _input ) ;
} ) ;
}
$$self . $$set = $$props => {
if ( "bucket_id" in $$props ) $$invalidate ( 8 , bucket _id = $$props . bucket _id ) ;
if ( "target_dir" in $$props ) $$invalidate ( 9 , target _dir = $$props . target _dir ) ;
} ;
$$self . $capture _state = ( ) => ( {
createEventDispatcher ,
dispatch ,
bucket _id ,
target _dir ,
upload _jobs ,
upload _threads ,
max _upload _threads ,
upload ,
uploads _finished ,
upload _file ,
file _input ,
picker ,
file _input _change ,
hidden ,
dragover ,
dragleave ,
drop ,
paste
} ) ;
$$self . $inject _state = $$props => {
if ( "dispatch" in $$props ) dispatch = $$props . dispatch ;
if ( "bucket_id" in $$props ) $$invalidate ( 8 , bucket _id = $$props . bucket _id ) ;
if ( "target_dir" in $$props ) $$invalidate ( 9 , target _dir = $$props . target _dir ) ;
if ( "upload_jobs" in $$props ) $$invalidate ( 0 , upload _jobs = $$props . upload _jobs ) ;
if ( "upload_threads" in $$props ) upload _threads = $$props . upload _threads ;
if ( "max_upload_threads" in $$props ) max _upload _threads = $$props . max _upload _threads ;
if ( "file_input" in $$props ) $$invalidate ( 1 , file _input = $$props . file _input ) ;
if ( "hidden" in $$props ) $$invalidate ( 2 , hidden = $$props . hidden ) ;
} ;
if ( $$props && "$$inject" in $$props ) {
$$self . $inject _state ( $$props . $$inject ) ;
}
return [
upload _jobs ,
file _input ,
hidden ,
file _input _change ,
dragover ,
dragleave ,
drop ,
paste ,
bucket _id ,
target _dir ,
upload ,
picker ,
input _binding
] ;
}
class FileUploader extends SvelteComponentDev {
constructor ( options ) {
super ( options ) ;
init ( this , options , instance$4 , create _fragment$4 , safe _not _equal , {
bucket _id : 8 ,
target _dir : 9 ,
upload : 10 ,
picker : 11
} ) ;
dispatch _dev ( "SvelteRegisterComponent" , {
component : this ,
tagName : "FileUploader" ,
options ,
id : create _fragment$4 . name
} ) ;
const { ctx } = this . $$ ;
const props = options . props || { } ;
if ( /*bucket_id*/ ctx [ 8 ] === undefined && ! ( "bucket_id" in props ) ) {
console _1 . warn ( "<FileUploader> was created without expected prop 'bucket_id'" ) ;
}
if ( /*target_dir*/ ctx [ 9 ] === undefined && ! ( "target_dir" in props ) ) {
console _1 . warn ( "<FileUploader> was created without expected prop 'target_dir'" ) ;
}
}
get bucket _id ( ) {
throw new Error ( "<FileUploader>: Props cannot be read directly from the component instance unless compiling with 'accessors: true' or '<svelte:options accessors/>'" ) ;
}
set bucket _id ( value ) {
throw new Error ( "<FileUploader>: Props cannot be set directly on the component instance unless compiling with 'accessors: true' or '<svelte:options accessors/>'" ) ;
}
get target _dir ( ) {
throw new Error ( "<FileUploader>: Props cannot be read directly from the component instance unless compiling with 'accessors: true' or '<svelte:options accessors/>'" ) ;
}
set target _dir ( value ) {
throw new Error ( "<FileUploader>: Props cannot be set directly on the component instance unless compiling with 'accessors: true' or '<svelte:options accessors/>'" ) ;
}
get upload ( ) {
return this . $$ . ctx [ 10 ] ;
}
set upload ( value ) {
throw new Error ( "<FileUploader>: Props cannot be set directly on the component instance unless compiling with 'accessors: true' or '<svelte:options accessors/>'" ) ;
}
get picker ( ) {
return this . $$ . ctx [ 11 ] ;
}
set picker ( value ) {
throw new Error ( "<FileUploader>: Props cannot be set directly on the component instance unless compiling with 'accessors: true' or '<svelte:options accessors/>'" ) ;
}
}
/* src/filesystem/filemanager/FileManager.svelte generated by Svelte v3.29.6 */
const { console : console _1$1 } = globals ;
const file$5 = "src/filesystem/filemanager/FileManager.svelte" ;
function get _each _context$1 ( ctx , list , i ) {
const child _ctx = ctx . slice ( ) ;
child _ctx [ 16 ] = list [ i ] ;
child _ctx [ 18 ] = i ;
return child _ctx ;
}
// (114:3) {#if state.bucket.permissions.update}
function create _if _block _2 ( ctx ) {
let button0 ;
let i0 ;
let t1 ;
let button1 ;
let i1 ;
let t3 ;
let button2 ;
let i2 ;
let mounted ;
let dispose ;
const block = {
c : function create ( ) {
button0 = element ( "button" ) ;
i0 = element ( "i" ) ;
i0 . textContent = "cloud_upload" ;
t1 = space ( ) ;
button1 = element ( "button" ) ;
i1 = element ( "i" ) ;
i1 . textContent = "create_new_folder" ;
t3 = space ( ) ;
button2 = element ( "button" ) ;
i2 = element ( "i" ) ;
i2 . textContent = "delete" ;
attr _dev ( i0 , "class" , "icon" ) ;
add _location ( i0 , file$5 , 114 , 39 , 3192 ) ;
attr _dev ( button0 , "class" , "svelte-1bqdpyt" ) ;
add _location ( button0 , file$5 , 114 , 4 , 3157 ) ;
attr _dev ( i1 , "class" , "icon" ) ;
add _location ( i1 , file$5 , 115 , 51 , 3285 ) ;
attr _dev ( button1 , "class" , "svelte-1bqdpyt" ) ;
add _location ( button1 , file$5 , 115 , 4 , 3238 ) ;
attr _dev ( i2 , "class" , "icon" ) ;
add _location ( i2 , file$5 , 120 , 5 , 3425 ) ;
attr _dev ( button2 , "class" , "svelte-1bqdpyt" ) ;
toggle _class ( button2 , "button_red" , /*mode*/ ctx [ 1 ] === "deleting" ) ;
add _location ( button2 , file$5 , 117 , 4 , 3337 ) ;
} ,
m : function mount ( target , anchor ) {
insert _dev ( target , button0 , anchor ) ;
append _dev ( button0 , i0 ) ;
insert _dev ( target , t1 , anchor ) ;
insert _dev ( target , button1 , anchor ) ;
append _dev ( button1 , i1 ) ;
insert _dev ( target , t3 , anchor ) ;
insert _dev ( target , button2 , anchor ) ;
append _dev ( button2 , i2 ) ;
if ( ! mounted ) {
dispose = [
listen _dev (
button0 ,
"click" ,
function ( ) {
if ( is _function ( /*uploader*/ ctx [ 3 ] . picker ) ) /*uploader*/ ctx [ 3 ] . picker . apply ( this , arguments ) ;
} ,
false ,
false ,
false
) ,
listen _dev ( button1 , "click" , /*click_handler*/ ctx [ 10 ] , false , false , false ) ,
listen _dev ( button2 , "click" , /*delete_toggle*/ ctx [ 9 ] , false , false , false )
] ;
mounted = true ;
}
} ,
p : function update ( new _ctx , dirty ) {
ctx = new _ctx ;
if ( dirty & /*mode*/ 2 ) {
toggle _class ( button2 , "button_red" , /*mode*/ ctx [ 1 ] === "deleting" ) ;
}
} ,
d : function destroy ( detaching ) {
if ( detaching ) detach _dev ( button0 ) ;
if ( detaching ) detach _dev ( t1 ) ;
if ( detaching ) detach _dev ( button1 ) ;
if ( detaching ) detach _dev ( t3 ) ;
if ( detaching ) detach _dev ( button2 ) ;
mounted = false ;
run _all ( dispose ) ;
}
} ;
dispatch _dev ( "SvelteRegisterBlock" , {
block ,
id : create _if _block _2 . name ,
type : "if" ,
source : "(114:3) {#if state.bucket.permissions.update}" ,
ctx
} ) ;
return block ;
}
// (127:2) {#if mode === "deleting"}
function create _if _block _1 ( ctx ) {
let div2 ;
let div0 ;
let t1 ;
let div1 ;
let button0 ;
let i0 ;
let t3 ;
let t4 ;
let button1 ;
let i1 ;
let t6 ;
let t7 ;
let br ;
let mounted ;
let dispose ;
const block = {
c : function create ( ) {
div2 = element ( "div" ) ;
div0 = element ( "div" ) ;
div0 . textContent = "Deleting files. Click a file or directory to select it for deletion.\n\t\t\t\t\tClick confirm to delete the files." ;
t1 = space ( ) ;
div1 = element ( "div" ) ;
button0 = element ( "button" ) ;
i0 = element ( "i" ) ;
i0 . textContent = "undo" ;
t3 = text ( "\n\t\t\t\t\t\tCancel" ) ;
t4 = space ( ) ;
button1 = element ( "button" ) ;
i1 = element ( "i" ) ;
i1 . textContent = "delete" ;
t6 = text ( "\n\t\t\t\t\t\tDelete selected" ) ;
t7 = space ( ) ;
br = element ( "br" ) ;
set _style ( div0 , "flex" , "1 1 auto" ) ;
set _style ( div0 , "justify-self" , "center" ) ;
attr _dev ( div0 , "class" , "svelte-1bqdpyt" ) ;
add _location ( div0 , file$5 , 128 , 4 , 3579 ) ;
attr _dev ( i0 , "class" , "icon" ) ;
add _location ( i0 , file$5 , 134 , 6 , 3880 ) ;
add _location ( button0 , file$5 , 133 , 5 , 3840 ) ;
attr _dev ( i1 , "class" , "icon" ) ;
add _location ( i1 , file$5 , 138 , 6 , 3995 ) ;
attr _dev ( button1 , "class" , "button_red" ) ;
add _location ( button1 , file$5 , 137 , 5 , 3938 ) ;
set _style ( div1 , "display" , "flex" ) ;
set _style ( div1 , "flex-direction" , "row" ) ;
set _style ( div1 , "justify-content" , "center" ) ;
attr _dev ( div1 , "class" , "svelte-1bqdpyt" ) ;
add _location ( div1 , file$5 , 132 , 4 , 3760 ) ;
attr _dev ( div2 , "class" , "toolbar toolbar_delete highlight_red svelte-1bqdpyt" ) ;
add _location ( div2 , file$5 , 127 , 3 , 3524 ) ;
add _location ( br , file$5 , 143 , 3 , 4083 ) ;
} ,
m : function mount ( target , anchor ) {
insert _dev ( target , div2 , anchor ) ;
append _dev ( div2 , div0 ) ;
append _dev ( div2 , t1 ) ;
2020-11-11 00:00:54 +01:00
append _dev ( div2 , div1 ) ;
2020-11-11 23:45:52 +01:00
append _dev ( div1 , button0 ) ;
append _dev ( button0 , i0 ) ;
2020-11-17 23:39:27 +01:00
append _dev ( button0 , t3 ) ;
append _dev ( div1 , t4 ) ;
append _dev ( div1 , button1 ) ;
append _dev ( button1 , i1 ) ;
append _dev ( button1 , t6 ) ;
insert _dev ( target , t7 , anchor ) ;
insert _dev ( target , br , anchor ) ;
if ( ! mounted ) {
dispose = [
listen _dev ( button0 , "click" , /*delete_toggle*/ ctx [ 9 ] , false , false , false ) ,
listen _dev ( button1 , "click" , /*delete_node*/ ctx [ 8 ] , false , false , false )
] ;
mounted = true ;
}
} ,
p : noop ,
d : function destroy ( detaching ) {
if ( detaching ) detach _dev ( div2 ) ;
if ( detaching ) detach _dev ( t7 ) ;
if ( detaching ) detach _dev ( br ) ;
mounted = false ;
run _all ( dispose ) ;
}
} ;
dispatch _dev ( "SvelteRegisterBlock" , {
block ,
id : create _if _block _1 . name ,
type : "if" ,
source : "(127:2) {#if mode === \\\"deleting\\\"}" ,
ctx
} ) ;
return block ;
}
// (156:3) {#if creating_dir}
function create _if _block$1 ( ctx ) {
let createdirectory ;
let current ;
createdirectory = new CreateDirectory ( {
props : { state : /*state*/ ctx [ 0 ] } ,
$$inline : true
} ) ;
createdirectory . $on ( "done" , /*done_handler*/ ctx [ 12 ] ) ;
createdirectory . $on ( "loading" , /*loading_handler*/ ctx [ 13 ] ) ;
const block = {
c : function create ( ) {
create _component ( createdirectory . $$ . fragment ) ;
} ,
m : function mount ( target , anchor ) {
mount _component ( createdirectory , target , anchor ) ;
current = true ;
} ,
p : function update ( ctx , dirty ) {
const createdirectory _changes = { } ;
if ( dirty & /*state*/ 1 ) createdirectory _changes . state = /*state*/ ctx [ 0 ] ;
createdirectory . $set ( createdirectory _changes ) ;
} ,
i : function intro ( local ) {
if ( current ) return ;
transition _in ( createdirectory . $$ . fragment , local ) ;
current = true ;
} ,
o : function outro ( local ) {
transition _out ( createdirectory . $$ . fragment , local ) ;
current = false ;
} ,
d : function destroy ( detaching ) {
destroy _component ( createdirectory , detaching ) ;
}
} ;
dispatch _dev ( "SvelteRegisterBlock" , {
block ,
id : create _if _block$1 . name ,
type : "if" ,
source : "(156:3) {#if creating_dir}" ,
ctx
} ) ;
return block ;
}
// (160:3) {#each state.base.children as child, index}
function create _each _block$1 ( ctx ) {
let a ;
let td0 ;
let img ;
let img _src _value ;
let t0 ;
let td1 ;
let t1 _value = /*child*/ ctx [ 16 ] . name + "" ;
let t1 ;
let t2 ;
let td2 ;
let t3 _value = formatDataVolume ( /*child*/ ctx [ 16 ] . file _size , 3 ) + "" ;
let t3 ;
let t4 ;
let a _href _value ;
let mounted ;
let dispose ;
function click _handler _1 ( ) {
return /*click_handler_1*/ ctx [ 14 ] ( /*index*/ ctx [ 18 ] ) ;
}
const block = {
c : function create ( ) {
a = element ( "a" ) ;
td0 = element ( "td" ) ;
img = element ( "img" ) ;
t0 = space ( ) ;
td1 = element ( "td" ) ;
t1 = text ( t1 _value ) ;
t2 = space ( ) ;
td2 = element ( "td" ) ;
t3 = text ( t3 _value ) ;
t4 = space ( ) ;
if ( img . src !== ( img _src _value = /*node_icon*/ ctx [ 7 ] ( /*child*/ ctx [ 16 ] ) ) ) attr _dev ( img , "src" , img _src _value ) ;
attr _dev ( img , "class" , "node_icon" ) ;
attr _dev ( img , "alt" , "icon" ) ;
add _location ( img , file$5 , 167 , 6 , 4742 ) ;
attr _dev ( td0 , "class" , "svelte-1bqdpyt" ) ;
add _location ( td0 , file$5 , 166 , 5 , 4731 ) ;
attr _dev ( td1 , "class" , "node_name svelte-1bqdpyt" ) ;
add _location ( td1 , file$5 , 169 , 5 , 4817 ) ;
attr _dev ( td2 , "class" , "node_size svelte-1bqdpyt" ) ;
add _location ( td2 , file$5 , 172 , 5 , 4875 ) ;
attr _dev ( a , "href" , a _href _value = /*state*/ ctx [ 0 ] . path _root + /*child*/ ctx [ 16 ] . path ) ;
attr _dev ( a , "class" , "node svelte-1bqdpyt" ) ;
toggle _class ( a , "node_selected" , /*child*/ ctx [ 16 ] . fm _selected ) ;
toggle _class ( a , "node_delete" , /*child*/ ctx [ 16 ] . fm _delete ) ;
add _location ( a , file$5 , 160 , 4 , 4522 ) ;
} ,
m : function mount ( target , anchor ) {
insert _dev ( target , a , anchor ) ;
append _dev ( a , td0 ) ;
append _dev ( td0 , img ) ;
append _dev ( a , t0 ) ;
append _dev ( a , td1 ) ;
append _dev ( td1 , t1 ) ;
append _dev ( a , t2 ) ;
append _dev ( a , td2 ) ;
append _dev ( td2 , t3 ) ;
append _dev ( a , t4 ) ;
if ( ! mounted ) {
dispose = listen _dev ( a , "click" , prevent _default ( click _handler _1 ) , false , true , false ) ;
mounted = true ;
}
} ,
p : function update ( new _ctx , dirty ) {
ctx = new _ctx ;
if ( dirty & /*state*/ 1 && img . src !== ( img _src _value = /*node_icon*/ ctx [ 7 ] ( /*child*/ ctx [ 16 ] ) ) ) {
attr _dev ( img , "src" , img _src _value ) ;
}
if ( dirty & /*state*/ 1 && t1 _value !== ( t1 _value = /*child*/ ctx [ 16 ] . name + "" ) ) set _data _dev ( t1 , t1 _value ) ;
if ( dirty & /*state*/ 1 && t3 _value !== ( t3 _value = formatDataVolume ( /*child*/ ctx [ 16 ] . file _size , 3 ) + "" ) ) set _data _dev ( t3 , t3 _value ) ;
if ( dirty & /*state*/ 1 && a _href _value !== ( a _href _value = /*state*/ ctx [ 0 ] . path _root + /*child*/ ctx [ 16 ] . path ) ) {
attr _dev ( a , "href" , a _href _value ) ;
}
if ( dirty & /*state*/ 1 ) {
toggle _class ( a , "node_selected" , /*child*/ ctx [ 16 ] . fm _selected ) ;
}
if ( dirty & /*state*/ 1 ) {
toggle _class ( a , "node_delete" , /*child*/ ctx [ 16 ] . fm _delete ) ;
}
} ,
d : function destroy ( detaching ) {
if ( detaching ) detach _dev ( a ) ;
mounted = false ;
dispose ( ) ;
}
} ;
dispatch _dev ( "SvelteRegisterBlock" , {
block ,
id : create _each _block$1 . name ,
type : "each" ,
source : "(160:3) {#each state.base.children as child, index}" ,
ctx
} ) ;
return block ;
}
function create _fragment$5 ( ctx ) {
let div4 ;
let div3 ;
let div1 ;
let button ;
let i ;
let t1 ;
let div0 ;
let t2 ;
let t3 ;
let br ;
let t4 ;
let t5 ;
let fileuploader ;
let t6 ;
let div2 ;
let tr ;
let td0 ;
let t7 ;
let td1 ;
let t9 ;
let td2 ;
let t11 ;
let t12 ;
let current ;
let mounted ;
let dispose ;
let if _block0 = /*state*/ ctx [ 0 ] . bucket . permissions . update && create _if _block _2 ( ctx ) ;
let if _block1 = /*mode*/ ctx [ 1 ] === "deleting" && create _if _block _1 ( ctx ) ;
let fileuploader _props = {
bucket _id : /*state*/ ctx [ 0 ] . bucket . id ,
target _dir : /*state*/ ctx [ 0 ] . base . path
} ;
fileuploader = new FileUploader ( {
props : fileuploader _props ,
$$inline : true
} ) ;
/*fileuploader_binding*/ ctx [ 11 ] ( fileuploader ) ;
fileuploader . $on ( "finished" , /*reload*/ ctx [ 6 ] ) ;
let if _block2 = /*creating_dir*/ ctx [ 2 ] && create _if _block$1 ( ctx ) ;
let each _value = /*state*/ ctx [ 0 ] . base . children ;
validate _each _argument ( each _value ) ;
let each _blocks = [ ] ;
for ( let i = 0 ; i < each _value . length ; i += 1 ) {
each _blocks [ i ] = create _each _block$1 ( get _each _context$1 ( ctx , each _value , i ) ) ;
}
const block = {
c : function create ( ) {
div4 = element ( "div" ) ;
div3 = element ( "div" ) ;
div1 = element ( "div" ) ;
button = element ( "button" ) ;
i = element ( "i" ) ;
i . textContent = "arrow_back" ;
t1 = space ( ) ;
div0 = element ( "div" ) ;
t2 = space ( ) ;
if ( if _block0 ) if _block0 . c ( ) ;
t3 = space ( ) ;
br = element ( "br" ) ;
t4 = space ( ) ;
if ( if _block1 ) if _block1 . c ( ) ;
t5 = space ( ) ;
create _component ( fileuploader . $$ . fragment ) ;
t6 = space ( ) ;
div2 = element ( "div" ) ;
tr = element ( "tr" ) ;
td0 = element ( "td" ) ;
t7 = space ( ) ;
td1 = element ( "td" ) ;
td1 . textContent = "name" ;
t9 = space ( ) ;
td2 = element ( "td" ) ;
td2 . textContent = "size" ;
t11 = space ( ) ;
if ( if _block2 ) if _block2 . c ( ) ;
t12 = space ( ) ;
for ( let i = 0 ; i < each _blocks . length ; i += 1 ) {
each _blocks [ i ] . c ( ) ;
}
attr _dev ( i , "class" , "icon" ) ;
add _location ( i , file$5 , 111 , 76 , 3034 ) ;
attr _dev ( button , "class" , "svelte-1bqdpyt" ) ;
toggle _class ( button , "hidden" , /*state*/ ctx [ 0 ] . parents . length === 0 ) ;
add _location ( button , file$5 , 111 , 3 , 2961 ) ;
attr _dev ( div0 , "class" , "toolbar_spacer svelte-1bqdpyt" ) ;
add _location ( div0 , file$5 , 112 , 3 , 3077 ) ;
attr _dev ( div1 , "class" , "toolbar svelte-1bqdpyt" ) ;
add _location ( div1 , file$5 , 110 , 2 , 2936 ) ;
add _location ( br , file$5 , 124 , 2 , 3486 ) ;
attr _dev ( td0 , "class" , "svelte-1bqdpyt" ) ;
add _location ( td0 , file$5 , 150 , 4 , 4268 ) ;
attr _dev ( td1 , "class" , "svelte-1bqdpyt" ) ;
add _location ( td1 , file$5 , 151 , 4 , 4282 ) ;
attr _dev ( td2 , "class" , "svelte-1bqdpyt" ) ;
add _location ( td2 , file$5 , 152 , 4 , 4300 ) ;
attr _dev ( tr , "class" , "svelte-1bqdpyt" ) ;
add _location ( tr , file$5 , 149 , 3 , 4259 ) ;
attr _dev ( div2 , "class" , "directory svelte-1bqdpyt" ) ;
add _location ( div2 , file$5 , 148 , 2 , 4232 ) ;
attr _dev ( div3 , "class" , "width_container svelte-1bqdpyt" ) ;
add _location ( div3 , file$5 , 109 , 1 , 2904 ) ;
attr _dev ( div4 , "class" , "container svelte-1bqdpyt" ) ;
add _location ( div4 , file$5 , 108 , 0 , 2879 ) ;
} ,
l : function claim ( nodes ) {
throw new Error ( "options.hydrate only works if the component was compiled with the `hydratable: true` option" ) ;
} ,
m : function mount ( target , anchor ) {
insert _dev ( target , div4 , anchor ) ;
append _dev ( div4 , div3 ) ;
append _dev ( div3 , div1 ) ;
append _dev ( div1 , button ) ;
append _dev ( button , i ) ;
2020-11-11 23:45:52 +01:00
append _dev ( div1 , t1 ) ;
append _dev ( div1 , div0 ) ;
append _dev ( div1 , t2 ) ;
2020-11-17 23:39:27 +01:00
if ( if _block0 ) if _block0 . m ( div1 , null ) ;
append _dev ( div3 , t3 ) ;
append _dev ( div3 , br ) ;
append _dev ( div3 , t4 ) ;
if ( if _block1 ) if _block1 . m ( div3 , null ) ;
append _dev ( div3 , t5 ) ;
mount _component ( fileuploader , div3 , null ) ;
append _dev ( div3 , t6 ) ;
append _dev ( div3 , div2 ) ;
append _dev ( div2 , tr ) ;
2020-11-11 23:45:52 +01:00
append _dev ( tr , td0 ) ;
2020-11-17 23:39:27 +01:00
append _dev ( tr , t7 ) ;
2020-11-11 23:45:52 +01:00
append _dev ( tr , td1 ) ;
2020-11-17 23:39:27 +01:00
append _dev ( tr , t9 ) ;
2020-11-11 23:45:52 +01:00
append _dev ( tr , td2 ) ;
2020-11-17 23:39:27 +01:00
append _dev ( div2 , t11 ) ;
if ( if _block2 ) if _block2 . m ( div2 , null ) ;
append _dev ( div2 , t12 ) ;
2020-11-11 23:45:52 +01:00
for ( let i = 0 ; i < each _blocks . length ; i += 1 ) {
2020-11-17 23:39:27 +01:00
each _blocks [ i ] . m ( div2 , null ) ;
2020-11-11 23:45:52 +01:00
}
2020-11-11 00:00:54 +01:00
2020-11-17 23:39:27 +01:00
current = true ;
2020-11-11 23:45:52 +01:00
2020-11-17 23:39:27 +01:00
if ( ! mounted ) {
dispose = listen _dev ( button , "click" , /*navigate_up*/ ctx [ 5 ] , false , false , false ) ;
2020-11-11 00:00:54 +01:00
mounted = true ;
}
} ,
p : function update ( ctx , [ dirty ] ) {
2020-11-17 23:39:27 +01:00
if ( dirty & /*state*/ 1 ) {
toggle _class ( button , "hidden" , /*state*/ ctx [ 0 ] . parents . length === 0 ) ;
}
if ( /*state*/ ctx [ 0 ] . bucket . permissions . update ) {
if ( if _block0 ) {
if _block0 . p ( ctx , dirty ) ;
} else {
if _block0 = create _if _block _2 ( ctx ) ;
if _block0 . c ( ) ;
if _block0 . m ( div1 , null ) ;
}
} else if ( if _block0 ) {
if _block0 . d ( 1 ) ;
if _block0 = null ;
}
if ( /*mode*/ ctx [ 1 ] === "deleting" ) {
if ( if _block1 ) {
if _block1 . p ( ctx , dirty ) ;
} else {
if _block1 = create _if _block _1 ( ctx ) ;
if _block1 . c ( ) ;
if _block1 . m ( div3 , t5 ) ;
}
} else if ( if _block1 ) {
if _block1 . d ( 1 ) ;
if _block1 = null ;
}
const fileuploader _changes = { } ;
if ( dirty & /*state*/ 1 ) fileuploader _changes . bucket _id = /*state*/ ctx [ 0 ] . bucket . id ;
if ( dirty & /*state*/ 1 ) fileuploader _changes . target _dir = /*state*/ ctx [ 0 ] . base . path ;
fileuploader . $set ( fileuploader _changes ) ;
if ( /*creating_dir*/ ctx [ 2 ] ) {
if ( if _block2 ) {
if _block2 . p ( ctx , dirty ) ;
if ( dirty & /*creating_dir*/ 4 ) {
transition _in ( if _block2 , 1 ) ;
}
} else {
if _block2 = create _if _block$1 ( ctx ) ;
if _block2 . c ( ) ;
transition _in ( if _block2 , 1 ) ;
if _block2 . m ( div2 , t12 ) ;
}
} else if ( if _block2 ) {
group _outros ( ) ;
transition _out ( if _block2 , 1 , 1 , ( ) => {
if _block2 = null ;
} ) ;
check _outros ( ) ;
2020-11-11 23:45:52 +01:00
}
2020-11-11 00:00:54 +01:00
2020-11-17 23:39:27 +01:00
if ( dirty & /*state, node_click, formatDataVolume, node_icon*/ 145 ) {
each _value = /*state*/ ctx [ 0 ] . base . children ;
2020-11-11 23:45:52 +01:00
validate _each _argument ( each _value ) ;
let i ;
for ( i = 0 ; i < each _value . length ; i += 1 ) {
2020-11-17 23:39:27 +01:00
const child _ctx = get _each _context$1 ( ctx , each _value , i ) ;
2020-11-11 23:45:52 +01:00
if ( each _blocks [ i ] ) {
each _blocks [ i ] . p ( child _ctx , dirty ) ;
} else {
2020-11-17 23:39:27 +01:00
each _blocks [ i ] = create _each _block$1 ( child _ctx ) ;
2020-11-11 23:45:52 +01:00
each _blocks [ i ] . c ( ) ;
2020-11-17 23:39:27 +01:00
each _blocks [ i ] . m ( div2 , null ) ;
2020-11-11 23:45:52 +01:00
}
2020-11-11 00:00:54 +01:00
}
2020-11-11 23:45:52 +01:00
for ( ; i < each _blocks . length ; i += 1 ) {
each _blocks [ i ] . d ( 1 ) ;
}
each _blocks . length = each _value . length ;
2020-11-11 00:00:54 +01:00
}
} ,
2020-11-17 23:39:27 +01:00
i : function intro ( local ) {
if ( current ) return ;
transition _in ( fileuploader . $$ . fragment , local ) ;
transition _in ( if _block2 ) ;
current = true ;
} ,
o : function outro ( local ) {
transition _out ( fileuploader . $$ . fragment , local ) ;
transition _out ( if _block2 ) ;
current = false ;
} ,
2020-11-11 00:00:54 +01:00
d : function destroy ( detaching ) {
2020-11-17 23:39:27 +01:00
if ( detaching ) detach _dev ( div4 ) ;
if ( if _block0 ) if _block0 . d ( ) ;
if ( if _block1 ) if _block1 . d ( ) ;
/*fileuploader_binding*/ ctx [ 11 ] ( null ) ;
destroy _component ( fileuploader ) ;
if ( if _block2 ) if _block2 . d ( ) ;
2020-11-11 23:45:52 +01:00
destroy _each ( each _blocks , detaching ) ;
2020-11-11 00:00:54 +01:00
mounted = false ;
2020-11-17 23:39:27 +01:00
dispose ( ) ;
2020-11-11 00:00:54 +01:00
}
} ;
dispatch _dev ( "SvelteRegisterBlock" , {
block ,
2020-11-17 23:39:27 +01:00
id : create _fragment$5 . name ,
2020-11-11 00:00:54 +01:00
type : "component" ,
source : "" ,
ctx
} ) ;
return block ;
}
2020-11-17 23:39:27 +01:00
function instance$5 ( $$self , $$props , $$invalidate ) {
2020-11-11 00:00:54 +01:00
let { $$slots : slots = { } , $$scope } = $$props ;
2020-11-17 23:39:27 +01:00
validate _slots ( "FileManager" , slots , [ ] ) ;
2020-11-11 00:00:54 +01:00
let dispatch = createEventDispatcher ( ) ;
2020-11-17 23:39:27 +01:00
let { state } = $$props ;
2020-11-11 23:45:52 +01:00
let mode = "viewing" ;
2020-11-17 23:39:27 +01:00
let creating _dir = false ;
let uploader ;
const node _click = index => {
$$invalidate ( 2 , creating _dir = false ) ;
2020-11-11 23:45:52 +01:00
2020-11-17 23:39:27 +01:00
// We prefix our custom state properties with fm_ to not interfere with
// other modules
2020-11-11 23:45:52 +01:00
if ( mode === "viewing" ) {
2020-11-17 23:39:27 +01:00
dispatch ( "navigate" , state . base . children [ index ] . path ) ;
2020-11-11 23:45:52 +01:00
} else if ( mode === "selecting" ) {
2020-11-17 23:39:27 +01:00
$$invalidate ( 0 , state . base . children [ index ] . fm _selected = ! state . base . children [ index ] . fm _selected , state ) ;
} else if ( mode === "deleting" ) {
$$invalidate ( 0 , state . base . children [ index ] . fm _delete = ! state . base . children [ index ] . fm _delete , state ) ;
2020-11-11 23:45:52 +01:00
}
2020-11-11 00:00:54 +01:00
} ;
const navigate _up = ( ) => {
2020-11-17 23:39:27 +01:00
$$invalidate ( 2 , creating _dir = false ) ;
2020-11-11 23:45:52 +01:00
// Go to the path of the last parent
2020-11-17 23:39:27 +01:00
if ( state . parents . length !== 0 ) {
dispatch ( "navigate" , state . parents [ state . parents . length - 1 ] . path ) ;
2020-11-11 00:00:54 +01:00
}
} ;
2020-11-17 23:39:27 +01:00
const reload = ( ) => {
dispatch ( "navigate" , state . base . path ) ;
} ;
2020-11-11 00:00:54 +01:00
const node _icon = node => {
if ( node . type === "dir" ) {
return "/res/img/mime/folder.png" ;
}
switch ( node . file _type ) {
case "image/gif" :
return "/res/img/mime/image-gif.png" ;
case ( "image/apng" ) :
return "/res/img/mime/image-png.png" ;
case "image/jpeg" :
return "/res/img/mime/image-jpeg.png" ;
case "application/pdf" :
return "/res/img/mime/pdf.png" ;
2020-11-17 23:39:27 +01:00
case "application/ogg" :
return "/res/img/mime/audio.png" ;
2020-11-11 00:00:54 +01:00
}
if ( node . file _type . startsWith ( "audio/" ) ) {
return "/res/img/mime/audio.png" ;
} else if ( node . file _type . startsWith ( "video/" ) ) {
return "/res/img/mime/video.png" ;
} else if ( node . file _type . startsWith ( "text/" ) ) {
return "/res/img/mime/text.png" ;
} else if ( node . file _type . startsWith ( "image/" ) ) {
return "/res/img/mime/image-png.png" ;
} else if ( node . file _type . startsWith ( "application/" ) ) {
return "/res/img/mime/archive.png" ;
}
return "/res/img/mime/empty.png" ;
} ;
2020-11-17 23:39:27 +01:00
const delete _node = ( ) => {
if ( mode !== "deleting" ) {
$$invalidate ( 1 , mode = "deleting" ) ;
return ;
}
dispatch ( "loading" , true ) ;
// Save all promises with deletion requests in an array
let promises = [ ] ;
state . base . children . forEach ( child => {
if ( ! child . fm _delete ) {
return ;
}
promises . push ( fs _delete _node ( state . bucket . id , child . path ) ) ;
} ) ;
// Wait for all the promises to finish
Promise . all ( promises ) . catch ( err => {
console . error ( err ) ;
} ) . finally ( ( ) => {
$$invalidate ( 1 , mode = "viewing" ) ;
reload ( ) ;
} ) ;
} ;
const delete _toggle = ( ) => {
// Turn on deletion mode if it's not already
if ( mode !== "deleting" ) {
$$invalidate ( 1 , mode = "deleting" ) ;
return ;
}
// Return to normal and unmark all the marked files
$$invalidate ( 1 , mode = "viewing" ) ;
state . base . children . forEach ( ( child , i ) => {
if ( child . fm _delete ) {
$$invalidate ( 0 , state . base . children [ i ] . fm _delete = false , state ) ;
}
} ) ;
} ;
const writable _props = [ "state" ] ;
2020-11-11 00:00:54 +01:00
Object . keys ( $$props ) . forEach ( key => {
2020-11-17 23:39:27 +01:00
if ( ! ~ writable _props . indexOf ( key ) && key . slice ( 0 , 2 ) !== "$$" ) console _1$1 . warn ( ` <FileManager> was created with unknown prop ' ${ key } ' ` ) ;
2020-11-11 00:00:54 +01:00
} ) ;
2020-11-17 23:39:27 +01:00
const click _handler = ( ) => {
$$invalidate ( 2 , creating _dir = true ) ;
} ;
function fileuploader _binding ( $$value ) {
binding _callbacks [ $$value ? "unshift" : "push" ] ( ( ) => {
uploader = $$value ;
$$invalidate ( 3 , uploader ) ;
} ) ;
}
const done _handler = ( ) => {
reload ( ) ;
$$invalidate ( 2 , creating _dir = false ) ;
} ;
function loading _handler ( event ) {
bubble ( $$self , event ) ;
}
const click _handler _1 = index => {
node _click ( index ) ;
2020-11-11 23:45:52 +01:00
} ;
2020-11-11 00:00:54 +01:00
$$self . $$set = $$props => {
2020-11-17 23:39:27 +01:00
if ( "state" in $$props ) $$invalidate ( 0 , state = $$props . state ) ;
2020-11-11 00:00:54 +01:00
} ;
$$self . $capture _state = ( ) => ( {
2020-11-11 23:45:52 +01:00
formatDataVolume ,
2020-11-17 23:39:27 +01:00
fs _delete _node ,
2020-11-11 00:00:54 +01:00
createEventDispatcher ,
2020-11-17 23:39:27 +01:00
CreateDirectory ,
FileUploader ,
2020-11-11 00:00:54 +01:00
dispatch ,
2020-11-17 23:39:27 +01:00
state ,
2020-11-11 23:45:52 +01:00
mode ,
2020-11-17 23:39:27 +01:00
creating _dir ,
uploader ,
2020-11-11 23:45:52 +01:00
node _click ,
2020-11-11 00:00:54 +01:00
navigate _up ,
2020-11-17 23:39:27 +01:00
reload ,
2020-11-11 23:45:52 +01:00
node _icon ,
2020-11-17 23:39:27 +01:00
delete _node ,
delete _toggle
2020-11-11 00:00:54 +01:00
} ) ;
$$self . $inject _state = $$props => {
if ( "dispatch" in $$props ) dispatch = $$props . dispatch ;
2020-11-17 23:39:27 +01:00
if ( "state" in $$props ) $$invalidate ( 0 , state = $$props . state ) ;
if ( "mode" in $$props ) $$invalidate ( 1 , mode = $$props . mode ) ;
if ( "creating_dir" in $$props ) $$invalidate ( 2 , creating _dir = $$props . creating _dir ) ;
if ( "uploader" in $$props ) $$invalidate ( 3 , uploader = $$props . uploader ) ;
2020-11-11 00:00:54 +01:00
} ;
if ( $$props && "$$inject" in $$props ) {
$$self . $inject _state ( $$props . $$inject ) ;
}
2020-11-17 23:39:27 +01:00
return [
state ,
mode ,
creating _dir ,
uploader ,
node _click ,
navigate _up ,
reload ,
node _icon ,
delete _node ,
delete _toggle ,
click _handler ,
fileuploader _binding ,
done _handler ,
loading _handler ,
click _handler _1
] ;
2020-11-11 00:00:54 +01:00
}
2020-11-17 23:39:27 +01:00
class FileManager extends SvelteComponentDev {
2020-11-11 00:00:54 +01:00
constructor ( options ) {
super ( options ) ;
2020-11-17 23:39:27 +01:00
init ( this , options , instance$5 , create _fragment$5 , safe _not _equal , { state : 0 } ) ;
2020-11-11 00:00:54 +01:00
dispatch _dev ( "SvelteRegisterComponent" , {
component : this ,
2020-11-17 23:39:27 +01:00
tagName : "FileManager" ,
2020-11-11 00:00:54 +01:00
options ,
2020-11-17 23:39:27 +01:00
id : create _fragment$5 . name
2020-11-11 00:00:54 +01:00
} ) ;
const { ctx } = this . $$ ;
const props = options . props || { } ;
2020-11-17 23:39:27 +01:00
if ( /*state*/ ctx [ 0 ] === undefined && ! ( "state" in props ) ) {
console _1$1 . warn ( "<FileManager> was created without expected prop 'state'" ) ;
2020-11-11 23:45:52 +01:00
}
2020-11-11 00:00:54 +01:00
}
2020-11-17 23:39:27 +01:00
get state ( ) {
throw new Error ( "<FileManager>: Props cannot be read directly from the component instance unless compiling with 'accessors: true' or '<svelte:options accessors/>'" ) ;
2020-11-11 23:45:52 +01:00
}
2020-11-17 23:39:27 +01:00
set state ( value ) {
throw new Error ( "<FileManager>: Props cannot be set directly on the component instance unless compiling with 'accessors: true' or '<svelte:options accessors/>'" ) ;
2020-11-11 23:45:52 +01:00
}
}
2020-11-11 00:00:54 +01:00
2020-11-11 23:45:52 +01:00
/* src/filesystem/viewers/Audio.svelte generated by Svelte v3.29.6 */
2020-11-17 23:39:27 +01:00
const file$6 = "src/filesystem/viewers/Audio.svelte" ;
2020-11-11 00:00:54 +01:00
2020-11-17 23:39:27 +01:00
function create _fragment$6 ( ctx ) {
2020-11-11 23:45:52 +01:00
let div ;
2020-11-17 23:39:27 +01:00
let t0 _value = /*state*/ ctx [ 0 ] . base . name + "" ;
2020-11-11 23:45:52 +01:00
let t0 ;
let t1 ;
let br0 ;
let br1 ;
let t2 ;
let audio ;
let track ;
let audio _src _value ;
let mounted ;
let dispose ;
2020-11-11 00:00:54 +01:00
const block = {
c : function create ( ) {
2020-11-11 23:45:52 +01:00
div = element ( "div" ) ;
t0 = text ( t0 _value ) ;
t1 = space ( ) ;
br0 = element ( "br" ) ;
br1 = element ( "br" ) ;
t2 = space ( ) ;
audio = element ( "audio" ) ;
track = element ( "track" ) ;
2020-11-17 23:39:27 +01:00
add _location ( br0 , file$6 , 10 , 1 , 228 ) ;
add _location ( br1 , file$6 , 10 , 6 , 233 ) ;
2020-11-11 23:45:52 +01:00
attr _dev ( track , "kind" , "captions" ) ;
2020-11-17 23:39:27 +01:00
add _location ( track , file$6 , 17 , 2 , 409 ) ;
2020-11-11 23:45:52 +01:00
attr _dev ( audio , "class" , "player svelte-11r8rw7" ) ;
2020-11-17 23:39:27 +01:00
if ( audio . src !== ( audio _src _value = fs _get _file _url ( /*state*/ ctx [ 0 ] . bucket . id , /*state*/ ctx [ 0 ] . base . path ) ) ) attr _dev ( audio , "src" , audio _src _value ) ;
2020-11-11 23:45:52 +01:00
audio . autoplay = "autoplay" ;
audio . controls = "controls" ;
2020-11-17 23:39:27 +01:00
add _location ( audio , file$6 , 11 , 1 , 240 ) ;
2020-11-11 23:45:52 +01:00
attr _dev ( div , "class" , "container svelte-11r8rw7" ) ;
2020-11-17 23:39:27 +01:00
add _location ( div , file$6 , 8 , 0 , 184 ) ;
2020-11-11 23:45:52 +01:00
} ,
l : function claim ( nodes ) {
throw new Error ( "options.hydrate only works if the component was compiled with the `hydratable: true` option" ) ;
2020-11-11 00:00:54 +01:00
} ,
m : function mount ( target , anchor ) {
2020-11-11 23:45:52 +01:00
insert _dev ( target , div , anchor ) ;
append _dev ( div , t0 ) ;
append _dev ( div , t1 ) ;
append _dev ( div , br0 ) ;
append _dev ( div , br1 ) ;
append _dev ( div , t2 ) ;
append _dev ( div , audio ) ;
append _dev ( audio , track ) ;
if ( ! mounted ) {
2020-11-17 23:39:27 +01:00
dispose = listen _dev ( audio , "ended" , /*ended_handler*/ ctx [ 2 ] , false , false , false ) ;
2020-11-11 23:45:52 +01:00
mounted = true ;
}
2020-11-11 00:00:54 +01:00
} ,
2020-11-11 23:45:52 +01:00
p : function update ( ctx , [ dirty ] ) {
2020-11-17 23:39:27 +01:00
if ( dirty & /*state*/ 1 && t0 _value !== ( t0 _value = /*state*/ ctx [ 0 ] . base . name + "" ) ) set _data _dev ( t0 , t0 _value ) ;
2020-11-11 23:45:52 +01:00
2020-11-17 23:39:27 +01:00
if ( dirty & /*state*/ 1 && audio . src !== ( audio _src _value = fs _get _file _url ( /*state*/ ctx [ 0 ] . bucket . id , /*state*/ ctx [ 0 ] . base . path ) ) ) {
2020-11-11 23:45:52 +01:00
attr _dev ( audio , "src" , audio _src _value ) ;
}
2020-11-11 00:00:54 +01:00
} ,
2020-11-11 23:45:52 +01:00
i : noop ,
o : noop ,
2020-11-11 00:00:54 +01:00
d : function destroy ( detaching ) {
2020-11-11 23:45:52 +01:00
if ( detaching ) detach _dev ( div ) ;
mounted = false ;
dispose ( ) ;
2020-11-11 00:00:54 +01:00
}
} ;
dispatch _dev ( "SvelteRegisterBlock" , {
block ,
2020-11-17 23:39:27 +01:00
id : create _fragment$6 . name ,
2020-11-11 23:45:52 +01:00
type : "component" ,
source : "" ,
2020-11-11 00:00:54 +01:00
ctx
} ) ;
return block ;
}
2020-11-17 23:39:27 +01:00
function instance$6 ( $$self , $$props , $$invalidate ) {
2020-11-11 23:45:52 +01:00
let { $$slots : slots = { } , $$scope } = $$props ;
validate _slots ( "Audio" , slots , [ ] ) ;
let dispatch = createEventDispatcher ( ) ;
2020-11-17 23:39:27 +01:00
let { state } = $$props ;
const writable _props = [ "state" ] ;
2020-11-11 23:45:52 +01:00
Object . keys ( $$props ) . forEach ( key => {
if ( ! ~ writable _props . indexOf ( key ) && key . slice ( 0 , 2 ) !== "$$" ) console . warn ( ` <Audio> was created with unknown prop ' ${ key } ' ` ) ;
} ) ;
2020-11-17 23:39:27 +01:00
const ended _handler = ( ) => {
dispatch ( "next" ) ;
} ;
2020-11-11 23:45:52 +01:00
$$self . $$set = $$props => {
2020-11-17 23:39:27 +01:00
if ( "state" in $$props ) $$invalidate ( 0 , state = $$props . state ) ;
2020-11-11 23:45:52 +01:00
} ;
$$self . $capture _state = ( ) => ( {
2020-11-17 23:39:27 +01:00
fs _get _file _url ,
2020-11-11 23:45:52 +01:00
createEventDispatcher ,
dispatch ,
2020-11-17 23:39:27 +01:00
state
2020-11-11 23:45:52 +01:00
} ) ;
$$self . $inject _state = $$props => {
2020-11-17 23:39:27 +01:00
if ( "dispatch" in $$props ) $$invalidate ( 1 , dispatch = $$props . dispatch ) ;
if ( "state" in $$props ) $$invalidate ( 0 , state = $$props . state ) ;
2020-11-11 23:45:52 +01:00
} ;
if ( $$props && "$$inject" in $$props ) {
$$self . $inject _state ( $$props . $$inject ) ;
}
2020-11-17 23:39:27 +01:00
return [ state , dispatch , ended _handler ] ;
2020-11-11 23:45:52 +01:00
}
class Audio extends SvelteComponentDev {
constructor ( options ) {
super ( options ) ;
2020-11-17 23:39:27 +01:00
init ( this , options , instance$6 , create _fragment$6 , safe _not _equal , { state : 0 } ) ;
2020-11-11 23:45:52 +01:00
dispatch _dev ( "SvelteRegisterComponent" , {
component : this ,
tagName : "Audio" ,
options ,
2020-11-17 23:39:27 +01:00
id : create _fragment$6 . name
2020-11-11 23:45:52 +01:00
} ) ;
const { ctx } = this . $$ ;
const props = options . props || { } ;
2020-11-17 23:39:27 +01:00
if ( /*state*/ ctx [ 0 ] === undefined && ! ( "state" in props ) ) {
console . warn ( "<Audio> was created without expected prop 'state'" ) ;
2020-11-11 23:45:52 +01:00
}
}
2020-11-17 23:39:27 +01:00
get state ( ) {
2020-11-11 23:45:52 +01:00
throw new Error ( "<Audio>: Props cannot be read directly from the component instance unless compiling with 'accessors: true' or '<svelte:options accessors/>'" ) ;
}
2020-11-17 23:39:27 +01:00
set state ( value ) {
2020-11-11 23:45:52 +01:00
throw new Error ( "<Audio>: Props cannot be set directly on the component instance unless compiling with 'accessors: true' or '<svelte:options accessors/>'" ) ;
}
}
/* src/filesystem/viewers/Image.svelte generated by Svelte v3.29.6 */
2020-11-17 23:39:27 +01:00
const file$7 = "src/filesystem/viewers/Image.svelte" ;
2020-11-11 23:45:52 +01:00
2020-11-17 23:39:27 +01:00
function create _fragment$7 ( ctx ) {
2020-11-11 23:45:52 +01:00
let div ;
let img ;
let img _src _value ;
let mounted ;
let dispose ;
const block = {
c : function create ( ) {
div = element ( "div" ) ;
img = element ( "img" ) ;
attr _dev ( img , "class" , "image svelte-xjzx7h" ) ;
2020-11-17 23:39:27 +01:00
if ( img . src !== ( img _src _value = fs _get _file _url ( /*state*/ ctx [ 0 ] . bucket . id , /*state*/ ctx [ 0 ] . base . path ) ) ) attr _dev ( img , "src" , img _src _value ) ;
2020-11-11 23:45:52 +01:00
attr _dev ( img , "alt" , "no description available" ) ;
toggle _class ( img , "zoom" , /*zoom*/ ctx [ 2 ] ) ;
2020-11-17 23:39:27 +01:00
add _location ( img , file$7 , 48 , 1 , 853 ) ;
2020-11-11 23:45:52 +01:00
attr _dev ( div , "class" , "container svelte-xjzx7h" ) ;
toggle _class ( div , "zoom" , /*zoom*/ ctx [ 2 ] ) ;
2020-11-17 23:39:27 +01:00
add _location ( div , file$7 , 47 , 0 , 795 ) ;
2020-11-11 23:45:52 +01:00
} ,
l : function claim ( nodes ) {
throw new Error ( "options.hydrate only works if the component was compiled with the `hydratable: true` option" ) ;
} ,
m : function mount ( target , anchor ) {
insert _dev ( target , div , anchor ) ;
append _dev ( div , img ) ;
/*div_binding*/ ctx [ 8 ] ( div ) ;
if ( ! mounted ) {
dispose = [
2020-11-17 23:39:27 +01:00
listen _dev ( window , "mousemove" , /*mousemove*/ ctx [ 4 ] , false , false , false ) ,
listen _dev ( window , "mouseup" , /*mouseup*/ ctx [ 5 ] , false , false , false ) ,
2020-11-11 23:45:52 +01:00
listen _dev ( img , "dblclick" , /*dblclick_handler*/ ctx [ 6 ] , false , false , false ) ,
listen _dev ( img , "doubletap" , /*doubletap_handler*/ ctx [ 7 ] , false , false , false ) ,
listen _dev ( img , "mousedown" , /*mousedown*/ ctx [ 3 ] , false , false , false )
] ;
mounted = true ;
}
} ,
p : function update ( ctx , [ dirty ] ) {
2020-11-17 23:39:27 +01:00
if ( dirty & /*state*/ 1 && img . src !== ( img _src _value = fs _get _file _url ( /*state*/ ctx [ 0 ] . bucket . id , /*state*/ ctx [ 0 ] . base . path ) ) ) {
2020-11-11 23:45:52 +01:00
attr _dev ( img , "src" , img _src _value ) ;
}
if ( dirty & /*zoom*/ 4 ) {
toggle _class ( img , "zoom" , /*zoom*/ ctx [ 2 ] ) ;
}
if ( dirty & /*zoom*/ 4 ) {
toggle _class ( div , "zoom" , /*zoom*/ ctx [ 2 ] ) ;
}
} ,
i : noop ,
o : noop ,
d : function destroy ( detaching ) {
if ( detaching ) detach _dev ( div ) ;
/*div_binding*/ ctx [ 8 ] ( null ) ;
mounted = false ;
run _all ( dispose ) ;
}
} ;
dispatch _dev ( "SvelteRegisterBlock" , {
block ,
2020-11-17 23:39:27 +01:00
id : create _fragment$7 . name ,
2020-11-11 23:45:52 +01:00
type : "component" ,
source : "" ,
ctx
} ) ;
return block ;
}
2020-11-17 23:39:27 +01:00
function instance$7 ( $$self , $$props , $$invalidate ) {
2020-11-11 23:45:52 +01:00
let { $$slots : slots = { } , $$scope } = $$props ;
validate _slots ( "Image" , slots , [ ] ) ;
2020-11-17 23:39:27 +01:00
let { state } = $$props ;
2020-11-11 23:45:52 +01:00
let container ;
let zoom = false ;
let x , y = 0 ;
let dragging = false ;
const mousedown = e => {
if ( ! dragging && e . which === 1 && zoom ) {
x = e . pageX ;
y = e . pageY ;
dragging = true ;
e . preventDefault ( ) ;
e . stopPropagation ( ) ;
return false ;
}
} ;
const mousemove = e => {
if ( dragging ) {
$$invalidate ( 1 , container . scrollLeft = container . scrollLeft - ( e . pageX - x ) , container ) ;
$$invalidate ( 1 , container . scrollTop = container . scrollTop - ( e . pageY - y ) , container ) ;
x = e . pageX ;
y = e . pageY ;
e . preventDefault ( ) ;
e . stopPropagation ( ) ;
return false ;
}
} ;
const mouseup = e => {
if ( dragging ) {
dragging = false ;
e . preventDefault ( ) ;
e . stopPropagation ( ) ;
return false ;
}
} ;
2020-11-17 23:39:27 +01:00
const writable _props = [ "state" ] ;
2020-11-11 23:45:52 +01:00
Object . keys ( $$props ) . forEach ( key => {
if ( ! ~ writable _props . indexOf ( key ) && key . slice ( 0 , 2 ) !== "$$" ) console . warn ( ` <Image> was created with unknown prop ' ${ key } ' ` ) ;
} ) ;
const dblclick _handler = ( ) => {
$$invalidate ( 2 , zoom = ! zoom ) ;
} ;
const doubletap _handler = ( ) => {
$$invalidate ( 2 , zoom = ! zoom ) ;
} ;
function div _binding ( $$value ) {
binding _callbacks [ $$value ? "unshift" : "push" ] ( ( ) => {
container = $$value ;
$$invalidate ( 1 , container ) ;
} ) ;
}
$$self . $$set = $$props => {
2020-11-17 23:39:27 +01:00
if ( "state" in $$props ) $$invalidate ( 0 , state = $$props . state ) ;
2020-11-11 23:45:52 +01:00
} ;
$$self . $capture _state = ( ) => ( {
2020-11-17 23:39:27 +01:00
fs _get _file _url ,
state ,
2020-11-11 23:45:52 +01:00
container ,
zoom ,
x ,
y ,
dragging ,
mousedown ,
mousemove ,
mouseup
} ) ;
$$self . $inject _state = $$props => {
2020-11-17 23:39:27 +01:00
if ( "state" in $$props ) $$invalidate ( 0 , state = $$props . state ) ;
2020-11-11 23:45:52 +01:00
if ( "container" in $$props ) $$invalidate ( 1 , container = $$props . container ) ;
if ( "zoom" in $$props ) $$invalidate ( 2 , zoom = $$props . zoom ) ;
if ( "x" in $$props ) x = $$props . x ;
if ( "y" in $$props ) y = $$props . y ;
if ( "dragging" in $$props ) dragging = $$props . dragging ;
} ;
if ( $$props && "$$inject" in $$props ) {
$$self . $inject _state ( $$props . $$inject ) ;
}
return [
2020-11-17 23:39:27 +01:00
state ,
2020-11-11 23:45:52 +01:00
container ,
zoom ,
mousedown ,
mousemove ,
mouseup ,
dblclick _handler ,
doubletap _handler ,
div _binding
] ;
}
class Image extends SvelteComponentDev {
constructor ( options ) {
super ( options ) ;
2020-11-17 23:39:27 +01:00
init ( this , options , instance$7 , create _fragment$7 , safe _not _equal , { state : 0 } ) ;
2020-11-11 23:45:52 +01:00
dispatch _dev ( "SvelteRegisterComponent" , {
component : this ,
tagName : "Image" ,
options ,
2020-11-17 23:39:27 +01:00
id : create _fragment$7 . name
2020-11-11 23:45:52 +01:00
} ) ;
const { ctx } = this . $$ ;
const props = options . props || { } ;
2020-11-17 23:39:27 +01:00
if ( /*state*/ ctx [ 0 ] === undefined && ! ( "state" in props ) ) {
console . warn ( "<Image> was created without expected prop 'state'" ) ;
2020-11-11 23:45:52 +01:00
}
}
2020-11-17 23:39:27 +01:00
get state ( ) {
2020-11-11 23:45:52 +01:00
throw new Error ( "<Image>: Props cannot be read directly from the component instance unless compiling with 'accessors: true' or '<svelte:options accessors/>'" ) ;
}
2020-11-17 23:39:27 +01:00
set state ( value ) {
2020-11-11 23:45:52 +01:00
throw new Error ( "<Image>: Props cannot be set directly on the component instance unless compiling with 'accessors: true' or '<svelte:options accessors/>'" ) ;
}
}
2020-11-17 23:39:27 +01:00
/* src/filesystem/viewers/Video.svelte generated by Svelte v3.29.6 */
const file$8 = "src/filesystem/viewers/Video.svelte" ;
function create _fragment$8 ( ctx ) {
let div ;
let video ;
let track ;
let video _src _value ;
let mounted ;
let dispose ;
const block = {
c : function create ( ) {
div = element ( "div" ) ;
video = element ( "video" ) ;
track = element ( "track" ) ;
attr _dev ( track , "kind" , "captions" ) ;
add _location ( track , file$8 , 15 , 2 , 378 ) ;
attr _dev ( video , "class" , "player svelte-1iaovvu" ) ;
if ( video . src !== ( video _src _value = fs _get _file _url ( /*state*/ ctx [ 0 ] . bucket . id , /*state*/ ctx [ 0 ] . base . path ) ) ) attr _dev ( video , "src" , video _src _value ) ;
video . autoplay = "autoplay" ;
video . controls = "controls" ;
add _location ( video , file$8 , 9 , 1 , 209 ) ;
attr _dev ( div , "class" , "container svelte-1iaovvu" ) ;
add _location ( div , file$8 , 8 , 0 , 184 ) ;
} ,
l : function claim ( nodes ) {
throw new Error ( "options.hydrate only works if the component was compiled with the `hydratable: true` option" ) ;
} ,
m : function mount ( target , anchor ) {
insert _dev ( target , div , anchor ) ;
append _dev ( div , video ) ;
append _dev ( video , track ) ;
if ( ! mounted ) {
dispose = listen _dev ( video , "ended" , /*ended_handler*/ ctx [ 2 ] , false , false , false ) ;
mounted = true ;
}
} ,
p : function update ( ctx , [ dirty ] ) {
if ( dirty & /*state*/ 1 && video . src !== ( video _src _value = fs _get _file _url ( /*state*/ ctx [ 0 ] . bucket . id , /*state*/ ctx [ 0 ] . base . path ) ) ) {
attr _dev ( video , "src" , video _src _value ) ;
}
} ,
i : noop ,
o : noop ,
d : function destroy ( detaching ) {
if ( detaching ) detach _dev ( div ) ;
mounted = false ;
dispose ( ) ;
}
} ;
dispatch _dev ( "SvelteRegisterBlock" , {
block ,
id : create _fragment$8 . name ,
type : "component" ,
source : "" ,
ctx
} ) ;
return block ;
}
function instance$8 ( $$self , $$props , $$invalidate ) {
let { $$slots : slots = { } , $$scope } = $$props ;
validate _slots ( "Video" , slots , [ ] ) ;
let dispatch = createEventDispatcher ( ) ;
let { state } = $$props ;
const writable _props = [ "state" ] ;
Object . keys ( $$props ) . forEach ( key => {
if ( ! ~ writable _props . indexOf ( key ) && key . slice ( 0 , 2 ) !== "$$" ) console . warn ( ` <Video> was created with unknown prop ' ${ key } ' ` ) ;
} ) ;
const ended _handler = ( ) => {
dispatch ( "next" ) ;
} ;
$$self . $$set = $$props => {
if ( "state" in $$props ) $$invalidate ( 0 , state = $$props . state ) ;
} ;
$$self . $capture _state = ( ) => ( {
fs _get _file _url ,
createEventDispatcher ,
dispatch ,
state
} ) ;
$$self . $inject _state = $$props => {
if ( "dispatch" in $$props ) $$invalidate ( 1 , dispatch = $$props . dispatch ) ;
if ( "state" in $$props ) $$invalidate ( 0 , state = $$props . state ) ;
} ;
if ( $$props && "$$inject" in $$props ) {
$$self . $inject _state ( $$props . $$inject ) ;
}
return [ state , dispatch , ended _handler ] ;
}
class Video extends SvelteComponentDev {
constructor ( options ) {
super ( options ) ;
init ( this , options , instance$8 , create _fragment$8 , safe _not _equal , { state : 0 } ) ;
dispatch _dev ( "SvelteRegisterComponent" , {
component : this ,
tagName : "Video" ,
options ,
id : create _fragment$8 . name
} ) ;
const { ctx } = this . $$ ;
const props = options . props || { } ;
if ( /*state*/ ctx [ 0 ] === undefined && ! ( "state" in props ) ) {
console . warn ( "<Video> was created without expected prop 'state'" ) ;
}
}
get state ( ) {
throw new Error ( "<Video>: Props cannot be read directly from the component instance unless compiling with 'accessors: true' or '<svelte:options accessors/>'" ) ;
}
set state ( value ) {
throw new Error ( "<Video>: Props cannot be set directly on the component instance unless compiling with 'accessors: true' or '<svelte:options accessors/>'" ) ;
}
}
2020-11-11 23:45:52 +01:00
/* src/filesystem/Filesystem.svelte generated by Svelte v3.29.6 */
2020-11-17 23:39:27 +01:00
const { console : console _1$2 , window : window _1 } = globals ;
const file$9 = "src/filesystem/Filesystem.svelte" ;
function get _each _context$2 ( ctx , list , i ) {
const child _ctx = ctx . slice ( ) ;
child _ctx [ 25 ] = list [ i ] ;
return child _ctx ;
}
// (148:1) {#if state.loading}
function create _if _block _8 ( ctx ) {
let div ;
let spinner ;
let current ;
spinner = new Spinner ( { $$inline : true } ) ;
const block = {
c : function create ( ) {
div = element ( "div" ) ;
create _component ( spinner . $$ . fragment ) ;
set _style ( div , "position" , "absolute" ) ;
set _style ( div , "right" , "0" ) ;
set _style ( div , "top" , "0" ) ;
set _style ( div , "height" , "48px" ) ;
set _style ( div , "width" , "48px" ) ;
set _style ( div , "z-index" , "100" ) ;
add _location ( div , file$9 , 148 , 1 , 3482 ) ;
} ,
m : function mount ( target , anchor ) {
insert _dev ( target , div , anchor ) ;
mount _component ( spinner , div , null ) ;
current = true ;
} ,
i : function intro ( local ) {
if ( current ) return ;
transition _in ( spinner . $$ . fragment , local ) ;
current = true ;
} ,
o : function outro ( local ) {
transition _out ( spinner . $$ . fragment , local ) ;
current = false ;
} ,
d : function destroy ( detaching ) {
if ( detaching ) detach _dev ( div ) ;
destroy _component ( spinner ) ;
}
} ;
dispatch _dev ( "SvelteRegisterBlock" , {
block ,
id : create _if _block _8 . name ,
type : "if" ,
source : "(148:1) {#if state.loading}" ,
ctx
} ) ;
return block ;
}
// (160:3) {#each state.parents as parent}
function create _each _block$2 ( ctx ) {
let div ;
let t0 _value = /*parent*/ ctx [ 25 ] . name + "" ;
let t0 ;
let t1 ;
let mounted ;
let dispose ;
function click _handler ( ) {
return /*click_handler*/ ctx [ 16 ] ( /*parent*/ ctx [ 25 ] ) ;
}
const block = {
c : function create ( ) {
div = element ( "div" ) ;
t0 = text ( t0 _value ) ;
t1 = text ( " /" ) ;
attr _dev ( div , "class" , "breadcrumb breadcrumb_button svelte-in5te4" ) ;
add _location ( div , file$9 , 160 , 3 , 4002 ) ;
} ,
m : function mount ( target , anchor ) {
insert _dev ( target , div , anchor ) ;
append _dev ( div , t0 ) ;
insert _dev ( target , t1 , anchor ) ;
if ( ! mounted ) {
dispose = listen _dev ( div , "click" , click _handler , false , false , false ) ;
mounted = true ;
}
} ,
p : function update ( new _ctx , dirty ) {
ctx = new _ctx ;
if ( dirty & /*state*/ 64 && t0 _value !== ( t0 _value = /*parent*/ ctx [ 25 ] . name + "" ) ) set _data _dev ( t0 , t0 _value ) ;
} ,
d : function destroy ( detaching ) {
if ( detaching ) detach _dev ( div ) ;
if ( detaching ) detach _dev ( t1 ) ;
mounted = false ;
dispose ( ) ;
}
} ;
dispatch _dev ( "SvelteRegisterBlock" , {
block ,
id : create _each _block$2 . name ,
type : "each" ,
source : "(160:3) {#each state.parents as parent}" ,
ctx
} ) ;
return block ;
}
// (172:71)
function create _if _block _7 ( ctx ) {
let div0 ;
let t1 ;
let div1 ;
let t2 _value = formatThousands ( /*total_directories*/ ctx [ 7 ] ) + "" ;
let t2 ;
let t3 ;
let div2 ;
let t5 ;
let div3 ;
let t6 _value = formatThousands ( /*total_files*/ ctx [ 8 ] ) + "" ;
let t6 ;
let t7 ;
let div4 ;
let t9 ;
let div5 ;
let t10 _value = formatDataVolume ( /*total_file_size*/ ctx [ 9 ] , 3 ) + "" ;
let t10 ;
const block = {
c : function create ( ) {
div0 = element ( "div" ) ;
div0 . textContent = "Directories" ;
t1 = space ( ) ;
div1 = element ( "div" ) ;
t2 = text ( t2 _value ) ;
t3 = space ( ) ;
div2 = element ( "div" ) ;
div2 . textContent = "Files" ;
t5 = space ( ) ;
div3 = element ( "div" ) ;
t6 = text ( t6 _value ) ;
t7 = space ( ) ;
div4 = element ( "div" ) ;
div4 . textContent = "Total size" ;
t9 = space ( ) ;
div5 = element ( "div" ) ;
t10 = text ( t10 _value ) ;
attr _dev ( div0 , "class" , "toolbar_label svelte-in5te4" ) ;
add _location ( div0 , file$9 , 172 , 3 , 4570 ) ;
attr _dev ( div1 , "class" , "toolbar_statistic svelte-in5te4" ) ;
add _location ( div1 , file$9 , 173 , 3 , 4618 ) ;
attr _dev ( div2 , "class" , "toolbar_label svelte-in5te4" ) ;
add _location ( div2 , file$9 , 174 , 3 , 4698 ) ;
attr _dev ( div3 , "class" , "toolbar_statistic svelte-in5te4" ) ;
add _location ( div3 , file$9 , 175 , 3 , 4740 ) ;
attr _dev ( div4 , "class" , "toolbar_label svelte-in5te4" ) ;
add _location ( div4 , file$9 , 176 , 3 , 4814 ) ;
attr _dev ( div5 , "class" , "toolbar_statistic svelte-in5te4" ) ;
add _location ( div5 , file$9 , 177 , 3 , 4861 ) ;
} ,
m : function mount ( target , anchor ) {
insert _dev ( target , div0 , anchor ) ;
insert _dev ( target , t1 , anchor ) ;
insert _dev ( target , div1 , anchor ) ;
append _dev ( div1 , t2 ) ;
insert _dev ( target , t3 , anchor ) ;
insert _dev ( target , div2 , anchor ) ;
insert _dev ( target , t5 , anchor ) ;
insert _dev ( target , div3 , anchor ) ;
append _dev ( div3 , t6 ) ;
insert _dev ( target , t7 , anchor ) ;
insert _dev ( target , div4 , anchor ) ;
insert _dev ( target , t9 , anchor ) ;
insert _dev ( target , div5 , anchor ) ;
append _dev ( div5 , t10 ) ;
} ,
p : function update ( ctx , dirty ) {
if ( dirty & /*total_directories*/ 128 && t2 _value !== ( t2 _value = formatThousands ( /*total_directories*/ ctx [ 7 ] ) + "" ) ) set _data _dev ( t2 , t2 _value ) ;
if ( dirty & /*total_files*/ 256 && t6 _value !== ( t6 _value = formatThousands ( /*total_files*/ ctx [ 8 ] ) + "" ) ) set _data _dev ( t6 , t6 _value ) ;
if ( dirty & /*total_file_size*/ 512 && t10 _value !== ( t10 _value = formatDataVolume ( /*total_file_size*/ ctx [ 9 ] , 3 ) + "" ) ) set _data _dev ( t10 , t10 _value ) ;
} ,
d : function destroy ( detaching ) {
if ( detaching ) detach _dev ( div0 ) ;
if ( detaching ) detach _dev ( t1 ) ;
if ( detaching ) detach _dev ( div1 ) ;
if ( detaching ) detach _dev ( t3 ) ;
if ( detaching ) detach _dev ( div2 ) ;
if ( detaching ) detach _dev ( t5 ) ;
if ( detaching ) detach _dev ( div3 ) ;
if ( detaching ) detach _dev ( t7 ) ;
if ( detaching ) detach _dev ( div4 ) ;
if ( detaching ) detach _dev ( t9 ) ;
if ( detaching ) detach _dev ( div5 ) ;
}
} ;
dispatch _dev ( "SvelteRegisterBlock" , {
block ,
id : create _if _block _7 . name ,
type : "if" ,
source : "(172:71) " ,
ctx
} ) ;
2020-11-11 23:45:52 +01:00
2020-11-17 23:39:27 +01:00
return block ;
2020-11-11 23:45:52 +01:00
}
2020-11-17 23:39:27 +01:00
// (169:3) {#if state.base.type === "file"}
function create _if _block _6 ( ctx ) {
let div0 ;
let t1 ;
let div1 ;
let t2 _value = formatDataVolume ( /*state*/ ctx [ 6 ] . base . file _size , 3 ) + "" ;
let t2 ;
2020-11-11 23:45:52 +01:00
const block = {
c : function create ( ) {
2020-11-17 23:39:27 +01:00
div0 = element ( "div" ) ;
div0 . textContent = "Size" ;
t1 = space ( ) ;
div1 = element ( "div" ) ;
t2 = text ( t2 _value ) ;
attr _dev ( div0 , "class" , "toolbar_label svelte-in5te4" ) ;
add _location ( div0 , file$9 , 169 , 3 , 4373 ) ;
attr _dev ( div1 , "class" , "toolbar_statistic svelte-in5te4" ) ;
add _location ( div1 , file$9 , 170 , 3 , 4414 ) ;
2020-11-11 23:45:52 +01:00
} ,
m : function mount ( target , anchor ) {
2020-11-17 23:39:27 +01:00
insert _dev ( target , div0 , anchor ) ;
insert _dev ( target , t1 , anchor ) ;
insert _dev ( target , div1 , anchor ) ;
append _dev ( div1 , t2 ) ;
2020-11-11 23:45:52 +01:00
} ,
2020-11-17 23:39:27 +01:00
p : function update ( ctx , dirty ) {
if ( dirty & /*state*/ 64 && t2 _value !== ( t2 _value = formatDataVolume ( /*state*/ ctx [ 6 ] . base . file _size , 3 ) + "" ) ) set _data _dev ( t2 , t2 _value ) ;
2020-11-11 23:45:52 +01:00
} ,
d : function destroy ( detaching ) {
2020-11-17 23:39:27 +01:00
if ( detaching ) detach _dev ( div0 ) ;
if ( detaching ) detach _dev ( t1 ) ;
if ( detaching ) detach _dev ( div1 ) ;
2020-11-11 23:45:52 +01:00
}
} ;
dispatch _dev ( "SvelteRegisterBlock" , {
block ,
2020-11-17 23:39:27 +01:00
id : create _if _block _6 . name ,
2020-11-11 23:45:52 +01:00
type : "if" ,
2020-11-17 23:39:27 +01:00
source : "(169:3) {#if state.base.type === \\\"file\\\"}" ,
2020-11-11 23:45:52 +01:00
ctx
} ) ;
return block ;
}
2020-11-17 23:39:27 +01:00
// (181:3) {#if state.base.type === "file"}
function create _if _block _5 ( ctx ) {
let button ;
let i ;
2020-11-11 23:45:52 +01:00
let t1 ;
let mounted ;
let dispose ;
const block = {
c : function create ( ) {
2020-11-17 23:39:27 +01:00
button = element ( "button" ) ;
i = element ( "i" ) ;
i . textContent = "save" ;
t1 = text ( " Download" ) ;
attr _dev ( i , "class" , "icon" ) ;
add _location ( i , file$9 , 182 , 4 , 5060 ) ;
attr _dev ( button , "class" , "toolbar_button button_full_width svelte-in5te4" ) ;
add _location ( button , file$9 , 181 , 3 , 4986 ) ;
2020-11-11 23:45:52 +01:00
} ,
m : function mount ( target , anchor ) {
2020-11-17 23:39:27 +01:00
insert _dev ( target , button , anchor ) ;
append _dev ( button , i ) ;
append _dev ( button , t1 ) ;
2020-11-11 23:45:52 +01:00
if ( ! mounted ) {
2020-11-17 23:39:27 +01:00
dispose = listen _dev ( button , "click" , /*download*/ ctx [ 15 ] , false , false , false ) ;
2020-11-11 23:45:52 +01:00
mounted = true ;
}
} ,
2020-11-17 23:39:27 +01:00
p : noop ,
2020-11-11 23:45:52 +01:00
d : function destroy ( detaching ) {
2020-11-17 23:39:27 +01:00
if ( detaching ) detach _dev ( button ) ;
2020-11-11 23:45:52 +01:00
mounted = false ;
dispose ( ) ;
}
} ;
dispatch _dev ( "SvelteRegisterBlock" , {
block ,
2020-11-17 23:39:27 +01:00
id : create _if _block _5 . name ,
type : "if" ,
source : "(181:3) {#if state.base.type === \\\"file\\\"}" ,
ctx
} ) ;
return block ;
}
// (211:43)
function create _if _block _4 ( ctx ) {
let video ;
let current ;
video = new Video ( {
props : { state : /*state*/ ctx [ 6 ] } ,
$$inline : true
} ) ;
const block = {
c : function create ( ) {
create _component ( video . $$ . fragment ) ;
} ,
m : function mount ( target , anchor ) {
mount _component ( video , target , anchor ) ;
current = true ;
} ,
p : function update ( ctx , dirty ) {
const video _changes = { } ;
if ( dirty & /*state*/ 64 ) video _changes . state = /*state*/ ctx [ 6 ] ;
video . $set ( video _changes ) ;
} ,
i : function intro ( local ) {
if ( current ) return ;
transition _in ( video . $$ . fragment , local ) ;
current = true ;
} ,
o : function outro ( local ) {
transition _out ( video . $$ . fragment , local ) ;
current = false ;
} ,
d : function destroy ( detaching ) {
destroy _component ( video , detaching ) ;
}
} ;
dispatch _dev ( "SvelteRegisterBlock" , {
block ,
id : create _if _block _4 . name ,
type : "if" ,
source : "(211:43) " ,
2020-11-11 23:45:52 +01:00
ctx
} ) ;
return block ;
}
2020-11-17 23:39:27 +01:00
// (209:43)
2020-11-11 23:45:52 +01:00
function create _if _block _3 ( ctx ) {
let image ;
let current ;
2020-11-17 23:39:27 +01:00
image = new Image ( {
props : { state : /*state*/ ctx [ 6 ] } ,
$$inline : true
} ) ;
2020-11-11 23:45:52 +01:00
const block = {
c : function create ( ) {
create _component ( image . $$ . fragment ) ;
} ,
m : function mount ( target , anchor ) {
mount _component ( image , target , anchor ) ;
current = true ;
} ,
p : function update ( ctx , dirty ) {
const image _changes = { } ;
2020-11-17 23:39:27 +01:00
if ( dirty & /*state*/ 64 ) image _changes . state = /*state*/ ctx [ 6 ] ;
2020-11-11 23:45:52 +01:00
image . $set ( image _changes ) ;
} ,
i : function intro ( local ) {
if ( current ) return ;
transition _in ( image . $$ . fragment , local ) ;
current = true ;
} ,
o : function outro ( local ) {
transition _out ( image . $$ . fragment , local ) ;
current = false ;
} ,
d : function destroy ( detaching ) {
destroy _component ( image , detaching ) ;
}
} ;
dispatch _dev ( "SvelteRegisterBlock" , {
block ,
id : create _if _block _3 . name ,
type : "if" ,
2020-11-17 23:39:27 +01:00
source : "(209:43) " ,
2020-11-11 23:45:52 +01:00
ctx
} ) ;
return block ;
}
2020-11-17 23:39:27 +01:00
// (207:43)
function create _if _block _2$1 ( ctx ) {
2020-11-11 23:45:52 +01:00
let audio ;
2020-11-11 00:00:54 +01:00
let current ;
2020-11-17 23:39:27 +01:00
audio = new Audio ( {
props : { state : /*state*/ ctx [ 6 ] } ,
$$inline : true
} ) ;
2020-11-11 00:00:54 +01:00
const block = {
c : function create ( ) {
2020-11-11 23:45:52 +01:00
create _component ( audio . $$ . fragment ) ;
2020-11-11 00:00:54 +01:00
} ,
m : function mount ( target , anchor ) {
2020-11-11 23:45:52 +01:00
mount _component ( audio , target , anchor ) ;
2020-11-11 00:00:54 +01:00
current = true ;
} ,
p : function update ( ctx , dirty ) {
2020-11-11 23:45:52 +01:00
const audio _changes = { } ;
2020-11-17 23:39:27 +01:00
if ( dirty & /*state*/ 64 ) audio _changes . state = /*state*/ ctx [ 6 ] ;
2020-11-11 23:45:52 +01:00
audio . $set ( audio _changes ) ;
2020-11-11 00:00:54 +01:00
} ,
i : function intro ( local ) {
if ( current ) return ;
2020-11-11 23:45:52 +01:00
transition _in ( audio . $$ . fragment , local ) ;
2020-11-11 00:00:54 +01:00
current = true ;
} ,
o : function outro ( local ) {
2020-11-11 23:45:52 +01:00
transition _out ( audio . $$ . fragment , local ) ;
2020-11-11 00:00:54 +01:00
current = false ;
} ,
d : function destroy ( detaching ) {
2020-11-11 23:45:52 +01:00
destroy _component ( audio , detaching ) ;
2020-11-11 00:00:54 +01:00
}
} ;
dispatch _dev ( "SvelteRegisterBlock" , {
block ,
2020-11-17 23:39:27 +01:00
id : create _if _block _2$1 . name ,
2020-11-11 00:00:54 +01:00
type : "if" ,
2020-11-17 23:39:27 +01:00
source : "(207:43) " ,
2020-11-11 00:00:54 +01:00
ctx
} ) ;
return block ;
}
2020-11-17 23:39:27 +01:00
// (205:3) {#if state.viewer_type === "dir"}
function create _if _block _1$1 ( ctx ) {
let filemanager ;
2020-11-11 00:00:54 +01:00
let current ;
2020-11-11 23:45:52 +01:00
2020-11-17 23:39:27 +01:00
filemanager = new FileManager ( {
props : { state : /*state*/ ctx [ 6 ] } ,
$$inline : true
} ) ;
2020-11-11 23:45:52 +01:00
2020-11-17 23:39:27 +01:00
filemanager . $on ( "navigate" , /*navigate_handler*/ ctx [ 19 ] ) ;
filemanager . $on ( "loading" , /*loading_handler*/ ctx [ 20 ] ) ;
2020-11-11 00:00:54 +01:00
const block = {
c : function create ( ) {
2020-11-17 23:39:27 +01:00
create _component ( filemanager . $$ . fragment ) ;
2020-11-11 00:00:54 +01:00
} ,
m : function mount ( target , anchor ) {
2020-11-17 23:39:27 +01:00
mount _component ( filemanager , target , anchor ) ;
2020-11-11 00:00:54 +01:00
current = true ;
} ,
2020-11-11 23:45:52 +01:00
p : function update ( ctx , dirty ) {
2020-11-17 23:39:27 +01:00
const filemanager _changes = { } ;
if ( dirty & /*state*/ 64 ) filemanager _changes . state = /*state*/ ctx [ 6 ] ;
filemanager . $set ( filemanager _changes ) ;
2020-11-11 23:45:52 +01:00
} ,
2020-11-11 00:00:54 +01:00
i : function intro ( local ) {
if ( current ) return ;
2020-11-17 23:39:27 +01:00
transition _in ( filemanager . $$ . fragment , local ) ;
2020-11-11 00:00:54 +01:00
current = true ;
} ,
o : function outro ( local ) {
2020-11-17 23:39:27 +01:00
transition _out ( filemanager . $$ . fragment , local ) ;
2020-11-11 00:00:54 +01:00
current = false ;
} ,
d : function destroy ( detaching ) {
2020-11-17 23:39:27 +01:00
destroy _component ( filemanager , detaching ) ;
2020-11-11 00:00:54 +01:00
}
} ;
dispatch _dev ( "SvelteRegisterBlock" , {
block ,
2020-11-17 23:39:27 +01:00
id : create _if _block _1$1 . name ,
2020-11-11 00:00:54 +01:00
type : "if" ,
2020-11-17 23:39:27 +01:00
source : "(205:3) {#if state.viewer_type === \\\"dir\\\"}" ,
2020-11-11 00:00:54 +01:00
ctx
} ) ;
return block ;
}
2020-11-17 23:39:27 +01:00
// (228:3) {#if state.base.type === "file"}
function create _if _block$2 ( ctx ) {
2020-11-11 00:00:54 +01:00
let tr0 ;
let td0 ;
let td1 ;
2020-11-17 23:39:27 +01:00
let t1 _value = /*state*/ ctx [ 6 ] . base . file _type + "" ;
2020-11-11 00:00:54 +01:00
let t1 ;
let t2 ;
let tr1 ;
let td2 ;
let td3 ;
2020-11-17 23:39:27 +01:00
let t4 _value = formatDataVolume ( /*state*/ ctx [ 6 ] . base . file _size ) + "" ;
2020-11-11 00:00:54 +01:00
let t4 ;
const block = {
c : function create ( ) {
tr0 = element ( "tr" ) ;
td0 = element ( "td" ) ;
td0 . textContent = "File type" ;
td1 = element ( "td" ) ;
t1 = text ( t1 _value ) ;
t2 = space ( ) ;
tr1 = element ( "tr" ) ;
td2 = element ( "td" ) ;
td2 . textContent = "File size" ;
td3 = element ( "td" ) ;
t4 = text ( t4 _value ) ;
2020-11-17 23:39:27 +01:00
add _location ( td0 , file$9 , 228 , 7 , 7216 ) ;
add _location ( td1 , file$9 , 228 , 25 , 7234 ) ;
add _location ( tr0 , file$9 , 228 , 3 , 7212 ) ;
add _location ( td2 , file$9 , 229 , 7 , 7278 ) ;
add _location ( td3 , file$9 , 229 , 25 , 7296 ) ;
add _location ( tr1 , file$9 , 229 , 3 , 7274 ) ;
2020-11-11 00:00:54 +01:00
} ,
m : function mount ( target , anchor ) {
insert _dev ( target , tr0 , anchor ) ;
append _dev ( tr0 , td0 ) ;
append _dev ( tr0 , td1 ) ;
append _dev ( td1 , t1 ) ;
insert _dev ( target , t2 , anchor ) ;
insert _dev ( target , tr1 , anchor ) ;
append _dev ( tr1 , td2 ) ;
append _dev ( tr1 , td3 ) ;
append _dev ( td3 , t4 ) ;
} ,
p : function update ( ctx , dirty ) {
2020-11-17 23:39:27 +01:00
if ( dirty & /*state*/ 64 && t1 _value !== ( t1 _value = /*state*/ ctx [ 6 ] . base . file _type + "" ) ) set _data _dev ( t1 , t1 _value ) ;
if ( dirty & /*state*/ 64 && t4 _value !== ( t4 _value = formatDataVolume ( /*state*/ ctx [ 6 ] . base . file _size ) + "" ) ) set _data _dev ( t4 , t4 _value ) ;
2020-11-11 00:00:54 +01:00
} ,
d : function destroy ( detaching ) {
if ( detaching ) detach _dev ( tr0 ) ;
if ( detaching ) detach _dev ( t2 ) ;
if ( detaching ) detach _dev ( tr1 ) ;
}
} ;
dispatch _dev ( "SvelteRegisterBlock" , {
block ,
2020-11-17 23:39:27 +01:00
id : create _if _block$2 . name ,
2020-11-11 00:00:54 +01:00
type : "if" ,
2020-11-17 23:39:27 +01:00
source : "(228:3) {#if state.base.type === \\\"file\\\"}" ,
2020-11-11 00:00:54 +01:00
ctx
} ) ;
return block ;
}
2020-11-17 23:39:27 +01:00
// (220:1) <Modal bind:this={details} title="Details" width="600px">
2020-11-11 00:00:54 +01:00
function create _default _slot ( ctx ) {
let table ;
let tr0 ;
let td0 ;
let h30 ;
let t1 ;
let tr1 ;
let td1 ;
let td2 ;
2020-11-17 23:39:27 +01:00
let t3 _value = /*state*/ ctx [ 6 ] . base . name + "" ;
2020-11-11 00:00:54 +01:00
let t3 ;
let t4 ;
let tr2 ;
let td3 ;
let td4 ;
2020-11-17 23:39:27 +01:00
let t6 _value = /*state*/ ctx [ 6 ] . base . path + "" ;
2020-11-11 00:00:54 +01:00
let t6 ;
let t7 ;
let tr3 ;
let td5 ;
let td6 ;
2020-11-17 23:39:27 +01:00
let t9 _value = /*state*/ ctx [ 6 ] . base . type + "" ;
2020-11-11 00:00:54 +01:00
let t9 ;
let t10 ;
let tr4 ;
let td7 ;
let td8 ;
2020-11-17 23:39:27 +01:00
let t12 _value = formatDate ( /*state*/ ctx [ 6 ] . base . date _created , true , true , true ) + "" ;
2020-11-11 00:00:54 +01:00
let t12 ;
let t13 ;
let tr5 ;
let td9 ;
let td10 ;
2020-11-17 23:39:27 +01:00
let t15 _value = formatDate ( /*state*/ ctx [ 6 ] . base . date _modified , true , true , true ) + "" ;
2020-11-11 00:00:54 +01:00
let t15 ;
let t16 ;
let t17 ;
let tr6 ;
let td11 ;
let h31 ;
let t19 ;
let tr7 ;
let td12 ;
let td13 ;
2020-11-17 23:39:27 +01:00
let t21 _value = /*state*/ ctx [ 6 ] . bucket . id + "" ;
2020-11-11 00:00:54 +01:00
let t21 ;
let t22 ;
let tr8 ;
let td14 ;
let td15 ;
2020-11-17 23:39:27 +01:00
let t24 _value = /*state*/ ctx [ 6 ] . bucket . name + "" ;
2020-11-11 00:00:54 +01:00
let t24 ;
let t25 ;
let tr9 ;
let td16 ;
let td17 ;
2020-11-17 23:39:27 +01:00
let t27 _value = formatDate ( /*state*/ ctx [ 6 ] . bucket . date _created , true , true , true ) + "" ;
2020-11-11 00:00:54 +01:00
let t27 ;
let t28 ;
let tr10 ;
let td18 ;
let td19 ;
2020-11-17 23:39:27 +01:00
let t30 _value = formatDate ( /*state*/ ctx [ 6 ] . bucket . date _modified , true , true , true ) + "" ;
2020-11-11 00:00:54 +01:00
let t30 ;
2020-11-17 23:39:27 +01:00
let if _block = /*state*/ ctx [ 6 ] . base . type === "file" && create _if _block$2 ( ctx ) ;
2020-11-11 00:00:54 +01:00
const block = {
c : function create ( ) {
table = element ( "table" ) ;
tr0 = element ( "tr" ) ;
td0 = element ( "td" ) ;
h30 = element ( "h3" ) ;
h30 . textContent = "Node details" ;
t1 = space ( ) ;
tr1 = element ( "tr" ) ;
td1 = element ( "td" ) ;
td1 . textContent = "Name" ;
td2 = element ( "td" ) ;
t3 = text ( t3 _value ) ;
t4 = space ( ) ;
tr2 = element ( "tr" ) ;
td3 = element ( "td" ) ;
td3 . textContent = "Path" ;
td4 = element ( "td" ) ;
t6 = text ( t6 _value ) ;
t7 = space ( ) ;
tr3 = element ( "tr" ) ;
td5 = element ( "td" ) ;
td5 . textContent = "Type" ;
td6 = element ( "td" ) ;
t9 = text ( t9 _value ) ;
t10 = space ( ) ;
tr4 = element ( "tr" ) ;
td7 = element ( "td" ) ;
td7 . textContent = "Date created" ;
td8 = element ( "td" ) ;
t12 = text ( t12 _value ) ;
t13 = space ( ) ;
tr5 = element ( "tr" ) ;
td9 = element ( "td" ) ;
td9 . textContent = "Date modified" ;
td10 = element ( "td" ) ;
t15 = text ( t15 _value ) ;
t16 = space ( ) ;
if ( if _block ) if _block . c ( ) ;
t17 = space ( ) ;
tr6 = element ( "tr" ) ;
td11 = element ( "td" ) ;
h31 = element ( "h3" ) ;
h31 . textContent = "Bucket details" ;
t19 = space ( ) ;
tr7 = element ( "tr" ) ;
td12 = element ( "td" ) ;
td12 . textContent = "ID" ;
td13 = element ( "td" ) ;
t21 = text ( t21 _value ) ;
t22 = space ( ) ;
tr8 = element ( "tr" ) ;
td14 = element ( "td" ) ;
td14 . textContent = "Name" ;
td15 = element ( "td" ) ;
t24 = text ( t24 _value ) ;
t25 = space ( ) ;
tr9 = element ( "tr" ) ;
td16 = element ( "td" ) ;
td16 . textContent = "Date created" ;
td17 = element ( "td" ) ;
t27 = text ( t27 _value ) ;
t28 = space ( ) ;
tr10 = element ( "tr" ) ;
td18 = element ( "td" ) ;
td18 . textContent = "Date modified" ;
td19 = element ( "td" ) ;
t30 = text ( t30 _value ) ;
2020-11-17 23:39:27 +01:00
add _location ( h30 , file$9 , 221 , 23 , 6787 ) ;
2020-11-11 00:00:54 +01:00
attr _dev ( td0 , "colspan" , "2" ) ;
2020-11-17 23:39:27 +01:00
add _location ( td0 , file$9 , 221 , 7 , 6771 ) ;
add _location ( tr0 , file$9 , 221 , 3 , 6767 ) ;
add _location ( td1 , file$9 , 222 , 7 , 6826 ) ;
add _location ( td2 , file$9 , 222 , 20 , 6839 ) ;
add _location ( tr1 , file$9 , 222 , 3 , 6822 ) ;
add _location ( td3 , file$9 , 223 , 7 , 6878 ) ;
add _location ( td4 , file$9 , 223 , 20 , 6891 ) ;
add _location ( tr2 , file$9 , 223 , 3 , 6874 ) ;
add _location ( td5 , file$9 , 224 , 7 , 6930 ) ;
add _location ( td6 , file$9 , 224 , 20 , 6943 ) ;
add _location ( tr3 , file$9 , 224 , 3 , 6926 ) ;
add _location ( td7 , file$9 , 225 , 7 , 6982 ) ;
add _location ( td8 , file$9 , 225 , 28 , 7003 ) ;
add _location ( tr4 , file$9 , 225 , 3 , 6978 ) ;
add _location ( td9 , file$9 , 226 , 7 , 7080 ) ;
add _location ( td10 , file$9 , 226 , 29 , 7102 ) ;
add _location ( tr5 , file$9 , 226 , 3 , 7076 ) ;
add _location ( h31 , file$9 , 231 , 23 , 7383 ) ;
2020-11-11 00:00:54 +01:00
attr _dev ( td11 , "colspan" , "2" ) ;
2020-11-17 23:39:27 +01:00
add _location ( td11 , file$9 , 231 , 7 , 7367 ) ;
add _location ( tr6 , file$9 , 231 , 3 , 7363 ) ;
add _location ( td12 , file$9 , 232 , 7 , 7424 ) ;
add _location ( td13 , file$9 , 232 , 18 , 7435 ) ;
add _location ( tr7 , file$9 , 232 , 3 , 7420 ) ;
add _location ( td14 , file$9 , 233 , 7 , 7474 ) ;
add _location ( td15 , file$9 , 233 , 20 , 7487 ) ;
add _location ( tr8 , file$9 , 233 , 3 , 7470 ) ;
add _location ( td16 , file$9 , 234 , 7 , 7528 ) ;
add _location ( td17 , file$9 , 234 , 28 , 7549 ) ;
add _location ( tr9 , file$9 , 234 , 3 , 7524 ) ;
add _location ( td18 , file$9 , 235 , 7 , 7628 ) ;
add _location ( td19 , file$9 , 235 , 29 , 7650 ) ;
add _location ( tr10 , file$9 , 235 , 3 , 7624 ) ;
2020-11-11 00:00:54 +01:00
set _style ( table , "min-width" , "100%" ) ;
2020-11-17 23:39:27 +01:00
add _location ( table , file$9 , 220 , 2 , 6731 ) ;
2020-11-11 00:00:54 +01:00
} ,
m : function mount ( target , anchor ) {
insert _dev ( target , table , anchor ) ;
append _dev ( table , tr0 ) ;
append _dev ( tr0 , td0 ) ;
append _dev ( td0 , h30 ) ;
append _dev ( table , t1 ) ;
append _dev ( table , tr1 ) ;
append _dev ( tr1 , td1 ) ;
append _dev ( tr1 , td2 ) ;
append _dev ( td2 , t3 ) ;
append _dev ( table , t4 ) ;
append _dev ( table , tr2 ) ;
append _dev ( tr2 , td3 ) ;
append _dev ( tr2 , td4 ) ;
append _dev ( td4 , t6 ) ;
append _dev ( table , t7 ) ;
append _dev ( table , tr3 ) ;
append _dev ( tr3 , td5 ) ;
append _dev ( tr3 , td6 ) ;
append _dev ( td6 , t9 ) ;
append _dev ( table , t10 ) ;
append _dev ( table , tr4 ) ;
append _dev ( tr4 , td7 ) ;
append _dev ( tr4 , td8 ) ;
append _dev ( td8 , t12 ) ;
append _dev ( table , t13 ) ;
append _dev ( table , tr5 ) ;
append _dev ( tr5 , td9 ) ;
append _dev ( tr5 , td10 ) ;
append _dev ( td10 , t15 ) ;
append _dev ( table , t16 ) ;
if ( if _block ) if _block . m ( table , null ) ;
append _dev ( table , t17 ) ;
append _dev ( table , tr6 ) ;
append _dev ( tr6 , td11 ) ;
append _dev ( td11 , h31 ) ;
append _dev ( table , t19 ) ;
append _dev ( table , tr7 ) ;
append _dev ( tr7 , td12 ) ;
append _dev ( tr7 , td13 ) ;
append _dev ( td13 , t21 ) ;
append _dev ( table , t22 ) ;
append _dev ( table , tr8 ) ;
append _dev ( tr8 , td14 ) ;
append _dev ( tr8 , td15 ) ;
append _dev ( td15 , t24 ) ;
append _dev ( table , t25 ) ;
append _dev ( table , tr9 ) ;
append _dev ( tr9 , td16 ) ;
append _dev ( tr9 , td17 ) ;
append _dev ( td17 , t27 ) ;
append _dev ( table , t28 ) ;
append _dev ( table , tr10 ) ;
append _dev ( tr10 , td18 ) ;
append _dev ( tr10 , td19 ) ;
append _dev ( td19 , t30 ) ;
} ,
p : function update ( ctx , dirty ) {
2020-11-17 23:39:27 +01:00
if ( dirty & /*state*/ 64 && t3 _value !== ( t3 _value = /*state*/ ctx [ 6 ] . base . name + "" ) ) set _data _dev ( t3 , t3 _value ) ;
if ( dirty & /*state*/ 64 && t6 _value !== ( t6 _value = /*state*/ ctx [ 6 ] . base . path + "" ) ) set _data _dev ( t6 , t6 _value ) ;
if ( dirty & /*state*/ 64 && t9 _value !== ( t9 _value = /*state*/ ctx [ 6 ] . base . type + "" ) ) set _data _dev ( t9 , t9 _value ) ;
if ( dirty & /*state*/ 64 && t12 _value !== ( t12 _value = formatDate ( /*state*/ ctx [ 6 ] . base . date _created , true , true , true ) + "" ) ) set _data _dev ( t12 , t12 _value ) ;
if ( dirty & /*state*/ 64 && t15 _value !== ( t15 _value = formatDate ( /*state*/ ctx [ 6 ] . base . date _modified , true , true , true ) + "" ) ) set _data _dev ( t15 , t15 _value ) ;
2020-11-11 00:00:54 +01:00
2020-11-17 23:39:27 +01:00
if ( /*state*/ ctx [ 6 ] . base . type === "file" ) {
2020-11-11 00:00:54 +01:00
if ( if _block ) {
if _block . p ( ctx , dirty ) ;
} else {
2020-11-17 23:39:27 +01:00
if _block = create _if _block$2 ( ctx ) ;
2020-11-11 00:00:54 +01:00
if _block . c ( ) ;
if _block . m ( table , t17 ) ;
}
} else if ( if _block ) {
if _block . d ( 1 ) ;
if _block = null ;
}
2020-11-17 23:39:27 +01:00
if ( dirty & /*state*/ 64 && t21 _value !== ( t21 _value = /*state*/ ctx [ 6 ] . bucket . id + "" ) ) set _data _dev ( t21 , t21 _value ) ;
if ( dirty & /*state*/ 64 && t24 _value !== ( t24 _value = /*state*/ ctx [ 6 ] . bucket . name + "" ) ) set _data _dev ( t24 , t24 _value ) ;
if ( dirty & /*state*/ 64 && t27 _value !== ( t27 _value = formatDate ( /*state*/ ctx [ 6 ] . bucket . date _created , true , true , true ) + "" ) ) set _data _dev ( t27 , t27 _value ) ;
if ( dirty & /*state*/ 64 && t30 _value !== ( t30 _value = formatDate ( /*state*/ ctx [ 6 ] . bucket . date _modified , true , true , true ) + "" ) ) set _data _dev ( t30 , t30 _value ) ;
2020-11-11 00:00:54 +01:00
} ,
d : function destroy ( detaching ) {
if ( detaching ) detach _dev ( table ) ;
if ( if _block ) if _block . d ( ) ;
}
} ;
dispatch _dev ( "SvelteRegisterBlock" , {
block ,
id : create _default _slot . name ,
type : "slot" ,
2020-11-17 23:39:27 +01:00
source : "(220:1) <Modal bind:this={details} title=\\\"Details\\\" width=\\\"600px\\\">" ,
2020-11-11 00:00:54 +01:00
ctx
} ) ;
return block ;
}
2020-11-17 23:39:27 +01:00
function create _fragment$9 ( ctx ) {
let div9 ;
2020-11-11 23:45:52 +01:00
let t0 ;
2020-11-11 00:00:54 +01:00
let div2 ;
let button0 ;
let i0 ;
2020-11-11 23:45:52 +01:00
let t2 ;
2020-11-11 00:00:54 +01:00
let a ;
let i1 ;
let t4 ;
2020-11-11 23:45:52 +01:00
let div1 ;
2020-11-11 00:00:54 +01:00
let t5 ;
2020-11-11 23:45:52 +01:00
let div0 ;
2020-11-17 23:39:27 +01:00
let t6 _value = /*state*/ ctx [ 6 ] . base . name + "" ;
2020-11-11 00:00:54 +01:00
let t6 ;
let t7 ;
2020-11-11 23:45:52 +01:00
let div3 ;
let t8 ;
let div8 ;
let div6 ;
2020-11-17 23:39:27 +01:00
let div5 ;
2020-11-11 00:00:54 +01:00
let div4 ;
2020-11-17 23:39:27 +01:00
let t9 ;
2020-11-11 00:00:54 +01:00
let t10 ;
let button1 ;
let i2 ;
2020-11-17 23:39:27 +01:00
let t12 ;
let t13 ;
2020-11-11 00:00:54 +01:00
let button2 ;
let i3 ;
2020-11-17 23:39:27 +01:00
let t15 ;
let u0 ;
2020-11-11 23:45:52 +01:00
let t17 ;
let t18 ;
2020-11-11 00:00:54 +01:00
let button3 ;
let i4 ;
2020-11-11 23:45:52 +01:00
let t20 ;
2020-11-17 23:39:27 +01:00
let t21 ;
2020-11-11 00:00:54 +01:00
let button4 ;
let i5 ;
2020-11-17 23:39:27 +01:00
let t23 ;
let u1 ;
2020-11-11 23:45:52 +01:00
let t25 ;
let t26 ;
2020-11-11 00:00:54 +01:00
let button5 ;
let i6 ;
2020-11-11 23:45:52 +01:00
let t28 ;
2020-11-17 23:39:27 +01:00
let u2 ;
2020-11-11 23:45:52 +01:00
let t30 ;
let t31 ;
2020-11-11 00:00:54 +01:00
let sharebar _1 ;
2020-11-17 23:39:27 +01:00
let t32 ;
let div7 ;
2020-11-11 00:00:54 +01:00
let current _block _type _index ;
2020-11-17 23:39:27 +01:00
let if _block3 ;
let t33 ;
2020-11-11 00:00:54 +01:00
let iframe ;
2020-11-17 23:39:27 +01:00
let t34 ;
2020-11-11 00:00:54 +01:00
let modal ;
let current ;
let mounted ;
let dispose ;
2020-11-17 23:39:27 +01:00
let if _block0 = /*state*/ ctx [ 6 ] . loading && create _if _block _8 ( ctx ) ;
let each _value = /*state*/ ctx [ 6 ] . parents ;
2020-11-11 23:45:52 +01:00
validate _each _argument ( each _value ) ;
let each _blocks = [ ] ;
for ( let i = 0 ; i < each _value . length ; i += 1 ) {
2020-11-17 23:39:27 +01:00
each _blocks [ i ] = create _each _block$2 ( get _each _context$2 ( ctx , each _value , i ) ) ;
}
function select _block _type ( ctx , dirty ) {
if ( /*state*/ ctx [ 6 ] . base . type === "file" ) return create _if _block _6 ;
if ( /*state*/ ctx [ 6 ] . base . type === "dir" || /*state*/ ctx [ 6 ] . base . type === "bucket" ) return create _if _block _7 ;
2020-11-11 23:45:52 +01:00
}
2020-11-17 23:39:27 +01:00
let current _block _type = select _block _type ( ctx ) ;
let if _block1 = current _block _type && current _block _type ( ctx ) ;
let if _block2 = /*state*/ ctx [ 6 ] . base . type === "file" && create _if _block _5 ( ctx ) ;
2020-11-11 00:00:54 +01:00
let sharebar _1 _props = { } ;
sharebar _1 = new Sharebar ( { props : sharebar _1 _props , $$inline : true } ) ;
2020-11-17 23:39:27 +01:00
/*sharebar_1_binding*/ ctx [ 18 ] ( sharebar _1 ) ;
const if _block _creators = [ create _if _block _1$1 , create _if _block _2$1 , create _if _block _3 , create _if _block _4 ] ;
2020-11-11 00:00:54 +01:00
const if _blocks = [ ] ;
2020-11-17 23:39:27 +01:00
function select _block _type _1 ( ctx , dirty ) {
if ( /*state*/ ctx [ 6 ] . viewer _type === "dir" ) return 0 ;
if ( /*state*/ ctx [ 6 ] . viewer _type === "audio" ) return 1 ;
if ( /*state*/ ctx [ 6 ] . viewer _type === "image" ) return 2 ;
if ( /*state*/ ctx [ 6 ] . viewer _type === "video" ) return 3 ;
2020-11-11 00:00:54 +01:00
return - 1 ;
}
2020-11-17 23:39:27 +01:00
if ( ~ ( current _block _type _index = select _block _type _1 ( ctx ) ) ) {
if _block3 = if _blocks [ current _block _type _index ] = if _block _creators [ current _block _type _index ] ( ctx ) ;
2020-11-11 00:00:54 +01:00
}
let modal _props = {
title : "Details" ,
width : "600px" ,
$$slots : { default : [ create _default _slot ] } ,
$$scope : { ctx }
} ;
modal = new Modal ( { props : modal _props , $$inline : true } ) ;
2020-11-17 23:39:27 +01:00
/*modal_binding*/ ctx [ 22 ] ( modal ) ;
2020-11-11 00:00:54 +01:00
const block = {
c : function create ( ) {
2020-11-17 23:39:27 +01:00
div9 = element ( "div" ) ;
2020-11-11 23:45:52 +01:00
if ( if _block0 ) if _block0 . c ( ) ;
t0 = space ( ) ;
2020-11-11 00:00:54 +01:00
div2 = element ( "div" ) ;
button0 = element ( "button" ) ;
i0 = element ( "i" ) ;
i0 . textContent = "menu" ;
2020-11-11 23:45:52 +01:00
t2 = space ( ) ;
2020-11-11 00:00:54 +01:00
a = element ( "a" ) ;
i1 = element ( "i" ) ;
i1 . textContent = "home" ;
2020-11-11 23:45:52 +01:00
t4 = space ( ) ;
2020-11-11 00:00:54 +01:00
div1 = element ( "div" ) ;
2020-11-11 23:45:52 +01:00
for ( let i = 0 ; i < each _blocks . length ; i += 1 ) {
each _blocks [ i ] . c ( ) ;
}
t5 = space ( ) ;
2020-11-11 00:00:54 +01:00
div0 = element ( "div" ) ;
2020-11-11 23:45:52 +01:00
t6 = text ( t6 _value ) ;
2020-11-11 00:00:54 +01:00
t7 = space ( ) ;
2020-11-11 23:45:52 +01:00
div3 = element ( "div" ) ;
t8 = space ( ) ;
div8 = element ( "div" ) ;
div6 = element ( "div" ) ;
2020-11-17 23:39:27 +01:00
div5 = element ( "div" ) ;
2020-11-11 00:00:54 +01:00
div4 = element ( "div" ) ;
2020-11-17 23:39:27 +01:00
if ( if _block1 ) if _block1 . c ( ) ;
t9 = space ( ) ;
if ( if _block2 ) if _block2 . c ( ) ;
2020-11-11 23:45:52 +01:00
t10 = space ( ) ;
2020-11-11 00:00:54 +01:00
button1 = element ( "button" ) ;
i2 = element ( "i" ) ;
i2 . textContent = "save" ;
2020-11-17 23:39:27 +01:00
t12 = text ( " DL all files" ) ;
t13 = space ( ) ;
2020-11-11 00:00:54 +01:00
button2 = element ( "button" ) ;
i3 = element ( "i" ) ;
2020-11-17 23:39:27 +01:00
i3 . textContent = "content_copy" ;
t15 = space ( ) ;
u0 = element ( "u" ) ;
u0 . textContent = "C" ;
t17 = text ( "opy Link" ) ;
2020-11-11 23:45:52 +01:00
t18 = space ( ) ;
2020-11-11 00:00:54 +01:00
button3 = element ( "button" ) ;
i4 = element ( "i" ) ;
2020-11-17 23:39:27 +01:00
i4 . textContent = "share" ;
t20 = text ( " Share" ) ;
t21 = space ( ) ;
2020-11-11 00:00:54 +01:00
button4 = element ( "button" ) ;
i5 = element ( "i" ) ;
2020-11-17 23:39:27 +01:00
i5 . textContent = "help" ;
t23 = text ( " Deta" ) ;
u1 = element ( "u" ) ;
u1 . textContent = "i" ;
t25 = text ( "ls" ) ;
2020-11-11 23:45:52 +01:00
t26 = space ( ) ;
2020-11-11 00:00:54 +01:00
button5 = element ( "button" ) ;
i6 = element ( "i" ) ;
2020-11-17 23:39:27 +01:00
i6 . textContent = "edit" ;
t28 = space ( ) ;
2020-11-11 00:00:54 +01:00
u2 = element ( "u" ) ;
u2 . textContent = "E" ;
2020-11-17 23:39:27 +01:00
t30 = text ( "dit" ) ;
t31 = space ( ) ;
2020-11-11 00:00:54 +01:00
create _component ( sharebar _1 . $$ . fragment ) ;
2020-11-17 23:39:27 +01:00
t32 = space ( ) ;
div7 = element ( "div" ) ;
if ( if _block3 ) if _block3 . c ( ) ;
t33 = space ( ) ;
2020-11-11 00:00:54 +01:00
iframe = element ( "iframe" ) ;
2020-11-17 23:39:27 +01:00
t34 = space ( ) ;
2020-11-11 00:00:54 +01:00
create _component ( modal . $$ . fragment ) ;
attr _dev ( i0 , "class" , "icon" ) ;
2020-11-17 23:39:27 +01:00
add _location ( i0 , file$9 , 155 , 3 , 3796 ) ;
attr _dev ( button0 , "class" , "button_toggle_toolbar svelte-in5te4" ) ;
2020-11-11 23:45:52 +01:00
toggle _class ( button0 , "button_highlight" , /*toolbar_visible*/ ctx [ 2 ] ) ;
2020-11-17 23:39:27 +01:00
add _location ( button0 , file$9 , 154 , 2 , 3687 ) ;
2020-11-11 00:00:54 +01:00
attr _dev ( i1 , "class" , "icon" ) ;
2020-11-17 23:39:27 +01:00
add _location ( i1 , file$9 , 157 , 58 , 3891 ) ;
2020-11-11 00:00:54 +01:00
attr _dev ( a , "href" , "/" ) ;
attr _dev ( a , "id" , "button_home" ) ;
2020-11-17 23:39:27 +01:00
attr _dev ( a , "class" , "button button_home svelte-in5te4" ) ;
add _location ( a , file$9 , 157 , 2 , 3835 ) ;
attr _dev ( div0 , "class" , "breadcrumb breadcrumb_last svelte-in5te4" ) ;
add _location ( div0 , file$9 , 162 , 3 , 4127 ) ;
attr _dev ( div1 , "class" , "file_viewer_headerbar_title svelte-in5te4" ) ;
add _location ( div1 , file$9 , 158 , 2 , 3922 ) ;
attr _dev ( div2 , "class" , "file_viewer_headerbar highlight_1 svelte-in5te4" ) ;
add _location ( div2 , file$9 , 153 , 1 , 3614 ) ;
attr _dev ( div3 , "class" , "list_navigator svelte-in5te4" ) ;
add _location ( div3 , file$9 , 165 , 1 , 4209 ) ;
2020-11-11 00:00:54 +01:00
attr _dev ( i2 , "class" , "icon" ) ;
2020-11-17 23:39:27 +01:00
add _location ( i2 , file$9 , 186 , 4 , 5219 ) ;
attr _dev ( button1 , "id" , "btn_download_list" ) ;
attr _dev ( button1 , "class" , "toolbar_button button_full_width svelte-in5te4" ) ;
set _style ( button1 , "display" , "none" ) ;
add _location ( button1 , file$9 , 185 , 3 , 5119 ) ;
2020-11-11 00:00:54 +01:00
attr _dev ( i3 , "class" , "icon" ) ;
2020-11-17 23:39:27 +01:00
add _location ( i3 , file$9 , 189 , 4 , 5341 ) ;
add _location ( u0 , file$9 , 189 , 37 , 5374 ) ;
attr _dev ( button2 , "id" , "btn_copy" ) ;
attr _dev ( button2 , "class" , "toolbar_button button_full_width svelte-in5te4" ) ;
add _location ( button2 , file$9 , 188 , 3 , 5273 ) ;
2020-11-11 00:00:54 +01:00
attr _dev ( i4 , "class" , "icon" ) ;
2020-11-17 23:39:27 +01:00
add _location ( i4 , file$9 , 192 , 4 , 5530 ) ;
attr _dev ( button3 , "class" , "toolbar_button button_full_width svelte-in5te4" ) ;
toggle _class ( button3 , "button_highlight" , /*sharebar_visible*/ ctx [ 11 ] ) ;
add _location ( button3 , file$9 , 191 , 3 , 5407 ) ;
2020-11-11 00:00:54 +01:00
attr _dev ( i5 , "class" , "icon" ) ;
2020-11-17 23:39:27 +01:00
add _location ( i5 , file$9 , 195 , 4 , 5699 ) ;
add _location ( u1 , file$9 , 195 , 33 , 5728 ) ;
attr _dev ( button4 , "class" , "toolbar_button button_full_width svelte-in5te4" ) ;
toggle _class ( button4 , "button_highlight" , /*details_visible*/ ctx [ 12 ] ) ;
add _location ( button4 , file$9 , 194 , 3 , 5578 ) ;
2020-11-11 00:00:54 +01:00
attr _dev ( i6 , "class" , "icon" ) ;
2020-11-17 23:39:27 +01:00
add _location ( i6 , file$9 , 198 , 4 , 5846 ) ;
add _location ( u2 , file$9 , 198 , 29 , 5871 ) ;
attr _dev ( button5 , "id" , "btn_edit" ) ;
attr _dev ( button5 , "class" , "toolbar_button button_full_width svelte-in5te4" ) ;
set _style ( button5 , "display" , "none" ) ;
add _location ( button5 , file$9 , 197 , 3 , 5755 ) ;
attr _dev ( div4 , "class" , "svelte-in5te4" ) ;
add _location ( div4 , file$9 , 167 , 50 , 4328 ) ;
attr _dev ( div5 , "class" , "svelte-in5te4" ) ;
add _location ( div5 , file$9 , 167 , 45 , 4323 ) ;
attr _dev ( div6 , "class" , "toolbar svelte-in5te4" ) ;
toggle _class ( div6 , "toolbar_visible" , /*toolbar_visible*/ ctx [ 2 ] ) ;
add _location ( div6 , file$9 , 167 , 2 , 4280 ) ;
attr _dev ( div7 , "class" , "file_viewer_file_preview svelte-in5te4" ) ;
toggle _class ( div7 , "toolbar_visible" , /*toolbar_visible*/ ctx [ 2 ] ) ;
add _location ( div7 , file$9 , 203 , 2 , 5965 ) ;
attr _dev ( div8 , "class" , "file_viewer_window svelte-in5te4" ) ;
add _location ( div8 , file$9 , 166 , 1 , 4245 ) ;
2020-11-11 00:00:54 +01:00
attr _dev ( iframe , "title" , "Frame for downloading files" ) ;
set _style ( iframe , "display" , "none" ) ;
set _style ( iframe , "width" , "1px" ) ;
set _style ( iframe , "height" , "1px" ) ;
2020-11-17 23:39:27 +01:00
add _location ( iframe , file$9 , 217 , 1 , 6540 ) ;
attr _dev ( div9 , "class" , "file_viewer svelte-in5te4" ) ;
add _location ( div9 , file$9 , 146 , 0 , 3410 ) ;
2020-11-11 00:00:54 +01:00
} ,
l : function claim ( nodes ) {
throw new Error ( "options.hydrate only works if the component was compiled with the `hydratable: true` option" ) ;
} ,
m : function mount ( target , anchor ) {
2020-11-17 23:39:27 +01:00
insert _dev ( target , div9 , anchor ) ;
if ( if _block0 ) if _block0 . m ( div9 , null ) ;
append _dev ( div9 , t0 ) ;
append _dev ( div9 , div2 ) ;
2020-11-11 00:00:54 +01:00
append _dev ( div2 , button0 ) ;
append _dev ( button0 , i0 ) ;
2020-11-11 23:45:52 +01:00
append _dev ( div2 , t2 ) ;
2020-11-11 00:00:54 +01:00
append _dev ( div2 , a ) ;
append _dev ( a , i1 ) ;
2020-11-11 23:45:52 +01:00
append _dev ( div2 , t4 ) ;
2020-11-11 00:00:54 +01:00
append _dev ( div2 , div1 ) ;
2020-11-11 23:45:52 +01:00
for ( let i = 0 ; i < each _blocks . length ; i += 1 ) {
each _blocks [ i ] . m ( div1 , null ) ;
}
append _dev ( div1 , t5 ) ;
2020-11-11 00:00:54 +01:00
append _dev ( div1 , div0 ) ;
2020-11-11 23:45:52 +01:00
append _dev ( div0 , t6 ) ;
2020-11-17 23:39:27 +01:00
/*div2_binding*/ ctx [ 17 ] ( div2 ) ;
append _dev ( div9 , t7 ) ;
append _dev ( div9 , div3 ) ;
append _dev ( div9 , t8 ) ;
append _dev ( div9 , div8 ) ;
append _dev ( div8 , div6 ) ;
2020-11-11 23:45:52 +01:00
append _dev ( div6 , div5 ) ;
2020-11-17 23:39:27 +01:00
append _dev ( div5 , div4 ) ;
if ( if _block1 ) if _block1 . m ( div4 , null ) ;
append _dev ( div4 , t9 ) ;
if ( if _block2 ) if _block2 . m ( div4 , null ) ;
append _dev ( div4 , t10 ) ;
append _dev ( div4 , button1 ) ;
2020-11-11 00:00:54 +01:00
append _dev ( button1 , i2 ) ;
2020-11-17 23:39:27 +01:00
append _dev ( button1 , t12 ) ;
append _dev ( div4 , t13 ) ;
append _dev ( div4 , button2 ) ;
2020-11-11 00:00:54 +01:00
append _dev ( button2 , i3 ) ;
2020-11-17 23:39:27 +01:00
append _dev ( button2 , t15 ) ;
append _dev ( button2 , u0 ) ;
2020-11-11 23:45:52 +01:00
append _dev ( button2 , t17 ) ;
2020-11-17 23:39:27 +01:00
append _dev ( div4 , t18 ) ;
append _dev ( div4 , button3 ) ;
2020-11-11 00:00:54 +01:00
append _dev ( button3 , i4 ) ;
2020-11-11 23:45:52 +01:00
append _dev ( button3 , t20 ) ;
2020-11-17 23:39:27 +01:00
append _dev ( div4 , t21 ) ;
append _dev ( div4 , button4 ) ;
2020-11-11 00:00:54 +01:00
append _dev ( button4 , i5 ) ;
2020-11-17 23:39:27 +01:00
append _dev ( button4 , t23 ) ;
append _dev ( button4 , u1 ) ;
2020-11-11 23:45:52 +01:00
append _dev ( button4 , t25 ) ;
2020-11-17 23:39:27 +01:00
append _dev ( div4 , t26 ) ;
append _dev ( div4 , button5 ) ;
2020-11-11 00:00:54 +01:00
append _dev ( button5 , i6 ) ;
2020-11-11 23:45:52 +01:00
append _dev ( button5 , t28 ) ;
2020-11-17 23:39:27 +01:00
append _dev ( button5 , u2 ) ;
2020-11-11 23:45:52 +01:00
append _dev ( button5 , t30 ) ;
2020-11-17 23:39:27 +01:00
append _dev ( div8 , t31 ) ;
mount _component ( sharebar _1 , div8 , null ) ;
append _dev ( div8 , t32 ) ;
append _dev ( div8 , div7 ) ;
2020-11-11 00:00:54 +01:00
if ( ~ current _block _type _index ) {
2020-11-17 23:39:27 +01:00
if _blocks [ current _block _type _index ] . m ( div7 , null ) ;
2020-11-11 00:00:54 +01:00
}
2020-11-17 23:39:27 +01:00
append _dev ( div9 , t33 ) ;
append _dev ( div9 , iframe ) ;
/*iframe_binding*/ ctx [ 21 ] ( iframe ) ;
append _dev ( div9 , t34 ) ;
mount _component ( modal , div9 , null ) ;
/*div9_binding*/ ctx [ 23 ] ( div9 ) ;
2020-11-11 00:00:54 +01:00
current = true ;
if ( ! mounted ) {
dispose = [
2020-11-17 23:39:27 +01:00
listen _dev ( window _1 , "keydown" , /*keydown*/ ctx [ 14 ] , false , false , false ) ,
listen _dev ( button0 , "click" , /*toolbar_toggle*/ ctx [ 10 ] , false , false , false ) ,
2020-11-11 00:00:54 +01:00
listen _dev (
2020-11-17 23:39:27 +01:00
button3 ,
2020-11-11 00:00:54 +01:00
"click" ,
function ( ) {
2020-11-11 23:45:52 +01:00
if ( is _function ( /*sharebar*/ ctx [ 3 ] . toggle ) ) /*sharebar*/ ctx [ 3 ] . toggle . apply ( this , arguments ) ;
2020-11-11 00:00:54 +01:00
} ,
false ,
false ,
false
) ,
listen _dev (
2020-11-17 23:39:27 +01:00
button4 ,
2020-11-11 00:00:54 +01:00
"click" ,
function ( ) {
2020-11-11 23:45:52 +01:00
if ( is _function ( /*details*/ ctx [ 4 ] . toggle ) ) /*details*/ ctx [ 4 ] . toggle . apply ( this , arguments ) ;
2020-11-11 00:00:54 +01:00
} ,
false ,
false ,
false
)
] ;
mounted = true ;
}
} ,
p : function update ( new _ctx , [ dirty ] ) {
ctx = new _ctx ;
2020-11-17 23:39:27 +01:00
if ( /*state*/ ctx [ 6 ] . loading ) {
2020-11-11 00:00:54 +01:00
if ( if _block0 ) {
2020-11-17 23:39:27 +01:00
if ( dirty & /*state*/ 64 ) {
2020-11-11 23:45:52 +01:00
transition _in ( if _block0 , 1 ) ;
}
2020-11-11 00:00:54 +01:00
} else {
2020-11-17 23:39:27 +01:00
if _block0 = create _if _block _8 ( ctx ) ;
2020-11-11 00:00:54 +01:00
if _block0 . c ( ) ;
2020-11-11 23:45:52 +01:00
transition _in ( if _block0 , 1 ) ;
2020-11-17 23:39:27 +01:00
if _block0 . m ( div9 , t0 ) ;
2020-11-11 00:00:54 +01:00
}
} else if ( if _block0 ) {
2020-11-11 23:45:52 +01:00
group _outros ( ) ;
transition _out ( if _block0 , 1 , 1 , ( ) => {
if _block0 = null ;
} ) ;
check _outros ( ) ;
}
if ( dirty & /*toolbar_visible*/ 4 ) {
toggle _class ( button0 , "button_highlight" , /*toolbar_visible*/ ctx [ 2 ] ) ;
}
2020-11-17 23:39:27 +01:00
if ( dirty & /*navigate, state*/ 8256 ) {
each _value = /*state*/ ctx [ 6 ] . parents ;
2020-11-11 23:45:52 +01:00
validate _each _argument ( each _value ) ;
let i ;
for ( i = 0 ; i < each _value . length ; i += 1 ) {
2020-11-17 23:39:27 +01:00
const child _ctx = get _each _context$2 ( ctx , each _value , i ) ;
2020-11-11 23:45:52 +01:00
if ( each _blocks [ i ] ) {
each _blocks [ i ] . p ( child _ctx , dirty ) ;
} else {
2020-11-17 23:39:27 +01:00
each _blocks [ i ] = create _each _block$2 ( child _ctx ) ;
2020-11-11 23:45:52 +01:00
each _blocks [ i ] . c ( ) ;
each _blocks [ i ] . m ( div1 , t5 ) ;
}
}
for ( ; i < each _blocks . length ; i += 1 ) {
each _blocks [ i ] . d ( 1 ) ;
}
each _blocks . length = each _value . length ;
2020-11-11 00:00:54 +01:00
}
2020-11-17 23:39:27 +01:00
if ( ( ! current || dirty & /*state*/ 64 ) && t6 _value !== ( t6 _value = /*state*/ ctx [ 6 ] . base . name + "" ) ) set _data _dev ( t6 , t6 _value ) ;
if ( current _block _type === ( current _block _type = select _block _type ( ctx ) ) && if _block1 ) {
if _block1 . p ( ctx , dirty ) ;
} else {
if ( if _block1 ) if _block1 . d ( 1 ) ;
if _block1 = current _block _type && current _block _type ( ctx ) ;
if ( if _block1 ) {
if _block1 . c ( ) ;
if _block1 . m ( div4 , t9 ) ;
}
}
if ( /*state*/ ctx [ 6 ] . base . type === "file" ) {
if ( if _block2 ) {
if _block2 . p ( ctx , dirty ) ;
} else {
if _block2 = create _if _block _5 ( ctx ) ;
if _block2 . c ( ) ;
if _block2 . m ( div4 , t10 ) ;
}
} else if ( if _block2 ) {
if _block2 . d ( 1 ) ;
if _block2 = null ;
}
2020-11-11 00:00:54 +01:00
2020-11-17 23:39:27 +01:00
if ( dirty & /*sharebar_visible*/ 2048 ) {
toggle _class ( button3 , "button_highlight" , /*sharebar_visible*/ ctx [ 11 ] ) ;
2020-11-11 00:00:54 +01:00
}
2020-11-17 23:39:27 +01:00
if ( dirty & /*details_visible*/ 4096 ) {
toggle _class ( button4 , "button_highlight" , /*details_visible*/ ctx [ 12 ] ) ;
2020-11-11 00:00:54 +01:00
}
2020-11-11 23:45:52 +01:00
if ( dirty & /*toolbar_visible*/ 4 ) {
2020-11-17 23:39:27 +01:00
toggle _class ( div6 , "toolbar_visible" , /*toolbar_visible*/ ctx [ 2 ] ) ;
2020-11-11 00:00:54 +01:00
}
const sharebar _1 _changes = { } ;
sharebar _1 . $set ( sharebar _1 _changes ) ;
let previous _block _index = current _block _type _index ;
2020-11-17 23:39:27 +01:00
current _block _type _index = select _block _type _1 ( ctx ) ;
2020-11-11 00:00:54 +01:00
if ( current _block _type _index === previous _block _index ) {
if ( ~ current _block _type _index ) {
if _blocks [ current _block _type _index ] . p ( ctx , dirty ) ;
}
} else {
2020-11-17 23:39:27 +01:00
if ( if _block3 ) {
2020-11-11 00:00:54 +01:00
group _outros ( ) ;
transition _out ( if _blocks [ previous _block _index ] , 1 , 1 , ( ) => {
if _blocks [ previous _block _index ] = null ;
} ) ;
check _outros ( ) ;
}
if ( ~ current _block _type _index ) {
2020-11-17 23:39:27 +01:00
if _block3 = if _blocks [ current _block _type _index ] ;
2020-11-11 00:00:54 +01:00
2020-11-17 23:39:27 +01:00
if ( ! if _block3 ) {
if _block3 = if _blocks [ current _block _type _index ] = if _block _creators [ current _block _type _index ] ( ctx ) ;
if _block3 . c ( ) ;
2020-11-11 00:00:54 +01:00
} else {
2020-11-17 23:39:27 +01:00
if _block3 . p ( ctx , dirty ) ;
2020-11-11 00:00:54 +01:00
}
2020-11-17 23:39:27 +01:00
transition _in ( if _block3 , 1 ) ;
if _block3 . m ( div7 , null ) ;
2020-11-11 00:00:54 +01:00
} else {
2020-11-17 23:39:27 +01:00
if _block3 = null ;
2020-11-11 00:00:54 +01:00
}
}
2020-11-11 23:45:52 +01:00
if ( dirty & /*toolbar_visible*/ 4 ) {
2020-11-17 23:39:27 +01:00
toggle _class ( div7 , "toolbar_visible" , /*toolbar_visible*/ ctx [ 2 ] ) ;
2020-11-11 00:00:54 +01:00
}
const modal _changes = { } ;
2020-11-17 23:39:27 +01:00
if ( dirty & /*$$scope, state*/ 268435520 ) {
2020-11-11 00:00:54 +01:00
modal _changes . $$scope = { dirty , ctx } ;
}
modal . $set ( modal _changes ) ;
} ,
i : function intro ( local ) {
if ( current ) return ;
2020-11-11 23:45:52 +01:00
transition _in ( if _block0 ) ;
2020-11-11 00:00:54 +01:00
transition _in ( sharebar _1 . $$ . fragment , local ) ;
2020-11-17 23:39:27 +01:00
transition _in ( if _block3 ) ;
2020-11-11 00:00:54 +01:00
transition _in ( modal . $$ . fragment , local ) ;
current = true ;
} ,
o : function outro ( local ) {
2020-11-11 23:45:52 +01:00
transition _out ( if _block0 ) ;
2020-11-11 00:00:54 +01:00
transition _out ( sharebar _1 . $$ . fragment , local ) ;
2020-11-17 23:39:27 +01:00
transition _out ( if _block3 ) ;
2020-11-11 00:00:54 +01:00
transition _out ( modal . $$ . fragment , local ) ;
current = false ;
} ,
d : function destroy ( detaching ) {
2020-11-17 23:39:27 +01:00
if ( detaching ) detach _dev ( div9 ) ;
2020-11-11 00:00:54 +01:00
if ( if _block0 ) if _block0 . d ( ) ;
2020-11-11 23:45:52 +01:00
destroy _each ( each _blocks , detaching ) ;
2020-11-17 23:39:27 +01:00
/*div2_binding*/ ctx [ 17 ] ( null ) ;
if ( if _block1 ) {
if _block1 . d ( ) ;
}
if ( if _block2 ) if _block2 . d ( ) ;
/*sharebar_1_binding*/ ctx [ 18 ] ( null ) ;
2020-11-11 00:00:54 +01:00
destroy _component ( sharebar _1 ) ;
if ( ~ current _block _type _index ) {
if _blocks [ current _block _type _index ] . d ( ) ;
}
2020-11-17 23:39:27 +01:00
/*iframe_binding*/ ctx [ 21 ] ( null ) ;
/*modal_binding*/ ctx [ 22 ] ( null ) ;
2020-11-11 00:00:54 +01:00
destroy _component ( modal ) ;
2020-11-17 23:39:27 +01:00
/*div9_binding*/ ctx [ 23 ] ( null ) ;
2020-11-11 00:00:54 +01:00
mounted = false ;
run _all ( dispose ) ;
}
} ;
dispatch _dev ( "SvelteRegisterBlock" , {
block ,
2020-11-17 23:39:27 +01:00
id : create _fragment$9 . name ,
2020-11-11 00:00:54 +01:00
type : "component" ,
source : "" ,
ctx
} ) ;
return block ;
}
2020-11-17 23:39:27 +01:00
function instance$9 ( $$self , $$props , $$invalidate ) {
2020-11-11 00:00:54 +01:00
let { $$slots : slots = { } , $$scope } = $$props ;
validate _slots ( "Filesystem" , slots , [ ] ) ;
let file _viewer ;
let header _bar ;
let toolbar _visible = window . innerWidth > 800 ;
let toolbar _toggle = ( ) => {
2020-11-11 23:45:52 +01:00
$$invalidate ( 2 , toolbar _visible = ! toolbar _visible ) ;
2020-11-11 00:00:54 +01:00
if ( ! toolbar _visible ) {
sharebar . setVisible ( false ) ;
}
} ;
let sharebar ;
let sharebar _visible = false ;
let details ;
let details _visible = false ;
2020-11-17 23:39:27 +01:00
let download _frame ;
2020-11-11 00:00:54 +01:00
// State
2020-11-17 23:39:27 +01:00
let state = {
bucket : initialNode . bucket ,
parents : initialNode . parents ,
base : initialNode . base ,
path _root : "/d/" + initialNode . bucket . id ,
loading : true ,
viewer _type : ""
2020-11-11 00:00:54 +01:00
} ;
2020-11-11 23:45:52 +01:00
const navigate = ( path , pushHist ) => {
2020-11-17 23:39:27 +01:00
$$invalidate ( 6 , state . loading = true , state ) ;
2020-11-11 23:45:52 +01:00
2020-11-17 23:39:27 +01:00
fs _get _node ( state . bucket . id , path ) . then ( resp => {
2020-11-11 23:45:52 +01:00
window . document . title = resp . base . name + " ~ pixeldrain" ;
if ( pushHist ) {
window . history . pushState ( { } , window . document . title , "/d/" + resp . bucket . id + resp . base . path ) ;
}
2020-11-17 23:39:27 +01:00
openNode ( resp ) ;
2020-11-11 00:00:54 +01:00
} ) . catch ( err => {
2020-11-17 23:39:27 +01:00
console . error ( err ) ;
2020-11-11 00:00:54 +01:00
alert ( err ) ;
2020-11-17 23:39:27 +01:00
} ) . finally ( ( ) => {
$$invalidate ( 6 , state . loading = false , state ) ;
2020-11-11 00:00:54 +01:00
} ) ;
} ;
2020-11-17 23:39:27 +01:00
const openNode = node => {
// Sort directory children
node . base . children . sort ( ( a , b ) => {
// Sort directories before files
console . log ( a ) ;
if ( a . type !== b . type ) {
return a . type === "file" ? 1 : - 1 ;
}
return a . name . localeCompare ( b . name ) ;
} ) ;
2020-11-11 00:00:54 +01:00
2020-11-17 23:39:27 +01:00
// Update shared state
$$invalidate ( 6 , state . bucket = node . bucket , state ) ;
$$invalidate ( 6 , state . parents = node . parents , state ) ;
$$invalidate ( 6 , state . base = node . base , state ) ;
// Update the viewer area with the right viewer type
if ( state . base . type === "bucket" || state . base . type === "dir" ) {
$$invalidate ( 6 , state . viewer _type = "dir" , state ) ;
} else if ( state . base . file _type . startsWith ( "image" ) ) {
$$invalidate ( 6 , state . viewer _type = "image" , state ) ;
} else if ( state . base . file _type . startsWith ( "audio" ) || state . base . file _type === "application/ogg" || state . base . name . endsWith ( ".mp3" ) ) {
$$invalidate ( 6 , state . viewer _type = "audio" , state ) ;
} else if ( state . base . file _type . startsWith ( "video" ) || state . base . file _type === "application/matroska" || state . base . file _type === "application/x-matroska" ) {
$$invalidate ( 6 , state . viewer _type = "video" , state ) ;
} else {
$$invalidate ( 6 , state . viewer _type = "" , state ) ;
2020-11-11 00:00:54 +01:00
}
2020-11-17 23:39:27 +01:00
// Remove spinner
$$invalidate ( 6 , state . loading = false , state ) ;
} ;
onMount ( ( ) => openNode ( initialNode ) ) ;
window . onpopstate = e => {
if ( e . state ) {
let locsplit = document . location . pathname . split ( state . bucket . id + "/" , 2 ) ;
navigate ( decodeURIComponent ( locsplit [ 1 ] ) ) ;
}
2020-11-11 00:00:54 +01:00
} ;
const keydown = e => {
switch ( e . key ) {
case "Escape" :
hide ( ) ;
return ;
case "i" :
details _window . toggle ( ) ;
}
2020-11-17 23:39:27 +01:00
} ;
2020-11-11 00:00:54 +01:00
2020-11-17 23:39:27 +01:00
const download = ( ) => {
$$invalidate ( 5 , download _frame . src = fs _get _file _url ( state . bucket . id , state . base . path ) + "?attach" , download _frame ) ;
2020-11-11 00:00:54 +01:00
} ;
const writable _props = [ ] ;
Object . keys ( $$props ) . forEach ( key => {
2020-11-17 23:39:27 +01:00
if ( ! ~ writable _props . indexOf ( key ) && key . slice ( 0 , 2 ) !== "$$" ) console _1$2 . warn ( ` <Filesystem> was created with unknown prop ' ${ key } ' ` ) ;
2020-11-11 00:00:54 +01:00
} ) ;
2020-11-11 23:45:52 +01:00
const click _handler = parent => {
navigate ( parent . path , true ) ;
} ;
2020-11-11 00:00:54 +01:00
function div2 _binding ( $$value ) {
binding _callbacks [ $$value ? "unshift" : "push" ] ( ( ) => {
header _bar = $$value ;
2020-11-11 23:45:52 +01:00
$$invalidate ( 1 , header _bar ) ;
2020-11-11 00:00:54 +01:00
} ) ;
}
function sharebar _1 _binding ( $$value ) {
binding _callbacks [ $$value ? "unshift" : "push" ] ( ( ) => {
sharebar = $$value ;
2020-11-11 23:45:52 +01:00
$$invalidate ( 3 , sharebar ) ;
2020-11-11 00:00:54 +01:00
} ) ;
}
const navigate _handler = e => {
2020-11-11 23:45:52 +01:00
navigate ( e . detail , true ) ;
2020-11-11 00:00:54 +01:00
} ;
2020-11-17 23:39:27 +01:00
const loading _handler = e => {
$$invalidate ( 6 , state . loading = e . detail , state ) ;
} ;
2020-11-11 23:45:52 +01:00
2020-11-17 23:39:27 +01:00
function iframe _binding ( $$value ) {
2020-11-11 23:45:52 +01:00
binding _callbacks [ $$value ? "unshift" : "push" ] ( ( ) => {
2020-11-17 23:39:27 +01:00
download _frame = $$value ;
$$invalidate ( 5 , download _frame ) ;
2020-11-11 00:00:54 +01:00
} ) ;
}
function modal _binding ( $$value ) {
binding _callbacks [ $$value ? "unshift" : "push" ] ( ( ) => {
details = $$value ;
2020-11-11 23:45:52 +01:00
$$invalidate ( 4 , details ) ;
2020-11-11 00:00:54 +01:00
} ) ;
}
2020-11-17 23:39:27 +01:00
function div9 _binding ( $$value ) {
2020-11-11 00:00:54 +01:00
binding _callbacks [ $$value ? "unshift" : "push" ] ( ( ) => {
file _viewer = $$value ;
2020-11-11 23:45:52 +01:00
$$invalidate ( 0 , file _viewer ) ;
2020-11-11 00:00:54 +01:00
} ) ;
}
$$self . $capture _state = ( ) => ( {
onMount ,
formatDate ,
formatDataVolume ,
formatThousands ,
2020-11-17 23:39:27 +01:00
formatNumber ,
fs _get _file _url ,
fs _get _node ,
2020-11-11 00:00:54 +01:00
Sharebar ,
Spinner ,
Modal ,
2020-11-17 23:39:27 +01:00
FileManager ,
2020-11-11 23:45:52 +01:00
Audio ,
Image ,
2020-11-17 23:39:27 +01:00
Video ,
current _component ,
2020-11-11 00:00:54 +01:00
file _viewer ,
header _bar ,
toolbar _visible ,
toolbar _toggle ,
sharebar ,
sharebar _visible ,
details ,
details _visible ,
2020-11-17 23:39:27 +01:00
download _frame ,
state ,
2020-11-11 00:00:54 +01:00
navigate ,
2020-11-17 23:39:27 +01:00
openNode ,
keydown ,
download ,
total _directories ,
total _files ,
total _file _size
2020-11-11 00:00:54 +01:00
} ) ;
$$self . $inject _state = $$props => {
2020-11-11 23:45:52 +01:00
if ( "file_viewer" in $$props ) $$invalidate ( 0 , file _viewer = $$props . file _viewer ) ;
if ( "header_bar" in $$props ) $$invalidate ( 1 , header _bar = $$props . header _bar ) ;
if ( "toolbar_visible" in $$props ) $$invalidate ( 2 , toolbar _visible = $$props . toolbar _visible ) ;
2020-11-17 23:39:27 +01:00
if ( "toolbar_toggle" in $$props ) $$invalidate ( 10 , toolbar _toggle = $$props . toolbar _toggle ) ;
2020-11-11 23:45:52 +01:00
if ( "sharebar" in $$props ) $$invalidate ( 3 , sharebar = $$props . sharebar ) ;
2020-11-17 23:39:27 +01:00
if ( "sharebar_visible" in $$props ) $$invalidate ( 11 , sharebar _visible = $$props . sharebar _visible ) ;
2020-11-11 23:45:52 +01:00
if ( "details" in $$props ) $$invalidate ( 4 , details = $$props . details ) ;
2020-11-17 23:39:27 +01:00
if ( "details_visible" in $$props ) $$invalidate ( 12 , details _visible = $$props . details _visible ) ;
if ( "download_frame" in $$props ) $$invalidate ( 5 , download _frame = $$props . download _frame ) ;
if ( "state" in $$props ) $$invalidate ( 6 , state = $$props . state ) ;
if ( "total_directories" in $$props ) $$invalidate ( 7 , total _directories = $$props . total _directories ) ;
if ( "total_files" in $$props ) $$invalidate ( 8 , total _files = $$props . total _files ) ;
if ( "total_file_size" in $$props ) $$invalidate ( 9 , total _file _size = $$props . total _file _size ) ;
2020-11-11 00:00:54 +01:00
} ;
2020-11-17 23:39:27 +01:00
let total _directories ;
let total _files ;
let total _file _size ;
2020-11-11 00:00:54 +01:00
if ( $$props && "$$inject" in $$props ) {
$$self . $inject _state ( $$props . $$inject ) ;
}
2020-11-17 23:39:27 +01:00
$$self . $$ . update = ( ) => {
if ( $$self . $$ . dirty & /*state*/ 64 ) {
// Tallys
$$invalidate ( 7 , total _directories = state . base . children . reduce (
( acc , cur ) => {
if ( cur . type === "dir" ) {
acc ++ ;
}
return acc ;
} ,
0
) ) ;
}
if ( $$self . $$ . dirty & /*state*/ 64 ) {
$$invalidate ( 8 , total _files = state . base . children . reduce (
( acc , cur ) => {
if ( cur . type === "file" ) {
acc ++ ;
}
return acc ;
} ,
0
) ) ;
}
if ( $$self . $$ . dirty & /*state*/ 64 ) {
$$invalidate ( 9 , total _file _size = state . base . children . reduce ( ( acc , cur ) => acc + cur . file _size , 0 ) ) ;
}
} ;
2020-11-11 00:00:54 +01:00
return [
file _viewer ,
header _bar ,
toolbar _visible ,
sharebar ,
details ,
2020-11-17 23:39:27 +01:00
download _frame ,
state ,
total _directories ,
total _files ,
total _file _size ,
2020-11-11 00:00:54 +01:00
toolbar _toggle ,
sharebar _visible ,
details _visible ,
navigate ,
keydown ,
2020-11-17 23:39:27 +01:00
download ,
2020-11-11 23:45:52 +01:00
click _handler ,
2020-11-11 00:00:54 +01:00
div2 _binding ,
sharebar _1 _binding ,
navigate _handler ,
2020-11-17 23:39:27 +01:00
loading _handler ,
iframe _binding ,
2020-11-11 00:00:54 +01:00
modal _binding ,
2020-11-17 23:39:27 +01:00
div9 _binding
2020-11-11 00:00:54 +01:00
] ;
}
class Filesystem extends SvelteComponentDev {
constructor ( options ) {
super ( options ) ;
2020-11-17 23:39:27 +01:00
init ( this , options , instance$9 , create _fragment$9 , safe _not _equal , { } ) ;
2020-11-11 00:00:54 +01:00
dispatch _dev ( "SvelteRegisterComponent" , {
component : this ,
tagName : "Filesystem" ,
options ,
2020-11-17 23:39:27 +01:00
id : create _fragment$9 . name
2020-11-11 00:00:54 +01:00
} ) ;
}
}
const app = new Filesystem ( {
target : document . body ,
props : { }
} ) ;
return app ;
} ( ) ) ;
//# sourceMappingURL=filesystem.js.map