@ -1,36 +1,20 @@
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				import  {  importFetchedStatus ,  importFetchedStatuses  }  from  './importer' ; 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				import  api ,  {  getLinks  }  from  '../api' ; 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				import  {  Map  as  ImmutableMap ,  List  as  ImmutableList   }  from  'immutable' ; 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				import  {  Map  as  ImmutableMap  }  from  'immutable' ; 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				export  const  TIMELINE _UPDATE   =  'TIMELINE_UPDATE' ; 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				export  const  TIMELINE _DELETE   =  'TIMELINE_DELETE' ; 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				export  const  TIMELINE _REFRESH _REQUEST  =  'TIMELINE_REFRESH_REQUEST' ; 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				export  const  TIMELINE _REFRESH _SUCCESS  =  'TIMELINE_REFRESH_SUCCESS' ; 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				export  const  TIMELINE _REFRESH _FAIL     =  'TIMELINE_REFRESH_FAIL' ; 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				export  const  TIMELINE _EXPAND _REQUEST  =  'TIMELINE_EXPAND_REQUEST' ; 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				export  const  TIMELINE _EXPAND _SUCCESS  =  'TIMELINE_EXPAND_SUCCESS' ; 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				export  const  TIMELINE _EXPAND _FAIL     =  'TIMELINE_EXPAND_FAIL' ; 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				export  const  TIMELINE _SCROLL _TOP  =  'TIMELINE_SCROLL_TOP' ; 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				export  const  TIMELINE _CONNECT     =  'TIMELINE_CONNECT' ; 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				export  const  TIMELINE _DISCONNECT  =  'TIMELINE_DISCONNECT' ; 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				export  const  TIMELINE _CONTEXT _UPDATE  =  'CONTEXT_UPDATE' ; 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				export  function  refreshTimelineSuccess ( timeline ,  statuses ,  skipLoading ,  next ,  partial )  { 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				  return  { 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    type :  TIMELINE _REFRESH _SUCCESS , 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    timeline , 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    statuses , 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    skipLoading , 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    next , 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    partial , 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				  } ; 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				} ; 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				export  function  updateTimeline ( timeline ,  status )  { 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				  return  ( dispatch ,  getState )  =>  { 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    const  references  =  status . reblog  ?  getState ( ) . get ( 'statuses' ) . filter ( ( item ,  itemId )  =>  ( itemId  ===  status . reblog . id  ||  item . get ( 'reblog' )  ===  status . reblog . id ) ) . map ( ( _ ,  itemId )  =>  itemId )  :  [ ] ; 
 
			
		 
		
	
	
		
			
				
					
						
							
								 
							 
						
						
							
								 
							 
						
						
					 
				
			
			 
			 
			
				@ -80,97 +64,34 @@ export function deleteFromTimelines(id) {
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				  } ; 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				} ; 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				export  function  refreshTimelineRequest ( timeline ,  skipLoading )  { 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				  return  { 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    type :  TIMELINE _REFRESH _REQUEST , 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    timeline , 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    skipLoading , 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				  } ; 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				} ; 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				export  function  refreshTimeline ( timelineId ,  path ,  params  =  { } )  { 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				  return  function  ( dispatch ,  getState )  { 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    const  timeline  =  getState ( ) . getIn ( [ 'timelines' ,  timelineId ] ,  ImmutableMap ( ) ) ; 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    if  ( timeline . get ( 'isLoading' )  ||  ( timeline . get ( 'online' )  &&  ! timeline . get ( 'isPartial' ) ) )  { 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				      return ; 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    } 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    const  ids       =  timeline . get ( 'items' ,  ImmutableList ( ) ) ; 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    const  newestId  =  ids . size  >  0  ?  ids . first ( )  :  null ; 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    let  skipLoading  =  timeline . get ( 'loaded' ) ; 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    if  ( newestId  !==  null )  { 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				      params . since _id  =  newestId ; 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    } 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    dispatch ( refreshTimelineRequest ( timelineId ,  skipLoading ) ) ; 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    api ( getState ) . get ( path ,  {  params  } ) . then ( response  =>  { 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				      if  ( response . status  ===  206 )  { 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				        dispatch ( refreshTimelineSuccess ( timelineId ,  [ ] ,  skipLoading ,  null ,  true ) ) ; 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				      }  else  { 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				        const  next  =  getLinks ( response ) . refs . find ( link  =>  link . rel  ===  'next' ) ; 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				        dispatch ( importFetchedStatuses ( response . data ) ) ; 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				        dispatch ( refreshTimelineSuccess ( timelineId ,  response . data ,  skipLoading ,  next  ?  next . uri  :  null ,  false ) ) ; 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				      } 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    } ) . catch ( error  =>  { 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				      dispatch ( refreshTimelineFail ( timelineId ,  error ,  skipLoading ) ) ; 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    } ) ; 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				  } ; 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				} ; 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				export  const  refreshHomeTimeline             =  ( )  =>  refreshTimeline ( 'home' ,  '/api/v1/timelines/home' ) ; 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				export  const  refreshPublicTimeline           =  ( )  =>  refreshTimeline ( 'public' ,  '/api/v1/timelines/public' ) ; 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				export  const  refreshCommunityTimeline        =  ( )  =>  refreshTimeline ( 'community' ,  '/api/v1/timelines/public' ,  {  local :  true  } ) ; 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				export  const  refreshAccountTimeline          =  ( accountId ,  withReplies )  =>  refreshTimeline ( ` account: ${ accountId } ${ withReplies  ?  ':with_replies'  :  '' } ` ,  ` /api/v1/accounts/ ${ accountId } /statuses ` ,  {  exclude _replies :  ! withReplies  } ) ; 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				export  const  refreshAccountFeaturedTimeline  =  accountId  =>  refreshTimeline ( ` account: ${ accountId } :pinned ` ,  ` /api/v1/accounts/ ${ accountId } /statuses ` ,  {  pinned :  true  } ) ; 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				export  const  refreshAccountMediaTimeline     =  accountId  =>  refreshTimeline ( ` account: ${ accountId } :media ` ,  ` /api/v1/accounts/ ${ accountId } /statuses ` ,  {  only _media :  true  } ) ; 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				export  const  refreshHashtagTimeline          =  hashtag  =>  refreshTimeline ( ` hashtag: ${ hashtag } ` ,  ` /api/v1/timelines/tag/ ${ hashtag } ` ) ; 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				export  const  refreshListTimeline             =  id  =>  refreshTimeline ( ` list: ${ id } ` ,  ` /api/v1/timelines/list/ ${ id } ` ) ; 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				export  function  refreshTimelineFail ( timeline ,  error ,  skipLoading )  { 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				  return  { 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    type :  TIMELINE _REFRESH _FAIL , 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    timeline , 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    error , 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    skipLoading , 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    skipAlert :  error . response  &&  error . response . status  ===  404 , 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				  } ; 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				} ; 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				export  function  expandTimeline ( timelineId ,  path ,  params  =  { } )  { 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				  return  ( dispatch ,  getState )  =>  { 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    const  timeline  =  getState ( ) . getIn ( [ 'timelines' ,  timelineId ] ,  ImmutableMap ( ) ) ; 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    const  ids       =  timeline . get ( 'items' ,  ImmutableList ( ) ) ; 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    if  ( timeline . get ( 'isLoading' )  ||  ids . size  ===  0  )  { 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    if  ( timeline . get ( 'isLoading' ) )  { 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				      return ; 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    } 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    params . max _id  =  ids . last ( ) ; 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    params . limit   =  10 ; 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    dispatch ( expandTimelineRequest ( timelineId ) ) ; 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    api ( getState ) . get ( path ,  {  params  } ) . then ( response  =>  { 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				      const  next  =  getLinks ( response ) . refs . find ( link  =>  link . rel  ===  'next' ) ; 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				      dispatch ( importFetchedStatuses ( response . data ) ) ; 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				      dispatch ( expandTimelineSuccess ( timelineId ,  response . data ,  next  ?  next . uri  :  null  )) ; 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				      dispatch ( expandTimelineSuccess ( timelineId ,  response . data ,  next  ?  next . uri  :  null ,  response . code  ===  206 ) ) ; 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    } ) . catch ( error  =>  { 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				      dispatch ( expandTimelineFail ( timelineId ,  error ) ) ; 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    } ) ; 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				  } ; 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				} ; 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				export  const  expandHomeTimeline          =  ( )  =>  expandTimeline ( 'home' ,  '/api/v1/timelines/home' ) ; 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				export  const  expandPublicTimeline        =  ( )  =>  expandTimeline ( 'public' ,  '/api/v1/timelines/public' ) ; 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				export  const  expandCommunityTimeline     =  ( )  =>  expandTimeline ( 'community' ,  '/api/v1/timelines/public' ,  {  local :  true  } ) ; 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				export  const  expandAccountTimeline       =  ( accountId ,  withReplies )  =>  expandTimeline ( ` account: ${ accountId } ${ withReplies  ?  ':with_replies'  :  '' } ` ,  ` /api/v1/accounts/ ${ accountId } /statuses ` ,  {  exclude _replies :  ! withReplies  } ) ; 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				export  const  expandAccountMediaTimeline  =  accountId  =>  expandTimeline ( ` account: ${ accountId } :media ` ,  ` /api/v1/accounts/ ${ accountId } /statuses ` ,  {  only _media :  true  } ) ; 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				export  const  expandHashtagTimeline       =  hashtag  =>  expandTimeline ( ` hashtag: ${ hashtag } ` ,  ` /api/v1/timelines/tag/ ${ hashtag } ` ) ; 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				export  const  expandListTimeline          =  id  =>  expandTimeline ( ` list: ${ id } ` ,  ` /api/v1/timelines/list/ ${ id } ` ) ; 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				export  const  expandHomeTimeline          =  ( {  maxId  }  =  { } )  =>  expandTimeline ( 'home' ,  '/api/v1/timelines/home' ,  {  max _id :  maxId  } ) ; 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				export  const  expandPublicTimeline        =  ( {  maxId  }  =  { } )  =>  expandTimeline ( 'public' ,  '/api/v1/timelines/public' ,  {  max _id :  maxId  } ) ; 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				export  const  expandCommunityTimeline     =  ( {  maxId  }  =  { } )  =>  expandTimeline ( 'community' ,  '/api/v1/timelines/public' ,  {  local :  true ,  max _id :  maxId  } ) ; 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				export  const  expandAccountTimeline       =  ( accountId ,  {  maxId ,  withReplies  }  =  { } )  =>  expandTimeline ( ` account: ${ accountId } ${ withReplies  ?  ':with_replies'  :  '' } ` ,  ` /api/v1/accounts/ ${ accountId } /statuses ` ,  {  exclude _replies :  ! withReplies ,  max _id :  maxId  } ) ; 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				export  const  expandAccountFeaturedTimeline  =  accountId  =>  expandTimeline ( ` account: ${ accountId } :pinned ` ,  ` /api/v1/accounts/ ${ accountId } /statuses ` ,  {  pinned :  true  } ) ; 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				export  const  expandAccountMediaTimeline  =  ( accountId ,  {  maxId  }  =  { } )  =>  expandTimeline ( ` account: ${ accountId } :media ` ,  ` /api/v1/accounts/ ${ accountId } /statuses ` ,  {  max _id :  maxId ,  only _media :  true  } ) ; 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				export  const  expandHashtagTimeline       =  ( hashtag ,  {  maxId  }  =  { } )  =>  expandTimeline ( ` hashtag: ${ hashtag } ` ,  ` /api/v1/timelines/tag/ ${ hashtag } ` ,  {  max _id :  maxId  } ) ; 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				export  const  expandListTimeline          =  ( id ,  {  maxId  }  =  { } )  =>  expandTimeline ( ` list: ${ id } ` ,  ` /api/v1/timelines/list/ ${ id } ` ,  {  max _id :  maxId  } ) ; 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				export  function  expandTimelineRequest ( timeline )  { 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				  return  { 
 
			
		 
		
	
	
		
			
				
					
						
						
						
							
								 
							 
						
					 
				
			
			 
			 
			
				@ -179,12 +100,13 @@ export function expandTimelineRequest(timeline) {
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				  } ; 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				} ; 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				export  function  expandTimelineSuccess ( timeline ,  statuses ,  next  ) { 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				export  function  expandTimelineSuccess ( timeline ,  statuses ,  next , partial  ) { 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				  return  { 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    type :  TIMELINE _EXPAND _SUCCESS , 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    timeline , 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    statuses , 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    next , 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    partial , 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				  } ; 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				} ; 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				
 
			
		 
		
	
	
		
			
				
					
						
						
						
							
								 
							 
						
					 
				
			
			 
			 
			
				@ -204,13 +126,6 @@ export function scrollTopTimeline(timeline, top) {
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				  } ; 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				} ; 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				export  function  connectTimeline ( timeline )  { 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				  return  { 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    type :  TIMELINE _CONNECT , 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    timeline , 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				  } ; 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				} ; 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				export  function  disconnectTimeline ( timeline )  { 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				  return  { 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    type :  TIMELINE _DISCONNECT ,