function noop ( ) { }
function assign ( tar , src ) {
for ( var k in src ) tar [ k ] = src [ k ] ;
return tar ;
}
function appendNode ( node , target ) {
target . appendChild ( node ) ;
}
function insertNode ( node , target , anchor ) {
target . insertBefore ( node , anchor ) ;
}
function detachNode ( node ) {
node . parentNode . removeChild ( node ) ;
}
function createElement ( name ) {
return document . createElement ( name ) ;
}
function createText ( data ) {
return document . createTextNode ( data ) ;
}
function blankObject ( ) {
return Object . create ( null ) ;
}
function destroy ( detach ) {
this . destroy = noop ;
this . fire ( 'destroy' ) ;
this . set = this . get = noop ;
if ( detach !== false ) this . _fragment . u ( ) ;
this . _fragment . d ( ) ;
this . _fragment = this . _state = null ;
}
function destroyDev ( detach ) {
destroy . call ( this , detach ) ;
this . destroy = function ( ) {
console . warn ( 'Component was already destroyed' ) ;
} ;
}
function _differs ( a , b ) {
return a != a ? b == b : a !== b || ( ( a && typeof a === 'object' ) || typeof a === 'function' ) ;
}
function fire ( eventName , data ) {
var handlers =
eventName in this . _handlers && this . _handlers [ eventName ] . slice ( ) ;
if ( ! handlers ) return ;
for ( var i = 0 ; i < handlers . length ; i += 1 ) {
var handler = handlers [ i ] ;
if ( ! handler . _ _calling ) {
handler . _ _calling = true ;
handler . call ( this , data ) ;
handler . _ _calling = false ;
}
}
}
function getDev ( key ) {
if ( key ) console . warn ( "`let x = component.get('x')` is deprecated. Use `let { x } = component.get()` instead" ) ;
return get . call ( this , key ) ;
}
function get ( key ) {
return key ? this . _state [ key ] : this . _state ;
}
function init ( component , options ) {
component . _handlers = blankObject ( ) ;
component . _bind = options . _bind ;
component . options = options ;
component . root = options . root || component ;
component . store = component . root . store || options . store ;
}
function observe ( key , callback , options ) {
var fn = callback . bind ( this ) ;
if ( ! options || options . init !== false ) {
fn ( this . get ( ) [ key ] , undefined ) ;
}
return this . on ( options && options . defer ? 'update' : 'state' , function ( event ) {
if ( event . changed [ key ] ) fn ( event . current [ key ] , event . previous && event . previous [ key ] ) ;
} ) ;
}
function observeDev ( key , callback , options ) {
console . warn ( "this.observe(key, (newValue, oldValue) => {...}) is deprecated. Use\n\n // runs before DOM updates\n this.on('state', ({ changed, current, previous }) => {...});\n\n // runs after DOM updates\n this.on('update', ...);\n\n...or add the observe method from the svelte-extras package" ) ;
var c = ( key = '' + key ) . search ( /[.[]/ ) ;
if ( c > - 1 ) {
var message =
'The first argument to component.observe(...) must be the name of a top-level property' ;
if ( c > 0 )
message += ", i.e. '" + key . slice ( 0 , c ) + "' rather than '" + key + "'" ;
throw new Error ( message ) ;
}
return observe . call ( this , key , callback , options ) ;
}
function on ( eventName , handler ) {
if ( eventName === 'teardown' ) return this . on ( 'destroy' , handler ) ;
var handlers = this . _handlers [ eventName ] || ( this . _handlers [ eventName ] = [ ] ) ;
handlers . push ( handler ) ;
return {
cancel : function ( ) {
var index = handlers . indexOf ( handler ) ;
if ( ~ index ) handlers . splice ( index , 1 ) ;
}
} ;
}
function onDev ( eventName , handler ) {
if ( eventName === 'teardown' ) {
console . warn (
"Use component.on('destroy', ...) instead of component.on('teardown', ...) which has been deprecated and will be unsupported in Svelte 2"
) ;
return this . on ( 'destroy' , handler ) ;
}
return on . call ( this , eventName , handler ) ;
}
function set ( newState ) {
this . _set ( assign ( { } , newState ) ) ;
if ( this . root . _lock ) return ;
this . root . _lock = true ;
callAll ( this . root . _beforecreate ) ;
callAll ( this . root . _oncreate ) ;
callAll ( this . root . _aftercreate ) ;
this . root . _lock = false ;
}
function _set ( newState ) {
var oldState = this . _state ,
changed = { } ,
dirty = false ;
for ( var key in newState ) {
if ( this . _differs ( newState [ key ] , oldState [ key ] ) ) changed [ key ] = dirty = true ;
}
if ( ! dirty ) return ;
this . _state = assign ( assign ( { } , oldState ) , newState ) ;
this . _recompute ( changed , this . _state ) ;
if ( this . _bind ) this . _bind ( changed , this . _state ) ;
if ( this . _fragment ) {
this . fire ( "state" , { changed : changed , current : this . _state , previous : oldState } ) ;
this . _fragment . p ( changed , this . _state ) ;
this . fire ( "update" , { changed : changed , current : this . _state , previous : oldState } ) ;
}
}
function setDev ( newState ) {
if ( typeof newState !== 'object' ) {
throw new Error (
this . _debugName + '.set was called without an object of data key-values to update.'
) ;
}
this . _checkReadOnly ( newState ) ;
set . call ( this , newState ) ;
}
function callAll ( fns ) {
while ( fns && fns . length ) fns . shift ( ) ( ) ;
}
function _mount ( target , anchor ) {
this . _fragment [ this . _fragment . i ? 'i' : 'm' ] ( target , anchor || null ) ;
}
function _unmount ( ) {
if ( this . _fragment ) this . _fragment . u ( ) ;
}
var protoDev = {
destroy : destroyDev ,
get : getDev ,
fire : fire ,
observe : observeDev ,
on : onDev ,
set : setDev ,
teardown : destroyDev ,
_recompute : noop ,
_set : _set ,
_mount : _mount ,
_unmount : _unmount ,
_differs : _differs
} ;
/* generated by Svelte vX.Y.Z */
function bar ( { foo } ) {
return foo * 2 ;
}
function create _main _fragment ( component , state ) {
var p , text _value = state . Math . max ( 0 , state . foo ) , text , text _1 , text _2 ;
return {
c : function create ( ) {
p = createElement ( "p" ) ;
text = createText ( text _value ) ;
text _1 = createText ( "\n\t" ) ;
text _2 = createText ( state . bar ) ;
} ,
m : function mount ( target , anchor ) {
insertNode ( p , target , anchor ) ;
appendNode ( text , p ) ;
appendNode ( text _1 , p ) ;
appendNode ( text _2 , p ) ;
} ,
p : function update ( changed , state ) {
if ( ( changed . Math || changed . foo ) && text _value !== ( text _value = state . Math . max ( 0 , state . foo ) ) ) {
text . data = text _value ;
}
if ( changed . bar ) {
text _2 . data = state . bar ;
}
} ,
u : function unmount ( ) {
detachNode ( p ) ;
} ,
d : noop
} ;
}
function SvelteComponent ( options ) {
this . _debugName = '<SvelteComponent>' ;
if ( ! options || ( ! options . target && ! options . root ) ) throw new Error ( "'target' is a required option" ) ;
init ( this , options ) ;
this . _state = assign ( { Math : Math } , options . data ) ;
this . _recompute ( { foo : 1 } , this . _state ) ;
if ( ! ( 'foo' in this . _state ) ) console . warn ( "<SvelteComponent> was created without expected data property 'foo'" ) ;
this . _fragment = create _main _fragment ( this , this . _state ) ;
if ( options . target ) {
if ( options . hydrate ) throw new Error ( "options.hydrate only works if the component was compiled with the `hydratable: true` option" ) ;
this . _fragment . c ( ) ;
this . _mount ( options . target , options . anchor ) ;
}
}
assign ( SvelteComponent . prototype , protoDev ) ;
SvelteComponent . prototype . _checkReadOnly = function _checkReadOnly ( newState ) {
if ( 'bar' in newState && ! this . _updatingReadonlyProperty ) throw new Error ( "<SvelteComponent>: Cannot set read-only property 'bar'" ) ;
} ;
SvelteComponent . prototype . _recompute = function _recompute ( changed , state ) {
if ( changed . foo ) {
if ( this . _differs ( state . bar , ( state . bar = bar ( state ) ) ) ) changed . bar = true ;
}
} ;
export default SvelteComponent ;