This commit is contained in:
Eugene Pankov 2017-04-16 20:38:42 +02:00
parent 8385161417
commit 125ec2b81c
66 changed files with 104 additions and 227 deletions

View file

@ -17,6 +17,16 @@ build:
watch: watch:
DEV=1 ./node_modules/.bin/webpack --progress -w DEV=1 ./node_modules/.bin/webpack --progress -w
install-deps:
npm install
npm prune
for dir in app terminus-* ; do \
cd $$dir; \
npm --color always install 2>&1 | grep -v 'requires a peer'; \
npm --color always prune 2>&1 | grep -v 'requires a peer'; \
cd ..; \
done
make build-native
build-native: build-native:
./node_modules/.bin/electron-rebuild -f -w terminus-terminal/node_modules/node-pty -m terminus-terminal ./node_modules/.bin/electron-rebuild -f -w terminus-terminal/node_modules/node-pty -m terminus-terminal

View file

@ -1,7 +1,6 @@
{ {
"name": "term", "name": "term",
"devDependencies": { "devDependencies": {
"angular2-perfect-scrollbar": "2.0.0",
"@types/fs-promise": "^1.0.1", "@types/fs-promise": "^1.0.1",
"@types/core-js": "^0.9.35", "@types/core-js": "^0.9.35",
"@types/electron": "1.4.34", "@types/electron": "1.4.34",

View file

@ -1,4 +1,4 @@
export { BaseTabComponent } from '../components/baseTab' export { BaseTabComponent } from '../components/baseTab.component'
export { TabRecoveryProvider } from './tabRecovery' export { TabRecoveryProvider } from './tabRecovery'
export { ToolbarButtonProvider, IToolbarButton } from './toolbarButtonProvider' export { ToolbarButtonProvider, IToolbarButton } from './toolbarButtonProvider'
export { ConfigProvider } from './configProvider' export { ConfigProvider } from './configProvider'
@ -6,10 +6,10 @@ export { HotkeyProvider, IHotkeyDescription } from './hotkeyProvider'
export { DefaultTabProvider } from './defaultTabProvider' export { DefaultTabProvider } from './defaultTabProvider'
export { Theme } from './theme' export { Theme } from './theme'
export { AppService } from '../services/app' export { AppService } from '../services/app.service'
export { ConfigService } from '../services/config' export { ConfigService } from '../services/config.service'
export { DockingService } from '../services/docking' export { DockingService } from '../services/docking.service'
export { ElectronService } from '../services/electron' export { ElectronService } from '../services/electron.service'
export { Logger, LogService } from '../services/log' export { Logger, LogService } from '../services/log.service'
export { HotkeysService } from '../services/hotkeys' export { HotkeysService } from '../services/hotkeys.service'
export { HostAppService, Platform } from '../services/hostApp' export { HostAppService, Platform } from '../services/hostApp.service'

View file

@ -1,8 +0,0 @@
declare interface Window {
require: any
process: any
__dirname: any
__platform: any
}
declare var window: Window

View file

@ -2,23 +2,23 @@ import { Component, Inject } from '@angular/core'
import { trigger, style, animate, transition, state } from '@angular/animations' import { trigger, style, animate, transition, state } from '@angular/animations'
import { ToasterConfig } from 'angular2-toaster' import { ToasterConfig } from 'angular2-toaster'
import { ElectronService } from '../services/electron' import { ElectronService } from '../services/electron.service'
import { HostAppService } from '../services/hostApp' import { HostAppService } from '../services/hostApp.service'
import { HotkeysService } from '../services/hotkeys' import { HotkeysService } from '../services/hotkeys.service'
import { Logger, LogService } from '../services/log' import { Logger, LogService } from '../services/log.service'
import { QuitterService } from '../services/quitter' import { QuitterService } from '../services/quitter.service'
import { ConfigService } from '../services/config' import { ConfigService } from '../services/config.service'
import { DockingService } from '../services/docking' import { DockingService } from '../services/docking.service'
import { TabRecoveryService } from '../services/tabRecovery' import { TabRecoveryService } from '../services/tabRecovery.service'
import { ThemesService } from '../services/themes' import { ThemesService } from '../services/themes.service'
import { AppService, IToolbarButton, ToolbarButtonProvider } from '../api' import { AppService, IToolbarButton, ToolbarButtonProvider } from '../api'
@Component({ @Component({
selector: 'app-root', selector: 'app-root',
template: require('./appRoot.pug'), template: require('./appRoot.component.pug'),
styles: [require('./appRoot.scss')], styles: [require('./appRoot.component.scss')],
animations: [ animations: [
trigger('animateTab', [ trigger('animateTab', [
state('in', style({ state('in', style({

View file

@ -3,8 +3,8 @@ import { IToolbarButton, ToolbarButtonProvider } from '../api'
@Component({ @Component({
selector: 'start-page', selector: 'start-page',
template: require('./startPage.pug'), template: require('./startPage.component.pug'),
styles: [require('./startPage.scss')], styles: [require('./startPage.component.scss')],
}) })
export class StartPageComponent { export class StartPageComponent {
constructor( constructor(

View file

@ -1,5 +1,5 @@
import { Component, Input, ViewChild, HostBinding, ViewContainerRef } from '@angular/core' import { Component, Input, ViewChild, HostBinding, ViewContainerRef } from '@angular/core'
import { BaseTabComponent } from '../components/baseTab' import { BaseTabComponent } from '../components/baseTab.component'
@Component({ @Component({
selector: 'tab-body', selector: 'tab-body',

View file

@ -1,12 +1,10 @@
import { Component, Input, Output, EventEmitter, HostBinding } from '@angular/core' import { Component, Input, Output, EventEmitter, HostBinding } from '@angular/core'
import { BaseTabComponent } from '../components/baseTab' import { BaseTabComponent } from '../components/baseTab.component'
import './tabHeader.scss'
@Component({ @Component({
selector: 'tab-header', selector: 'tab-header',
template: require('./tabHeader.pug'), template: require('./tabHeader.component.pug'),
styles: [require('./tabHeader.scss')], styles: [require('./tabHeader.component.scss')],
}) })
export class TabHeaderComponent { export class TabHeaderComponent {
@Input() index: number @Input() index: number

View file

@ -1,10 +1,10 @@
import { Component, HostBinding } from '@angular/core' import { Component, HostBinding } from '@angular/core'
import { HostAppService, Platform } from '../services/hostApp' import { HostAppService, Platform } from '../services/hostApp.service'
@Component({ @Component({
selector: 'title-bar', selector: 'title-bar',
template: require('./titleBar.pug'), template: require('./titleBar.component.pug'),
styles: [require('./titleBar.scss')], styles: [require('./titleBar.component.scss')],
}) })
export class TitleBarComponent { export class TitleBarComponent {
@HostBinding('class.inset-titlebar') insetTitlebar = false @HostBinding('class.inset-titlebar') insetTitlebar = false

View file

@ -6,24 +6,24 @@ import { ToasterModule } from 'angular2-toaster'
import { NgbModule } from '@ng-bootstrap/ng-bootstrap' import { NgbModule } from '@ng-bootstrap/ng-bootstrap'
import { PerfectScrollbarModule } from 'ngx-perfect-scrollbar' import { PerfectScrollbarModule } from 'ngx-perfect-scrollbar'
import { AppService } from './services/app' import { AppService } from './services/app.service'
import { ConfigService } from './services/config' import { ConfigService } from './services/config.service'
import { ElectronService } from './services/electron' import { ElectronService } from './services/electron.service'
import { HostAppService } from './services/hostApp' import { HostAppService } from './services/hostApp.service'
import { LogService } from './services/log' import { LogService } from './services/log.service'
import { HotkeysService, AppHotkeyProvider } from './services/hotkeys' import { HotkeysService, AppHotkeyProvider } from './services/hotkeys.service'
import { NotifyService } from './services/notify' import { NotifyService } from './services/notify.service'
import { PluginsService } from './services/plugins' import { PluginsService } from './services/plugins.service'
import { QuitterService } from './services/quitter' import { QuitterService } from './services/quitter.service'
import { DockingService } from './services/docking' import { DockingService } from './services/docking.service'
import { TabRecoveryService } from './services/tabRecovery' import { TabRecoveryService } from './services/tabRecovery.service'
import { ThemesService } from './services/themes' import { ThemesService } from './services/themes.service'
import { AppRootComponent } from './components/appRoot' import { AppRootComponent } from './components/appRoot.component'
import { TabBodyComponent } from './components/tabBody.component' import { TabBodyComponent } from './components/tabBody.component'
import { StartPageComponent } from './components/startPage' import { StartPageComponent } from './components/startPage.component'
import { TabHeaderComponent } from './components/tabHeader' import { TabHeaderComponent } from './components/tabHeader.component'
import { TitleBarComponent } from './components/titleBar' import { TitleBarComponent } from './components/titleBar.component'
import { HotkeyProvider } from './api/hotkeyProvider' import { HotkeyProvider } from './api/hotkeyProvider'
import { Theme } from './api/theme' import { Theme } from './api/theme'

View file

@ -1,8 +1,8 @@
import { Subject } from 'rxjs' import { Subject } from 'rxjs'
import { Injectable, ComponentFactoryResolver, Injector, Optional } from '@angular/core' import { Injectable, ComponentFactoryResolver, Injector, Optional } from '@angular/core'
import { Logger, LogService } from '../services/log'
import { DefaultTabProvider } from '../api/defaultTabProvider' import { DefaultTabProvider } from '../api/defaultTabProvider'
import { BaseTabComponent } from '../components/baseTab' import { BaseTabComponent } from '../components/baseTab.component'
import { Logger, LogService } from '../services/log.service'
export declare type TabComponentType = new (...args: any[]) => BaseTabComponent export declare type TabComponentType = new (...args: any[]) => BaseTabComponent

View file

@ -2,8 +2,8 @@ import * as yaml from 'js-yaml'
import * as path from 'path' import * as path from 'path'
import * as fs from 'fs' import * as fs from 'fs'
import { EventEmitter, Injectable, Inject } from '@angular/core' import { EventEmitter, Injectable, Inject } from '@angular/core'
import { ElectronService } from '../services/electron'
import { ConfigProvider } from '../api/configProvider' import { ConfigProvider } from '../api/configProvider'
import { ElectronService } from '../services/electron.service'
export class ConfigProxy { export class ConfigProxy {

View file

@ -1,7 +1,7 @@
import { Injectable } from '@angular/core' import { Injectable } from '@angular/core'
import { HostAppService } from '../services/hostApp' import { ConfigService } from '../services/config.service'
import { ConfigService } from '../services/config' import { ElectronService } from '../services/electron.service'
import { ElectronService } from '../services/electron' import { HostAppService } from '../services/hostApp.service'
export interface IScreen { export interface IScreen {

View file

@ -1,6 +1,6 @@
import { Injectable, NgZone, EventEmitter } from '@angular/core' import { Injectable, NgZone, EventEmitter } from '@angular/core'
import { ElectronService } from '../services/electron' import { ElectronService } from '../services/electron.service'
import { Logger, LogService } from '../services/log' import { Logger, LogService } from '../services/log.service'
export enum Platform { export enum Platform {
Linux, macOS, Windows, Linux, macOS, Windows,

View file

@ -1,8 +1,8 @@
import { Injectable, Inject, NgZone, EventEmitter } from '@angular/core' import { Injectable, Inject, NgZone, EventEmitter } from '@angular/core'
import { ElectronService } from '../services/electron'
import { ConfigService } from '../services/config'
import { NativeKeyEvent, stringifyKeySequence } from './hotkeys.util'
import { IHotkeyDescription, HotkeyProvider } from '../api/hotkeyProvider' import { IHotkeyDescription, HotkeyProvider } from '../api/hotkeyProvider'
import { NativeKeyEvent, stringifyKeySequence } from './hotkeys.util'
import { ConfigService } from '../services/config.service'
import { ElectronService } from '../services/electron.service'
export interface PartialHotkeyMatch { export interface PartialHotkeyMatch {

View file

@ -1,5 +1,5 @@
import { Injectable } from '@angular/core' import { Injectable } from '@angular/core'
import { HostAppService } from '../services/hostApp' import { HostAppService } from '../services/hostApp.service'
@Injectable() @Injectable()

View file

@ -1,8 +1,8 @@
import { Injectable, Inject } from '@angular/core' import { Injectable, Inject } from '@angular/core'
import { Logger, LogService } from '../services/log'
import { BaseTabComponent } from '../components/baseTab'
import { TabRecoveryProvider } from '../api/tabRecovery' import { TabRecoveryProvider } from '../api/tabRecovery'
import { AppService } from '../services/app' import { BaseTabComponent } from '../components/baseTab.component'
import { Logger, LogService } from '../services/log.service'
import { AppService } from '../services/app.service'
@Injectable() @Injectable()

View file

@ -1,5 +1,5 @@
import { Inject, Injectable } from '@angular/core' import { Inject, Injectable } from '@angular/core'
import { ConfigService } from '../services/config' import { ConfigService } from '../services/config.service'
import { Theme } from '../api/theme' import { Theme } from '../api/theme'

View file

@ -1,7 +1,7 @@
import { Injectable } from '@angular/core' import { Injectable } from '@angular/core'
import { ToolbarButtonProvider, IToolbarButton, AppService } from 'terminus-core' import { ToolbarButtonProvider, IToolbarButton, AppService } from 'terminus-core'
import { SettingsTabComponent } from './components/settingsTab' import { SettingsTabComponent } from './components/settingsTab.component'
@Injectable() @Injectable()

View file

@ -1,7 +0,0 @@
.stroke(*ngFor='let stroke of model')
.key-container(
*ngFor='let key of splitKeys(stroke); let isLast = last; trackBy: key',
[@animateKey]='animate ? "in" : ""'
)
.key {{key}}
.plus(*ngIf='!isLast') +

View file

@ -1,26 +0,0 @@
:host {
display: inline-block;
.stroke {
display: inline-block;
margin: 0 5px;
background: #222;
border-radius: 2px;
box-shadow: 0 1px 0 rgba(0,0,0,.5);
text-shadow: 0 1px 0 rgba(0,0,0,.5);
.key-container {
display: inline-block;
.key {
display: inline-block;
padding: 4px 5px;
}
.plus {
display: inline-block;
padding: 4px 2px;
}
}
}
}

View file

@ -1,41 +0,0 @@
import { Component, Input, trigger, style, animate, transition } from '@angular/core'
@Component({
selector: 'hotkey-display',
template: require('./hotkeyDisplay.pug'),
styles: [require('./hotkeyDisplay.scss')],
//changeDetection: ChangeDetectionStrategy.OnPush,
animations: [
trigger('animateKey', [
transition('void => in', [
style({
transform: 'translateX(25px)',
opacity: '0',
}),
animate('250ms ease-out', style({
transform: 'translateX(0)',
opacity: '1',
}))
]),
transition('in => void', [
style({
transform: 'translateX(0)',
opacity: '1',
}),
animate('250ms ease-in', style({
transform: 'translateX(25px)',
opacity: '0',
}))
])
])
]
})
export class HotkeyDisplayComponent {
splitKeys(keys: string): string[] {
return keys.split('+').map((x) => x.trim())
}
@Input() model: string[]
@Input() animate = false
}

View file

@ -1,14 +0,0 @@
:host {
display: inline-block;
padding: 5px;
transition: 0.125s all;
&:hover:not(.active) {
background: rgba(255, 255, 255, .033);
}
&:active:not(.active) {
background: rgba(0, 0, 0, .1);
}
}

View file

@ -1,33 +0,0 @@
import { Component, Input, Output, EventEmitter, HostListener, ChangeDetectionStrategy } from '@angular/core'
import { NgbModal } from '@ng-bootstrap/ng-bootstrap'
import { HotkeyInputModalComponent } from './hotkeyInputModal'
@Component({
selector: 'hotkey-input',
template: `
<hotkey-display [model]='model'></hotkey-display>
`,
styles: [require('./hotkeyInput.scss')],
changeDetection: ChangeDetectionStrategy.OnPush,
})
export class HotkeyInputComponent {
constructor(
private ngbModal: NgbModal,
) { }
@HostListener('click') public click() {
this.ngbModal.open(HotkeyInputModalComponent).result.then((value: string[]) => {
this.model = value
this.modelChange.emit(this.model)
})
}
splitKeys(keys: string): string[] {
return keys.split('+').map((x) => x.trim())
}
@Input() model: string[]
@Output() modelChange = new EventEmitter()
}

View file

@ -8,8 +8,8 @@ const INPUT_TIMEOUT = 1000
@Component({ @Component({
selector: 'hotkey-input-modal', selector: 'hotkey-input-modal',
template: require('./hotkeyInputModal.pug'), template: require('./hotkeyInputModal.component.pug'),
styles: [require('./hotkeyInputModal.scss')], styles: [require('./hotkeyInputModal.component.scss')],
animations: [ animations: [
trigger('animateKey', [ trigger('animateKey', [
transition(':enter', [ transition(':enter', [

View file

@ -1,12 +1,12 @@
import { Component, Input, Output, EventEmitter, ChangeDetectionStrategy } from '@angular/core' import { Component, Input, Output, EventEmitter, ChangeDetectionStrategy } from '@angular/core'
import { NgbModal } from '@ng-bootstrap/ng-bootstrap' import { NgbModal } from '@ng-bootstrap/ng-bootstrap'
import { HotkeyInputModalComponent } from './hotkeyInputModal' import { HotkeyInputModalComponent } from './hotkeyInputModal.component'
@Component({ @Component({
selector: 'multi-hotkey-input', selector: 'multi-hotkey-input',
template: require('./multiHotkeyInput.pug'), template: require('./multiHotkeyInput.component.pug'),
styles: [require('./multiHotkeyInput.scss')], styles: [require('./multiHotkeyInput.component.scss')],
changeDetection: ChangeDetectionStrategy.OnPush, changeDetection: ChangeDetectionStrategy.OnPush,
}) })
export class MultiHotkeyInputComponent { export class MultiHotkeyInputComponent {

View file

@ -6,10 +6,10 @@ import { SettingsTabProvider } from '../api'
@Component({ @Component({
selector: 'settings-tab', selector: 'settings-tab',
template: require('./settingsTab.pug'), template: require('./settingsTab.component.pug'),
styles: [ styles: [
require('./settingsTab.scss'), require('./settingsTab.component.scss'),
require('./settingsTab.deep.css'), require('./settingsTab.deep.component.css'),
], ],
}) })
export class SettingsTabComponent extends BaseTabComponent { export class SettingsTabComponent extends BaseTabComponent {

View file

@ -6,12 +6,10 @@ import { Ng2FilterPipeModule } from 'ng2-filter-pipe'
import { ToolbarButtonProvider, TabRecoveryProvider } from 'terminus-core' import { ToolbarButtonProvider, TabRecoveryProvider } from 'terminus-core'
import { HotkeyInputComponent } from './components/hotkeyInput' import { HotkeyInputModalComponent } from './components/hotkeyInputModal.component'
import { HotkeyDisplayComponent } from './components/hotkeyDisplay' import { MultiHotkeyInputComponent } from './components/multiHotkeyInput.component'
import { HotkeyInputModalComponent } from './components/hotkeyInputModal' import { SettingsTabComponent } from './components/settingsTab.component'
import { MultiHotkeyInputComponent } from './components/multiHotkeyInput' import { SettingsTabBodyComponent } from './components/settingsTabBody.component'
import { SettingsTabComponent } from './components/settingsTab'
import { SettingsTabBodyComponent } from './components/settingsTabBody'
import { ButtonProvider } from './buttonProvider' import { ButtonProvider } from './buttonProvider'
import { RecoveryProvider } from './recoveryProvider' import { RecoveryProvider } from './recoveryProvider'
@ -33,8 +31,6 @@ import { RecoveryProvider } from './recoveryProvider'
SettingsTabComponent, SettingsTabComponent,
], ],
declarations: [ declarations: [
HotkeyDisplayComponent,
HotkeyInputComponent,
HotkeyInputModalComponent, HotkeyInputModalComponent,
MultiHotkeyInputComponent, MultiHotkeyInputComponent,
SettingsTabComponent, SettingsTabComponent,

View file

@ -1,7 +1,7 @@
import { Injectable } from '@angular/core' import { Injectable } from '@angular/core'
import { TabRecoveryProvider, AppService } from 'terminus-core' import { TabRecoveryProvider, AppService } from 'terminus-core'
import { SettingsTabComponent } from './components/settingsTab' import { SettingsTabComponent } from './components/settingsTab.component'
@Injectable() @Injectable()

View file

@ -1,4 +1,4 @@
import { TerminalTabComponent } from './components/terminalTab' import { TerminalTabComponent } from './components/terminalTab.component'
export { TerminalTabComponent } export { TerminalTabComponent }
export abstract class TerminalDecorator { export abstract class TerminalDecorator {

View file

@ -1,8 +1,8 @@
import { Injectable } from '@angular/core' import { Injectable } from '@angular/core'
import { HotkeysService, ToolbarButtonProvider, IToolbarButton, AppService, ConfigService } from 'terminus-core' import { HotkeysService, ToolbarButtonProvider, IToolbarButton, AppService, ConfigService } from 'terminus-core'
import { SessionsService } from './services/sessions' import { SessionsService } from './services/sessions.service'
import { TerminalTabComponent } from './components/terminalTab' import { TerminalTabComponent } from './components/terminalTab.component'
@Injectable() @Injectable()

View file

@ -4,8 +4,8 @@ import { NgbPopover } from '@ng-bootstrap/ng-bootstrap'
@Component({ @Component({
selector: 'color-picker', selector: 'color-picker',
template: require('./colorPicker.pug'), template: require('./colorPicker.component.pug'),
styles: [require('./colorPicker.scss')], styles: [require('./colorPicker.component.scss')],
}) })
export class ColorPickerComponent { export class ColorPickerComponent {
@Input() model: string @Input() model: string

View file

@ -13,8 +13,8 @@ import { TerminalColorSchemeProvider, ITerminalColorScheme } from '../api'
@Component({ @Component({
template: require('./terminalSettingsTab.pug'), template: require('./terminalSettingsTab.component.pug'),
styles: [require('./terminalSettingsTab.scss')], styles: [require('./terminalSettingsTab.component.scss')],
}) })
export class TerminalSettingsTabComponent { export class TerminalSettingsTabComponent {
fonts: string[] = [] fonts: string[] = []

View file

@ -2,15 +2,16 @@ import { BehaviorSubject, ReplaySubject, Subject, Subscription } from 'rxjs'
import { Component, NgZone, Inject, ViewChild, HostBinding, Input } from '@angular/core' import { Component, NgZone, Inject, ViewChild, HostBinding, Input } from '@angular/core'
import { AppService, ConfigService, BaseTabComponent } from 'terminus-core' import { AppService, ConfigService, BaseTabComponent } from 'terminus-core'
import { Session } from '../services/sessions.service'
import { TerminalDecorator, ResizeEvent } from '../api' import { TerminalDecorator, ResizeEvent } from '../api'
import { Session } from '../services/sessions'
import { hterm, preferenceManager } from '../hterm' import { hterm, preferenceManager } from '../hterm'
@Component({ @Component({
selector: 'terminalTab', selector: 'terminalTab',
template: '<div #content class="content"></div>', template: '<div #content class="content"></div>',
styles: [require('./terminalTab.scss')], styles: [require('./terminalTab.component.scss')],
}) })
export class TerminalTabComponent extends BaseTabComponent { export class TerminalTabComponent extends BaseTabComponent {
hterm: any hterm: any

View file

@ -18,7 +18,7 @@ hterm.hterm.VT.ESC['k'] = function(parseState) {
} }
preferenceManager.set('user-css', dataurl.convert({ preferenceManager.set('user-css', dataurl.convert({
data: require('./components/terminal.userCSS.scss'), data: require('./hterm.userCSS.scss'),
mimetype: 'text/css', mimetype: 'text/css',
charset: 'utf8', charset: 'utf8',
})) }))

View file

@ -6,10 +6,12 @@ import { NgbModule } from '@ng-bootstrap/ng-bootstrap'
import { HostAppService, Platform, ToolbarButtonProvider, TabRecoveryProvider, ConfigProvider, HotkeysService } from 'terminus-core' import { HostAppService, Platform, ToolbarButtonProvider, TabRecoveryProvider, ConfigProvider, HotkeysService } from 'terminus-core'
import { SettingsTabProvider } from 'terminus-settings' import { SettingsTabProvider } from 'terminus-settings'
import { TerminalTabComponent } from './components/terminalTab' import { TerminalTabComponent } from './components/terminalTab.component'
import { TerminalSettingsTabComponent } from './components/terminalSettingsTab' import { TerminalSettingsTabComponent } from './components/terminalSettingsTab.component'
import { ColorPickerComponent } from './components/colorPicker' import { ColorPickerComponent } from './components/colorPicker.component'
import { SessionsService } from './services/sessions'
import { SessionsService } from './services/sessions.service'
import { ScreenPersistenceProvider } from './persistenceProviders' import { ScreenPersistenceProvider } from './persistenceProviders'
import { ButtonProvider } from './buttonProvider' import { ButtonProvider } from './buttonProvider'
import { RecoveryProvider } from './recoveryProvider' import { RecoveryProvider } from './recoveryProvider'

View file

@ -1,8 +1,8 @@
import { Injectable } from '@angular/core' import { Injectable } from '@angular/core'
import { TabRecoveryProvider, AppService } from 'terminus-core' import { TabRecoveryProvider, AppService } from 'terminus-core'
import { SessionsService } from './services/sessions' import { TerminalTabComponent } from './components/terminalTab.component'
import { TerminalTabComponent } from './components/terminalTab' import { SessionsService } from './services/sessions.service'
@Injectable() @Injectable()

View file

@ -1,7 +1,7 @@
import { Injectable } from '@angular/core' import { Injectable } from '@angular/core'
import { SettingsTabProvider, ComponentType } from 'terminus-settings' import { SettingsTabProvider, ComponentType } from 'terminus-settings'
import { TerminalSettingsTabComponent } from './components/terminalSettingsTab' import { TerminalSettingsTabComponent } from './components/terminalSettingsTab.component'
@Injectable() @Injectable()