mirror of
https://github.com/GNS3/gns3-web-ui.git
synced 2025-01-19 19:29:03 +00:00
Merge branch 'master' into master-3.0
This commit is contained in:
commit
7d95200eb3
@ -18,7 +18,6 @@
|
||||
"css-tree",
|
||||
"save-svg-as-png",
|
||||
"angular-draggable-droppable",
|
||||
"angular2-hotkeys",
|
||||
"dom-set",
|
||||
"dom-plane",
|
||||
"mousetrap",
|
||||
@ -26,9 +25,6 @@
|
||||
"rxjs/Rx",
|
||||
"rxjs/add/operator/map",
|
||||
"rxjs-compat/add/operator/map",
|
||||
"angular-react-core.js",
|
||||
"react",
|
||||
"react-dom",
|
||||
"classnames",
|
||||
"stylenames"
|
||||
],
|
||||
|
14
package.json
14
package.json
@ -41,15 +41,12 @@
|
||||
},
|
||||
"private": true,
|
||||
"dependencies": {
|
||||
"@angular-react/core": "^3.0.0",
|
||||
"@angular-react/fabric": "^3.0.0",
|
||||
"@angular/animations": "^11.2.13",
|
||||
"@angular/cdk": "^11.2.12",
|
||||
"@angular/common": "^11.2.13",
|
||||
"@angular/compiler": "^11.2.13",
|
||||
"@angular/core": "^11.2.13",
|
||||
"@angular/forms": "^11.2.13",
|
||||
"@angular/http": "^7.2.16",
|
||||
"@angular/material": "^11.2.12",
|
||||
"@angular/platform-browser": "^11.2.13",
|
||||
"@angular/platform-browser-dynamic": "^11.2.13",
|
||||
@ -60,20 +57,17 @@
|
||||
"@types/react": "^17.0.5",
|
||||
"@types/react-dom": "^17.0.3",
|
||||
"angular-draggable-droppable": "^4.6.0",
|
||||
"angular-persistence": "^1.0.1",
|
||||
"angular-resizable-element": "^3.3.5",
|
||||
"angular2-draggable": "^2.3.2",
|
||||
"angular2-hotkeys": "^2.2.0",
|
||||
"angular2-indexeddb": "^1.2.3",
|
||||
"bootstrap": "^5.0.0",
|
||||
"command-exists": "^1.2.9",
|
||||
"core-js": "^3.12.1",
|
||||
"d3-ng2-service": "^2.2.0",
|
||||
"eev": "^0.1.5",
|
||||
"file-saver": "^2.0.5",
|
||||
"ini": "^2.0.0",
|
||||
"marked": "^2.0.3",
|
||||
"material-design-icons": "^3.0.1",
|
||||
"mousetrap": "^1.6.5",
|
||||
"ng-circle-progress": "^1.6.0",
|
||||
"ng2-file-upload": "^1.4.0",
|
||||
"ngx-childprocess": "^0.0.6",
|
||||
@ -81,16 +75,10 @@
|
||||
"ngx-electron": "^2.2.0",
|
||||
"node-fetch": "^2.6.1",
|
||||
"notosans-fontface": "1.2.2",
|
||||
"office-ui-fabric-react": "^7.170.0",
|
||||
"prettier-plugin-organize-imports": "^2.0.0",
|
||||
"react": "^17.0.2",
|
||||
"react-bootstrap": "^1.5.2",
|
||||
"react-dom": "^17.0.2",
|
||||
"rxjs": "^6.6.7",
|
||||
"rxjs-compat": "^6.6.7",
|
||||
"save-html-as-image": "^1.5.2",
|
||||
"save-svg-as-png": "^1.4.17",
|
||||
"schematics-scss-migrate": "^1.3.13",
|
||||
"snyk": "^1.589.0",
|
||||
"spark-md5": "^3.0.1",
|
||||
"svg-crowbar": "^0.6.5",
|
||||
|
@ -3,7 +3,6 @@ import { RouterModule, Routes } from '@angular/router';
|
||||
import { BundledServerFinderComponent } from './components/bundled-server-finder/bundled-server-finder.component';
|
||||
import { DirectLinkComponent } from './components/direct-link/direct-link.component';
|
||||
import { HelpComponent } from './components/help/help.component';
|
||||
import { ReportIssueComponent } from './components/help/report-issue/report-issue.component';
|
||||
import { InstalledSoftwareComponent } from './components/installed-software/installed-software.component';
|
||||
import { LoginComponent } from './components/login/login.component';
|
||||
import { PageNotFoundComponent } from './components/page-not-found/page-not-found.component';
|
||||
@ -75,7 +74,6 @@ const routes: Routes = [
|
||||
resolve: { server: ServerResolve },
|
||||
},
|
||||
{ path: 'help', component: HelpComponent },
|
||||
{ path: 'help/reportissue', component: ReportIssueComponent },
|
||||
{ path: 'settings', component: SettingsComponent },
|
||||
{ path: 'settings/console', component: ConsoleComponent },
|
||||
{ path: 'installed-software', component: InstalledSoftwareComponent },
|
||||
|
@ -2,7 +2,6 @@ import { NO_ERRORS_SCHEMA } from '@angular/core';
|
||||
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
|
||||
import { MatIconModule } from '@angular/material/icon';
|
||||
import { RouterTestingModule } from '@angular/router/testing';
|
||||
import { PersistenceService } from 'angular-persistence';
|
||||
import { ElectronService, NgxElectronModule } from 'ngx-electron';
|
||||
import { AppComponent } from './app.component';
|
||||
import { ProgressService } from './common/progress/progress.service';
|
||||
@ -21,12 +20,12 @@ describe('AppComponent', () => {
|
||||
TestBed.configureTestingModule({
|
||||
declarations: [AppComponent],
|
||||
imports: [RouterTestingModule, MatIconModule, NgxElectronModule],
|
||||
providers: [SettingsService, PersistenceService, ProgressService],
|
||||
providers: [SettingsService, ProgressService],
|
||||
schemas: [NO_ERRORS_SCHEMA],
|
||||
}).compileComponents();
|
||||
|
||||
electronService = TestBed.get(ElectronService);
|
||||
settingsService = TestBed.get(SettingsService);
|
||||
electronService = TestBed.inject(ElectronService);
|
||||
settingsService = TestBed.inject(SettingsService);
|
||||
}));
|
||||
|
||||
beforeEach(() => {
|
||||
@ -46,23 +45,18 @@ describe('AppComponent', () => {
|
||||
}));
|
||||
|
||||
it('should receive changed settings and forward to electron', async(() => {
|
||||
const spy = createSpyObj('Electron.IpcRenderer', ['send']);
|
||||
spyOnProperty(electronService, 'isElectronApp').and.returnValue(true);
|
||||
spyOnProperty(electronService, 'ipcRenderer').and.returnValue(spy);
|
||||
settingsService.set('crash_reports', true);
|
||||
settingsService.setReportsSettings(true);
|
||||
component.ngOnInit();
|
||||
settingsService.set('crash_reports', false);
|
||||
expect(spy.send).toHaveBeenCalled();
|
||||
expect(spy.send.calls.mostRecent().args[0]).toEqual('settings.changed');
|
||||
expect(spy.send.calls.mostRecent().args[1].crash_reports).toEqual(false);
|
||||
settingsService.setReportsSettings(false);
|
||||
}));
|
||||
|
||||
it('should receive changed settings and do not forward to electron', async(() => {
|
||||
const spy = createSpyObj('Electron.IpcRenderer', ['send']);
|
||||
spyOnProperty(electronService, 'isElectronApp').and.returnValue(false);
|
||||
settingsService.set('crash_reports', true);
|
||||
settingsService.setReportsSettings(true);
|
||||
component.ngOnInit();
|
||||
settingsService.set('crash_reports', false);
|
||||
settingsService.setReportsSettings(false);
|
||||
expect(spy.send).not.toHaveBeenCalled();
|
||||
}));
|
||||
});
|
||||
|
@ -37,12 +37,6 @@ export class AppComponent implements OnInit {
|
||||
@HostBinding('class') componentCssClass;
|
||||
|
||||
ngOnInit(): void {
|
||||
if (this.electronService.isElectronApp) {
|
||||
this.settingsService.subscribe((settings) => {
|
||||
this.electronService.ipcRenderer.send('settings.changed', settings);
|
||||
});
|
||||
}
|
||||
|
||||
this.applyTheme(this.themeService.savedTheme + '-theme');
|
||||
this.themeService.themeChanged.subscribe((event: string) => {
|
||||
this.applyTheme(event);
|
||||
|
@ -1,4 +1,3 @@
|
||||
import { AngularReactBrowserModule } from '@angular-react/core';
|
||||
import { DragDropModule } from '@angular/cdk/drag-drop';
|
||||
import { OverlayModule } from '@angular/cdk/overlay';
|
||||
import { CdkTableModule } from '@angular/cdk/table';
|
||||
@ -9,7 +8,6 @@ import { MatSidenavModule } from '@angular/material/sidenav';
|
||||
import { BrowserModule, Title } from '@angular/platform-browser';
|
||||
import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
|
||||
import { DragAndDropModule } from 'angular-draggable-droppable';
|
||||
import { PersistenceModule } from 'angular-persistence';
|
||||
import { ResizableModule } from 'angular-resizable-element';
|
||||
import { D3Service } from 'd3-ng2-service';
|
||||
import { NgCircleProgressModule } from 'ng-circle-progress';
|
||||
@ -44,7 +42,6 @@ import { NodeLabelDraggedComponent } from './components/drawings-listeners/node-
|
||||
import { TextAddedComponent } from './components/drawings-listeners/text-added/text-added.component';
|
||||
import { TextEditedComponent } from './components/drawings-listeners/text-edited/text-edited.component';
|
||||
import { HelpComponent } from './components/help/help.component';
|
||||
import { ReportIssueComponent } from './components/help/report-issue/report-issue.component';
|
||||
import { InstallSoftwareComponent } from './components/installed-software/install-software/install-software.component';
|
||||
import { InstalledSoftwareComponent } from './components/installed-software/installed-software.component';
|
||||
import { PageNotFoundComponent } from './components/page-not-found/page-not-found.component';
|
||||
@ -461,11 +458,9 @@ import { LoggedUserComponent } from './components/users/logged-user/logged-user.
|
||||
InformationDialogComponent,
|
||||
TemplateNameDialogComponent,
|
||||
ConfigureCustomAdaptersDialogComponent,
|
||||
EditNetworkConfigurationDialogComponent,
|
||||
ReportIssueComponent,
|
||||
EditNetworkConfigurationDialogComponent
|
||||
],
|
||||
imports: [
|
||||
AngularReactBrowserModule,
|
||||
BrowserModule,
|
||||
HttpClientModule,
|
||||
AppRoutingModule,
|
||||
@ -474,7 +469,6 @@ import { LoggedUserComponent } from './components/users/logged-user/logged-user.
|
||||
BrowserAnimationsModule,
|
||||
CdkTableModule,
|
||||
CartographyModule,
|
||||
PersistenceModule,
|
||||
NgxElectronModule,
|
||||
FileUploadModule,
|
||||
MatSidenavModule,
|
||||
|
@ -1,7 +1,6 @@
|
||||
import { Injector } from '@angular/core';
|
||||
import { TestBed } from '@angular/core/testing';
|
||||
import { SettingsService } from '../../services/settings.service';
|
||||
import { MockedSettingsService } from '../../services/settings.service.spec';
|
||||
import { ToasterService } from '../../services/toaster.service';
|
||||
import { MockedToasterService } from '../../services/toaster.service.spec';
|
||||
import { SentryErrorHandler } from './sentry-error-handler';
|
||||
@ -17,19 +16,21 @@ class MockedToasterErrorHandler extends ToasterErrorHandler {
|
||||
describe('ToasterErrorHandler', () => {
|
||||
let handler: ToasterErrorHandler;
|
||||
let toasterService: MockedToasterService;
|
||||
let settingsService: SettingsService;
|
||||
|
||||
beforeEach(() => {
|
||||
TestBed.configureTestingModule({
|
||||
providers: [
|
||||
{ provide: ToasterService, useClass: MockedToasterService },
|
||||
{ provide: SettingsService, useClass: MockedSettingsService },
|
||||
{ provide: SettingsService},
|
||||
SentryErrorHandler,
|
||||
ToasterErrorHandler,
|
||||
],
|
||||
});
|
||||
|
||||
handler = new MockedToasterErrorHandler(TestBed.get(Injector));
|
||||
handler = new MockedToasterErrorHandler(TestBed.inject(Injector));
|
||||
toasterService = TestBed.get(ToasterService);
|
||||
settingsService = TestBed.inject(SettingsService);
|
||||
});
|
||||
|
||||
it('should call toaster with error message', () => {
|
||||
|
@ -21,7 +21,15 @@ export class BundledServerFinderComponent implements OnInit {
|
||||
ngOnInit() {
|
||||
this.progressService.activate();
|
||||
setTimeout(() => {
|
||||
let port = parseInt(this.document.location.port, 10) ? parseInt(this.document.location.port, 10) : 80;
|
||||
let port;
|
||||
|
||||
if (parseInt(this.document.location.port, 10)) {
|
||||
port = parseInt(this.document.location.port, 10);
|
||||
} else if (this.document.location.protocol == "https:") {
|
||||
port = 443;
|
||||
} else {
|
||||
port = 80;
|
||||
}
|
||||
|
||||
this.serverService.getLocalServer(this.document.location.hostname, port).then((server: Server) => {
|
||||
this.progressService.deactivate();
|
||||
|
@ -34,6 +34,5 @@
|
||||
<button mat-button class="full-width">
|
||||
<a href="https://docs.gns3.com/docs/"> Go to documentation </a>
|
||||
</button>
|
||||
<button mat-button routerLink="/help/reportissue" class="full-width">Report an issue</button>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -1,24 +0,0 @@
|
||||
import React, {Component} from "react";
|
||||
import Form from 'react-bootstrap/Form';
|
||||
|
||||
const formGroupStyle = {
|
||||
margin: '20px'
|
||||
};
|
||||
|
||||
class FilterComponent extends Component<any, any> {
|
||||
constructor(props) {
|
||||
super(props);
|
||||
}
|
||||
|
||||
render() {
|
||||
return (
|
||||
<div>
|
||||
<Form.Group style={formGroupStyle}>
|
||||
<Form.Control size="lg" type="text" placeholder="Search by keyword" value={this.props.filter} onChange={this.props.handleChange} />
|
||||
</Form.Group>
|
||||
</div>
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
export default FilterComponent;
|
@ -1,95 +0,0 @@
|
||||
import React, { Component } from "react";
|
||||
import Card from 'react-bootstrap/Card';
|
||||
import Spinner from 'react-bootstrap/Spinner';
|
||||
import IssueComponent from './issue';
|
||||
import FilterComponent from './filter';
|
||||
import e from '../../../event-bus';
|
||||
|
||||
const wrapperStyle = {
|
||||
justifyContent: 'center' as 'center',
|
||||
display: 'flex',
|
||||
flex: 1,
|
||||
flexDirection: 'row' as 'row',
|
||||
flexWrap: 'wrap' as 'wrap',
|
||||
margin: '20px'
|
||||
};
|
||||
|
||||
const cardStyle = {
|
||||
width: '300px',
|
||||
margin: '20px'
|
||||
};
|
||||
|
||||
const cardTitleStyle = {
|
||||
color: 'red'
|
||||
};
|
||||
const message = 'Thank you for reporting the issue!';
|
||||
const apiUrl = 'https://api.github.com/repos/GNS3/gns3-web-ui/issues';
|
||||
const newIssueLink = 'https://github.com/GNS3/gns3-web-ui/issues/new';
|
||||
|
||||
class IssueListComponent extends Component<any, any> {
|
||||
constructor(props) {
|
||||
super(props);
|
||||
this.state = {
|
||||
issues: [],
|
||||
filteredIssues: [],
|
||||
isFetching: true
|
||||
};
|
||||
}
|
||||
|
||||
componentDidMount() {
|
||||
fetch(apiUrl)
|
||||
.then(response => response.json())
|
||||
.then(data => this.setState({
|
||||
issues: data,
|
||||
filteredIssues: data,
|
||||
isFetching: false
|
||||
}));
|
||||
}
|
||||
|
||||
handleChange = (event) => {
|
||||
let filter = event.target.value;
|
||||
let filteredIssues = this.state.issues;
|
||||
|
||||
filteredIssues = filteredIssues.filter((issue) => {
|
||||
return issue.title.toLowerCase().includes(filter.toLowerCase())
|
||||
});
|
||||
|
||||
this.setState({
|
||||
filteredIssues: filteredIssues
|
||||
});
|
||||
}
|
||||
|
||||
newIssueOpened = (event) => {
|
||||
e.emit('message', { text: message });
|
||||
}
|
||||
|
||||
render() {
|
||||
return (
|
||||
<div>
|
||||
<div>
|
||||
<FilterComponent handleChange={this.handleChange} filter={this.state.filter} />
|
||||
</div>
|
||||
|
||||
{this.state.isFetching ? (
|
||||
<div style={wrapperStyle}>
|
||||
<Spinner animation="grow" />
|
||||
</div>
|
||||
) : (
|
||||
<div style={wrapperStyle}>
|
||||
{this.state.filteredIssues.map(issue =>
|
||||
<IssueComponent key={issue.html_url} data={issue}/>
|
||||
)}
|
||||
<Card style={cardStyle}>
|
||||
<Card.Body>
|
||||
<Card.Title style={cardTitleStyle}>Don't see your issue here?</Card.Title>
|
||||
<Card.Link onClick={this.newIssueOpened} href={newIssueLink} target = "_blank">Open new issue</Card.Link>
|
||||
</Card.Body>
|
||||
</Card>
|
||||
</div>
|
||||
)}
|
||||
</div>
|
||||
);
|
||||
}
|
||||
};
|
||||
|
||||
export default IssueListComponent;
|
@ -1,42 +0,0 @@
|
||||
import React, { Component } from "react";
|
||||
import Card from 'react-bootstrap/Card';
|
||||
|
||||
const cardStyle = {
|
||||
width: '300px',
|
||||
margin: '20px'
|
||||
};
|
||||
|
||||
const cardTitleStyle = {
|
||||
color: 'black'
|
||||
};
|
||||
|
||||
const cardTextStyle = {
|
||||
color: 'black',
|
||||
overflow: 'auto',
|
||||
height: '100px'
|
||||
};
|
||||
|
||||
class IssueComponent extends Component<any, any> {
|
||||
constructor(props) {
|
||||
super(props);
|
||||
this.state = {
|
||||
data: this.props.data
|
||||
}
|
||||
}
|
||||
|
||||
render() {
|
||||
const issue = this.state.data;
|
||||
return (
|
||||
<Card key={issue.html_url} style={cardStyle}>
|
||||
<Card.Body>
|
||||
<Card.Title style={cardTitleStyle}>{issue.title}</Card.Title>
|
||||
<Card.Subtitle className="mb-2 text-muted">Status: {issue.state}</Card.Subtitle>
|
||||
<Card.Text style={cardTextStyle}>{issue.body}</Card.Text>
|
||||
<Card.Link href={issue.html_url} target = "_blank">{issue.html_url}</Card.Link>
|
||||
</Card.Body>
|
||||
</Card>
|
||||
);
|
||||
}
|
||||
};
|
||||
|
||||
export default IssueComponent;
|
@ -1 +0,0 @@
|
||||
<span #issueListComponentContainer></span>
|
@ -1,52 +0,0 @@
|
||||
import { HttpClient } from '@angular/common/http';
|
||||
import {
|
||||
AfterViewInit,
|
||||
Component,
|
||||
ElementRef,
|
||||
EventEmitter,
|
||||
Input,
|
||||
OnInit,
|
||||
OnChanges,
|
||||
OnDestroy,
|
||||
Output,
|
||||
SimpleChanges,
|
||||
ViewChild,
|
||||
ViewEncapsulation,
|
||||
AfterContentInit
|
||||
} from '@angular/core';
|
||||
import IssueListComponent from '../report-issue/issue-list';
|
||||
import * as React from 'react';
|
||||
import * as ReactDOM from 'react-dom';
|
||||
import e from '../../../event-bus';
|
||||
import { ToasterService } from '../../../services/toaster.service';
|
||||
|
||||
@Component({
|
||||
selector: 'app-report-issue',
|
||||
templateUrl: './report-issue.component.html',
|
||||
styleUrls: ['./report-issue.component.scss']
|
||||
})
|
||||
export class ReportIssueComponent implements OnDestroy, AfterViewInit, AfterContentInit {
|
||||
@ViewChild('issueListComponentContainer') containerRef: ElementRef;
|
||||
|
||||
constructor(private toasterService: ToasterService) {}
|
||||
|
||||
ngAfterViewInit() {
|
||||
this.render();
|
||||
}
|
||||
|
||||
ngAfterContentInit() {
|
||||
e.on('message', message => {
|
||||
this.toasterService.success(message.text);
|
||||
});
|
||||
}
|
||||
|
||||
ngOnDestroy() {
|
||||
ReactDOM.unmountComponentAtNode(this.containerRef.nativeElement);
|
||||
}
|
||||
|
||||
private render() {
|
||||
ReactDOM.render(<div>
|
||||
<IssueListComponent />
|
||||
</div>, this.containerRef.nativeElement);
|
||||
}
|
||||
}
|
@ -7,7 +7,6 @@ import { NodeService } from '../../../../../services/node.service';
|
||||
import { ServerService } from '../../../../../services/server.service';
|
||||
import { MockedServerService } from '../../../../../services/server.service.spec';
|
||||
import { SettingsService } from '../../../../../services/settings.service';
|
||||
import { MockedSettingsService } from '../../../../../services/settings.service.spec';
|
||||
import { ToasterService } from '../../../../../services/toaster.service';
|
||||
import { MockedToasterService } from '../../../../../services/toaster.service.spec';
|
||||
import { MockedNodeService } from '../../../project-map.component.spec';
|
||||
@ -18,7 +17,7 @@ describe('ConsoleDeviceActionComponent', () => {
|
||||
let fixture: ComponentFixture<ConsoleDeviceActionComponent>;
|
||||
let electronService;
|
||||
let server: Server;
|
||||
let mockedSettingsService: MockedSettingsService;
|
||||
let settingsService: SettingsService;
|
||||
let mockedServerService: MockedServerService;
|
||||
let mockedToaster: MockedToasterService;
|
||||
let mockedNodeService: MockedNodeService = new MockedNodeService();
|
||||
@ -35,7 +34,6 @@ describe('ConsoleDeviceActionComponent', () => {
|
||||
},
|
||||
};
|
||||
|
||||
mockedSettingsService = new MockedSettingsService();
|
||||
mockedServerService = new MockedServerService();
|
||||
mockedToaster = new MockedToasterService();
|
||||
|
||||
@ -47,13 +45,15 @@ describe('ConsoleDeviceActionComponent', () => {
|
||||
providers: [
|
||||
{ provide: ElectronService, useValue: electronService },
|
||||
{ provide: ServerService, useValue: mockedServerService },
|
||||
{ provide: SettingsService, useValue: mockedSettingsService },
|
||||
{ provide: SettingsService },
|
||||
{ provide: ToasterService, useValue: mockedToaster },
|
||||
{ provide: NodeService, useValue: mockedNodeService },
|
||||
],
|
||||
imports: [MatIconModule],
|
||||
declarations: [ConsoleDeviceActionComponent],
|
||||
}).compileComponents();
|
||||
|
||||
settingsService = TestBed.inject(SettingsService);
|
||||
}));
|
||||
|
||||
beforeEach(() => {
|
||||
@ -85,7 +85,7 @@ describe('ConsoleDeviceActionComponent', () => {
|
||||
component.nodes = nodes;
|
||||
component.server = server;
|
||||
|
||||
mockedSettingsService.set('console_command', 'command');
|
||||
settingsService.setConsoleSettings('command');
|
||||
spyOn(component, 'openConsole');
|
||||
});
|
||||
|
||||
@ -105,7 +105,7 @@ describe('ConsoleDeviceActionComponent', () => {
|
||||
});
|
||||
|
||||
it('should set command when it is not defined', async () => {
|
||||
mockedSettingsService.set('console_command', undefined);
|
||||
settingsService.setConsoleSettings(undefined);
|
||||
await component.console();
|
||||
expect(component.openConsole).toHaveBeenCalled();
|
||||
});
|
||||
|
@ -26,8 +26,8 @@ export class ConsoleDeviceActionComponent implements OnInit {
|
||||
ngOnInit() {}
|
||||
|
||||
async console() {
|
||||
let consoleCommand = this.settingsService.get<string>('console_command')
|
||||
? this.settingsService.get<string>('console_command')
|
||||
let consoleCommand = this.settingsService.getConsoleSettings()
|
||||
? this.settingsService.getConsoleSettings()
|
||||
: this.nodeService.getDefaultCommand();
|
||||
const startedNodes = this.nodes.filter((node) => node.status === 'started');
|
||||
|
||||
|
@ -33,8 +33,8 @@ export class NodesMenuComponent {
|
||||
|
||||
async startConsoleForAllNodes() {
|
||||
if (this.electronService.isElectronApp) {
|
||||
let consoleCommand = this.settingsService.get<string>('console_command')
|
||||
? this.settingsService.get<string>('console_command')
|
||||
let consoleCommand = this.settingsService.getConsoleSettings()
|
||||
? this.settingsService.getConsoleSettings()
|
||||
: this.nodeService.getDefaultCommand();
|
||||
|
||||
let nodes = this.nodesDataSource.getItems();
|
||||
|
@ -254,12 +254,6 @@
|
||||
(closeConsole)="toggleShowConsole($event)"
|
||||
></app-console-wrapper>
|
||||
</div>
|
||||
<div [ngClass]="{ visible: !isTopologySummaryVisible }">
|
||||
<app-topology-summary
|
||||
*ngIf="project"
|
||||
[server]="server"
|
||||
[project]="project"
|
||||
(closeTopologySummary)="toggleShowTopologySummary($event)"
|
||||
></app-topology-summary>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<ng-template #topologySummaryContainer></ng-template>
|
||||
|
@ -59,7 +59,6 @@ import { RecentlyOpenedProjectService } from '../../services/recentlyOpenedProje
|
||||
import { ServerService } from '../../services/server.service';
|
||||
import { MockedServerService } from '../../services/server.service.spec';
|
||||
import { SettingsService } from '../../services/settings.service';
|
||||
import { MockedSettingsService } from '../../services/settings.service.spec';
|
||||
import { ToasterService } from '../../services/toaster.service';
|
||||
import { MockedToasterService } from '../../services/toaster.service.spec';
|
||||
import { ToolsService } from '../../services/tools.service';
|
||||
@ -300,7 +299,7 @@ xdescribe('ProjectMapComponent', () => {
|
||||
{ provide: NodesDataSource, useValue: nodesDataSource },
|
||||
{ provide: LinksDataSource, useValue: linksDataSource },
|
||||
{ provide: DrawingsDataSource, useValue: drawingsDataSource },
|
||||
{ provide: SettingsService, useClass: MockedSettingsService },
|
||||
{ provide: SettingsService },
|
||||
{ provide: ToolsService },
|
||||
{ provide: SelectionManager },
|
||||
{ provide: SelectionTool },
|
||||
|
@ -1,11 +1,11 @@
|
||||
import { ChangeDetectorRef, Component, OnDestroy, OnInit, ViewChild, ViewEncapsulation } from '@angular/core';
|
||||
import { ChangeDetectorRef, Component, ComponentFactoryResolver, ComponentRef, Injector, OnDestroy, OnInit, SimpleChange, ViewChild, ViewContainerRef, ViewEncapsulation } from '@angular/core';
|
||||
import { MatBottomSheet } from '@angular/material/bottom-sheet';
|
||||
import { MatDialog } from '@angular/material/dialog';
|
||||
import { Title } from '@angular/platform-browser';
|
||||
import { ActivatedRoute, ParamMap, Router } from '@angular/router';
|
||||
import * as Mousetrap from 'mousetrap';
|
||||
import { from, Observable, Subscription } from 'rxjs';
|
||||
import { map, mergeMap } from 'rxjs/operators';
|
||||
import { map, mergeMap, takeUntil } from 'rxjs/operators';
|
||||
import { D3MapComponent } from '../../cartography/components/d3-map/d3-map.component';
|
||||
import { MapDrawingToDrawingConverter } from '../../cartography/converters/map/map-drawing-to-drawing-converter';
|
||||
import { MapLabelToLabelConverter } from '../../cartography/converters/map/map-label-to-label-converter';
|
||||
@ -74,6 +74,7 @@ import { ImportProjectDialogComponent } from '../projects/import-project-dialog/
|
||||
import { NavigationDialogComponent } from '../projects/navigation-dialog/navigation-dialog.component';
|
||||
import { SaveProjectDialogComponent } from '../projects/save-project-dialog/save-project-dialog.component';
|
||||
import { NodeAddedEvent } from '../template/template-list-dialog/template-list-dialog.component';
|
||||
import { TopologySummaryComponent } from '../topology-summary/topology-summary.component';
|
||||
import { ContextMenuComponent } from './context-menu/context-menu.component';
|
||||
import { NodeCreatedLabelStylesFixer } from './helpers/node-created-label-styles-fixer';
|
||||
import { NewTemplateDialogComponent } from './new-template-dialog/new-template-dialog.component';
|
||||
@ -105,6 +106,7 @@ export class ProjectMapComponent implements OnInit, OnDestroy {
|
||||
public toolbarVisibility: boolean = true;
|
||||
public symbolScaling: boolean = true;
|
||||
public symbolsLoaded: boolean = false;
|
||||
private instance: ComponentRef<TopologySummaryComponent>;
|
||||
|
||||
tools = {
|
||||
selection: true,
|
||||
@ -123,6 +125,7 @@ export class ProjectMapComponent implements OnInit, OnDestroy {
|
||||
@ViewChild(ContextMenuComponent) contextMenu: ContextMenuComponent;
|
||||
@ViewChild(D3MapComponent) mapChild: D3MapComponent;
|
||||
@ViewChild(ProjectMapMenuComponent) projectMapMenuComponent: ProjectMapMenuComponent;
|
||||
@ViewChild('topologySummaryContainer', {read: ViewContainerRef}) topologySummaryContainer: ViewContainerRef;
|
||||
|
||||
private projectMapSubscription: Subscription = new Subscription();
|
||||
|
||||
@ -172,7 +175,9 @@ export class ProjectMapComponent implements OnInit, OnDestroy {
|
||||
private title: Title,
|
||||
private nodeConsoleService: NodeConsoleService,
|
||||
private symbolService: SymbolService,
|
||||
private cd: ChangeDetectorRef
|
||||
private cd: ChangeDetectorRef,
|
||||
private cfr: ComponentFactoryResolver,
|
||||
private injector: Injector
|
||||
) {}
|
||||
|
||||
ngOnInit() {
|
||||
@ -210,7 +215,6 @@ export class ProjectMapComponent implements OnInit, OnDestroy {
|
||||
|
||||
this.settings = this.settingsService.getAll();
|
||||
this.symbolScaling = this.mapSettingsService.getSymbolScaling();
|
||||
this.isTopologySummaryVisible = this.mapSettingsService.isTopologySummaryVisible;
|
||||
this.isConsoleVisible = this.mapSettingsService.isLogConsoleVisible;
|
||||
this.mapSettingsService.logConsoleSubject.subscribe((value) => (this.isConsoleVisible = value));
|
||||
this.notificationsVisibility = localStorage.getItem('notificationsVisibility') === 'true' ? true : false;
|
||||
@ -218,6 +222,21 @@ export class ProjectMapComponent implements OnInit, OnDestroy {
|
||||
this.gridVisibility = localStorage.getItem('gridVisibility') === 'true' ? true : false;
|
||||
}
|
||||
|
||||
async lazyLoadTopologySummary() {
|
||||
if (this.isTopologySummaryVisible) {
|
||||
const {TopologySummaryComponent} = await import('../topology-summary/topology-summary.component');
|
||||
const componentFactory = this.cfr.resolveComponentFactory(TopologySummaryComponent);
|
||||
this.instance = this.topologySummaryContainer.createComponent(componentFactory, null, this.injector);
|
||||
this.instance.instance.server = this.server;
|
||||
this.instance.instance.project = this.project;
|
||||
} else if (this.instance) {
|
||||
if (this.instance.instance) {
|
||||
this.instance.instance.ngOnDestroy();
|
||||
this.instance.destroy();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
addSubscriptions() {
|
||||
this.projectMapSubscription.add(
|
||||
this.mapSettingsService.mapRenderedEmitter.subscribe((value: boolean) => {
|
||||
@ -319,6 +338,7 @@ export class ProjectMapComponent implements OnInit, OnDestroy {
|
||||
this.projectService.open(this.server, this.project.project_id);
|
||||
this.title.setTitle(this.project.name);
|
||||
this.isInterfaceLabelVisible = this.mapSettingsService.showInterfaceLabels;
|
||||
this.toggleShowTopologySummary(this.mapSettingsService.isTopologySummaryVisible);
|
||||
|
||||
this.recentlyOpenedProjectService.setServerId(this.server.id.toString());
|
||||
this.recentlyOpenedProjectService.setProjectId(this.project.project_id);
|
||||
@ -809,6 +829,7 @@ export class ProjectMapComponent implements OnInit, OnDestroy {
|
||||
public toggleShowTopologySummary(visible: boolean) {
|
||||
this.isTopologySummaryVisible = visible;
|
||||
this.mapSettingsService.toggleTopologySummary(this.isTopologySummaryVisible);
|
||||
this.lazyLoadTopologySummary();
|
||||
}
|
||||
|
||||
public toggleNotifications(visible: boolean) {
|
||||
|
@ -23,7 +23,6 @@ import { MockedProjectService } from '../../services/project.service.spec';
|
||||
import { ServerService } from '../../services/server.service';
|
||||
import { MockedServerService } from '../../services/server.service.spec';
|
||||
import { Settings, SettingsService } from '../../services/settings.service';
|
||||
import { MockedSettingsService } from '../../services/settings.service.spec';
|
||||
import { ToasterService } from '../../services/toaster.service';
|
||||
import { ConfigureGns3VMDialogComponent } from '../servers/configure-gns3vm-dialog/configure-gns3vm-dialog.component';
|
||||
import { ChooseNameDialogComponent } from './choose-name-dialog/choose-name-dialog.component';
|
||||
@ -70,7 +69,7 @@ xdescribe('ProjectsComponent', () => {
|
||||
providers: [
|
||||
{ provide: ServerService, useClass: MockedServerService },
|
||||
{ provide: ProjectService, useValue: mockedProjectService },
|
||||
{ provide: SettingsService, useClass: MockedSettingsService },
|
||||
{ provide: SettingsService},
|
||||
{ provide: ToasterService },
|
||||
{ provide: ElectronService, useValue: electronService },
|
||||
ProgressService,
|
||||
@ -83,10 +82,10 @@ xdescribe('ProjectsComponent', () => {
|
||||
})
|
||||
.compileComponents();
|
||||
|
||||
serverService = TestBed.get(ServerService);
|
||||
settingsService = TestBed.get(SettingsService);
|
||||
projectService = TestBed.get(ProjectService);
|
||||
progressService = TestBed.get(ProgressService);
|
||||
serverService = TestBed.inject(ServerService);
|
||||
settingsService = TestBed.inject(SettingsService);
|
||||
projectService = TestBed.inject(ProjectService);
|
||||
progressService = TestBed.inject(ProgressService);
|
||||
|
||||
server = new Server();
|
||||
server.id = 99;
|
||||
|
@ -15,18 +15,6 @@
|
||||
<mat-checkbox [(ngModel)]="openReadme">Automatically open project README files</mat-checkbox>
|
||||
<mat-checkbox [(ngModel)]="openConsolesInWidget">Open consoles in the widget instead of in new tabs after clicking start consoles for all nodes</mat-checkbox>
|
||||
</div>
|
||||
|
||||
<!-- <div>
|
||||
<mat-checkbox [(ngModel)]="settings.experimental_features"
|
||||
>Enable experimental features (WARNING: IT CAN BREAK YOU LABS!)</mat-checkbox
|
||||
>
|
||||
</div> -->
|
||||
|
||||
<!-- <div>
|
||||
<mat-checkbox [(ngModel)]="settings.angular_map"
|
||||
>Enable experimental Angular Map (WARNING: IT CAN BREAK YOU LABS!)</mat-checkbox
|
||||
>
|
||||
</div> -->
|
||||
</mat-expansion-panel>
|
||||
|
||||
<mat-expansion-panel [expanded]="false">
|
||||
|
@ -6,7 +6,6 @@ import { MatFormFieldModule } from '@angular/material/form-field';
|
||||
import { MatIconModule } from '@angular/material/icon';
|
||||
import { MatInputModule } from '@angular/material/input';
|
||||
import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
|
||||
import { PersistenceModule } from 'angular-persistence';
|
||||
import { MapSettingsService } from '../../services/mapsettings.service';
|
||||
import { SettingsService } from '../../services/settings.service';
|
||||
import { ConsoleService } from '../../services/settings/console.service';
|
||||
@ -39,7 +38,6 @@ describe('SettingsComponent', () => {
|
||||
MatExpansionModule,
|
||||
MatCheckboxModule,
|
||||
FormsModule,
|
||||
PersistenceModule,
|
||||
BrowserAnimationsModule,
|
||||
MatIconModule,
|
||||
MatFormFieldModule,
|
||||
|
@ -1,6 +1,6 @@
|
||||
import { Component, OnInit } from '@angular/core';
|
||||
import { MapSettingsService } from '../../services/mapsettings.service';
|
||||
import { SettingsService } from '../../services/settings.service';
|
||||
import { Settings, SettingsService } from '../../services/settings.service';
|
||||
import { ConsoleService } from '../../services/settings/console.service';
|
||||
import { ThemeService } from '../../services/theme.service';
|
||||
import { ToasterService } from '../../services/toaster.service';
|
||||
@ -12,7 +12,7 @@ import { UpdatesService } from '../../services/updates.service';
|
||||
styleUrls: ['./settings.component.scss'],
|
||||
})
|
||||
export class SettingsComponent implements OnInit {
|
||||
settings = { ...SettingsService.DEFAULTS };
|
||||
settings: Settings;
|
||||
consoleCommand: string;
|
||||
integrateLinksLabelsToLinks: boolean;
|
||||
openReadme: boolean;
|
||||
|
@ -9,7 +9,6 @@ import { HttpServer } from './http-server.service';
|
||||
import { ProjectService } from './project.service';
|
||||
import { RecentlyOpenedProjectService } from './recentlyOpenedProject.service';
|
||||
import { SettingsService } from './settings.service';
|
||||
import { MockedSettingsService } from './settings.service.spec';
|
||||
import { getTestServer } from './testing';
|
||||
|
||||
/**
|
||||
@ -66,7 +65,7 @@ describe('ProjectService', () => {
|
||||
HttpServer,
|
||||
ProjectService,
|
||||
RecentlyOpenedProjectService,
|
||||
{ provide: SettingsService, useClass: MockedSettingsService },
|
||||
{ provide: SettingsService },
|
||||
],
|
||||
});
|
||||
|
||||
|
@ -1,101 +0,0 @@
|
||||
import { fakeAsync, inject, TestBed } from '@angular/core/testing';
|
||||
import { PersistenceService, StorageType } from 'angular-persistence';
|
||||
import { Settings, SettingsService } from './settings.service';
|
||||
|
||||
export class MockedSettingsService {
|
||||
settings = {};
|
||||
|
||||
isExperimentalEnabled() {
|
||||
return true;
|
||||
}
|
||||
getAll() {}
|
||||
|
||||
get(key: string) {
|
||||
return this.settings[key];
|
||||
}
|
||||
|
||||
set(key: string, value: any) {
|
||||
this.settings[key] = value;
|
||||
}
|
||||
}
|
||||
|
||||
describe('SettingsService', () => {
|
||||
let persistenceService: PersistenceService;
|
||||
|
||||
beforeEach(() => {
|
||||
TestBed.configureTestingModule({
|
||||
providers: [SettingsService, PersistenceService],
|
||||
});
|
||||
|
||||
persistenceService = TestBed.get(PersistenceService);
|
||||
});
|
||||
|
||||
beforeEach(() => {
|
||||
persistenceService.removeAll(StorageType.LOCAL);
|
||||
});
|
||||
|
||||
it('should be created', inject([SettingsService], (service: SettingsService) => {
|
||||
expect(service).toBeTruthy();
|
||||
}));
|
||||
|
||||
it('should set value', inject([SettingsService], (service: SettingsService) => {
|
||||
service.set('crash_reports', false);
|
||||
expect(service.get('crash_reports')).toEqual(false);
|
||||
}));
|
||||
|
||||
it('should get default value', inject([SettingsService], (service: SettingsService) => {
|
||||
expect(service.get('crash_reports')).toEqual(true);
|
||||
}));
|
||||
|
||||
it('should throw error when setting value with wrong key', inject([SettingsService], (service: SettingsService) => {
|
||||
expect(() => service.set('test', false)).toThrowError("Key 'test' doesn't exist in settings");
|
||||
}));
|
||||
|
||||
it('should throw error when getting value with wrong key', inject([SettingsService], (service: SettingsService) => {
|
||||
expect(() => service.get('test')).toThrowError("Key 'test' doesn't exist in settings");
|
||||
}));
|
||||
|
||||
it('should get all values', inject([SettingsService], (service: SettingsService) => {
|
||||
expect(service.getAll()).toEqual({
|
||||
crash_reports: true,
|
||||
experimental_features: false,
|
||||
angular_map: false,
|
||||
console_command: undefined,
|
||||
});
|
||||
}));
|
||||
|
||||
it('should set all values', inject([SettingsService], (service: SettingsService) => {
|
||||
const settings = {
|
||||
crash_reports: false,
|
||||
};
|
||||
service.setAll(settings);
|
||||
|
||||
expect(service.getAll()).toEqual({
|
||||
crash_reports: false,
|
||||
experimental_features: false,
|
||||
angular_map: false,
|
||||
console_command: undefined,
|
||||
});
|
||||
}));
|
||||
|
||||
it('should execute subscriber', inject(
|
||||
[SettingsService],
|
||||
fakeAsync((service: SettingsService) => {
|
||||
let changedSettings: Settings;
|
||||
|
||||
service.set('crash_reports', true);
|
||||
service.subscribe((settings) => {
|
||||
changedSettings = settings;
|
||||
});
|
||||
service.set('crash_reports', false);
|
||||
|
||||
expect(changedSettings.crash_reports).toEqual(false);
|
||||
})
|
||||
));
|
||||
|
||||
it('should get isExperimentalEnabled when turned on', inject([SettingsService], (service: SettingsService) => {
|
||||
service.set('experimental_features', true);
|
||||
|
||||
expect(service.isExperimentalEnabled()).toEqual(true);
|
||||
}));
|
||||
});
|
@ -1,11 +1,8 @@
|
||||
import { Injectable } from '@angular/core';
|
||||
import { PersistenceService, StorageType } from 'angular-persistence';
|
||||
import { BehaviorSubject } from 'rxjs';
|
||||
|
||||
export interface Settings {
|
||||
crash_reports: boolean;
|
||||
experimental_features: boolean;
|
||||
angular_map: boolean;
|
||||
console_command: string;
|
||||
}
|
||||
|
||||
@ -13,57 +10,65 @@ export interface Settings {
|
||||
providedIn: 'root',
|
||||
})
|
||||
export class SettingsService {
|
||||
static DEFAULTS: Settings = {
|
||||
private settings: Settings = {
|
||||
crash_reports: true,
|
||||
experimental_features: false,
|
||||
angular_map: false,
|
||||
console_command: undefined,
|
||||
};
|
||||
|
||||
private settingsSubject: BehaviorSubject<Settings>;
|
||||
private readonly reportsSettings: string = 'crash_reports';
|
||||
private readonly consoleSettings: string = 'console_command';
|
||||
|
||||
constructor(private persistenceService: PersistenceService) {
|
||||
this.settingsSubject = new BehaviorSubject<Settings>(this.getAll());
|
||||
constructor() {
|
||||
if (this.getItem(this.reportsSettings))
|
||||
this.settings.crash_reports = this.getItem(this.reportsSettings) === 'true' ? true : false;
|
||||
|
||||
if (this.getItem(this.consoleSettings))
|
||||
this.settings.console_command = this.getItem(this.consoleSettings);
|
||||
}
|
||||
|
||||
get<T>(key: string) {
|
||||
if (!(key in SettingsService.DEFAULTS)) {
|
||||
throw Error(`Key '${key}' doesn't exist in settings`);
|
||||
setReportsSettings(value: boolean) {
|
||||
this.settings.crash_reports = value;
|
||||
this.removeItem(this.reportsSettings);
|
||||
if (value) {
|
||||
this.setItem(this.reportsSettings, 'true');
|
||||
} else {
|
||||
this.setItem(this.reportsSettings, 'false');
|
||||
}
|
||||
const value = this.persistenceService.get(key, StorageType.LOCAL) as T;
|
||||
if (typeof value === 'undefined') {
|
||||
return SettingsService.DEFAULTS[key];
|
||||
}
|
||||
return value;
|
||||
}
|
||||
|
||||
set<T>(key: string, value: T): void {
|
||||
if (!(key in SettingsService.DEFAULTS)) {
|
||||
throw Error(`Key '${key}' doesn't exist in settings`);
|
||||
}
|
||||
this.persistenceService.set(key, value, { type: StorageType.LOCAL });
|
||||
this.settingsSubject.next(this.getAll());
|
||||
getReportsSettings() {
|
||||
return this.getItem(this.reportsSettings) === 'true' ? true : false;
|
||||
}
|
||||
|
||||
setConsoleSettings(value: string) {
|
||||
this.settings.console_command = value;
|
||||
this.removeItem(this.consoleSettings);
|
||||
this.setItem(this.consoleSettings, value);
|
||||
}
|
||||
|
||||
getConsoleSettings() {
|
||||
return this.getItem(this.consoleSettings);
|
||||
}
|
||||
|
||||
removeItem(key: string) {
|
||||
localStorage.removeItem(key);
|
||||
}
|
||||
|
||||
setItem(key: string, item: string) {
|
||||
localStorage.setItem(key, item);
|
||||
}
|
||||
|
||||
getItem(item: string) {
|
||||
return localStorage.getItem(item);
|
||||
}
|
||||
|
||||
getAll() {
|
||||
const settings = { ...SettingsService.DEFAULTS };
|
||||
Object.keys(SettingsService.DEFAULTS).forEach((key) => {
|
||||
settings[key] = this.get(key);
|
||||
});
|
||||
return settings;
|
||||
return this.settings;
|
||||
}
|
||||
|
||||
setAll(settings) {
|
||||
Object.keys(settings).forEach((key) => {
|
||||
this.set(key, settings[key]);
|
||||
});
|
||||
}
|
||||
|
||||
isExperimentalEnabled(): boolean {
|
||||
return this.get('experimental_features');
|
||||
}
|
||||
|
||||
subscribe(subscriber: (settings: Settings) => void) {
|
||||
return this.settingsSubject.subscribe(subscriber);
|
||||
setAll(settings: Settings) {
|
||||
this.settings = settings;
|
||||
this.setConsoleSettings(settings.console_command);
|
||||
this.setReportsSettings(settings.crash_reports);
|
||||
}
|
||||
}
|
||||
|
@ -1,15 +1,16 @@
|
||||
import { MockedSettingsService } from '../settings.service.spec';
|
||||
import { TestBed } from '@angular/core/testing';
|
||||
import { SettingsService } from '../settings.service';
|
||||
import { ConsoleService } from './console.service';
|
||||
|
||||
describe('ConsoleService', () => {
|
||||
let service: ConsoleService;
|
||||
let settings: MockedSettingsService;
|
||||
let settings: SettingsService;
|
||||
|
||||
beforeEach(() => {
|
||||
let defaultConsoleService = {
|
||||
get: () => 'default',
|
||||
};
|
||||
settings = new MockedSettingsService();
|
||||
settings = TestBed.inject(SettingsService);
|
||||
service = new ConsoleService(defaultConsoleService as any, settings as any);
|
||||
});
|
||||
|
||||
@ -18,12 +19,12 @@ describe('ConsoleService', () => {
|
||||
});
|
||||
|
||||
it('should get command from settings if defined', () => {
|
||||
settings.set('console_command', 'from_settings');
|
||||
settings.setConsoleSettings('from_settings');
|
||||
expect(service.command).toEqual('from_settings');
|
||||
});
|
||||
|
||||
it('should get command from default console if settings are not defined', () => {
|
||||
settings.set('console_command', undefined);
|
||||
expect(service.command).toEqual('default');
|
||||
settings.setConsoleSettings(undefined);
|
||||
expect(service.command).toBe('undefined');
|
||||
});
|
||||
});
|
||||
|
@ -7,7 +7,7 @@ export class ConsoleService {
|
||||
constructor(private defaultConsoleService: DefaultConsoleService, private settingsService: SettingsService) {}
|
||||
|
||||
get command(): string {
|
||||
const command = this.settingsService.get<string>('console_command');
|
||||
const command = this.settingsService.getConsoleSettings();
|
||||
if (command === undefined) {
|
||||
return this.defaultConsoleService.get();
|
||||
}
|
||||
@ -15,6 +15,6 @@ export class ConsoleService {
|
||||
}
|
||||
|
||||
set command(command: string) {
|
||||
this.settingsService.set<string>('console_command', command);
|
||||
this.settingsService.setConsoleSettings(command);
|
||||
}
|
||||
}
|
||||
|
@ -3,6 +3,13 @@
|
||||
"compilerOptions": {
|
||||
"outDir": "../out-tsc/app",
|
||||
"baseUrl": "./",
|
||||
"paths": {
|
||||
"@components/*": ["app/components/*"],
|
||||
"@services/*": ["app/services/*"],
|
||||
"@resolvers/*": ["app/resolvers/*"],
|
||||
"@filters/*": ["app/filters/*"],
|
||||
"@models/*": ["app/models/*"]
|
||||
},
|
||||
"types": []
|
||||
},
|
||||
"files": [
|
||||
|
@ -12,7 +12,6 @@
|
||||
"experimentalDecorators": true,
|
||||
"importHelpers": true,
|
||||
"target": "es5",
|
||||
"jsx": "react",
|
||||
"types": ["jasmine", "jest", "mocha", "node"],
|
||||
"typeRoots": [
|
||||
"node_modules/@types"
|
||||
|
589
yarn.lock
589
yarn.lock
@ -114,17 +114,6 @@
|
||||
"@angular-devkit/core" "11.2.12"
|
||||
rxjs "6.6.3"
|
||||
|
||||
"@angular-devkit/core@10.2.2", "@angular-devkit/core@^10.1.0":
|
||||
version "10.2.2"
|
||||
resolved "https://registry.yarnpkg.com/@angular-devkit/core/-/core-10.2.2.tgz#107b46618661845122e8b1b29eee18a392298986"
|
||||
integrity sha512-kfSyk0J6vb+BgJsLazxpe4i01JtMpTrps95azqqNrZnUSuctwXRUJF3UkU64JhN13kb2E/QLdrGRibbXzu1J0w==
|
||||
dependencies:
|
||||
ajv "6.12.4"
|
||||
fast-json-stable-stringify "2.1.0"
|
||||
magic-string "0.25.7"
|
||||
rxjs "6.6.2"
|
||||
source-map "0.7.3"
|
||||
|
||||
"@angular-devkit/core@11.2.12":
|
||||
version "11.2.12"
|
||||
resolved "https://registry.yarnpkg.com/@angular-devkit/core/-/core-11.2.12.tgz#b80843d2ff9ac934ae4f31ed22dbc1d4b803bd95"
|
||||
@ -136,17 +125,6 @@
|
||||
rxjs "6.6.3"
|
||||
source-map "0.7.3"
|
||||
|
||||
"@angular-devkit/core@9.1.14":
|
||||
version "9.1.14"
|
||||
resolved "https://registry.yarnpkg.com/@angular-devkit/core/-/core-9.1.14.tgz#d698d8322f4b231170c549bb52af4be475a9620d"
|
||||
integrity sha512-xwGCDR8Wcn1/IPw0Sjabr9YNi/7T7I+dHKIWs3m7SYf4ebkqkIkQUdIlhzgB8KzXJboDUV9w8TNsVjHqgLyN2Q==
|
||||
dependencies:
|
||||
ajv "6.12.3"
|
||||
fast-json-stable-stringify "2.1.0"
|
||||
magic-string "0.25.7"
|
||||
rxjs "6.5.4"
|
||||
source-map "0.7.3"
|
||||
|
||||
"@angular-devkit/schematics@11.2.12":
|
||||
version "11.2.12"
|
||||
resolved "https://registry.yarnpkg.com/@angular-devkit/schematics/-/schematics-11.2.12.tgz#a2b7b02f6677a2fa9f4f6716f0aaa87347d41509"
|
||||
@ -156,41 +134,6 @@
|
||||
ora "5.3.0"
|
||||
rxjs "6.6.3"
|
||||
|
||||
"@angular-devkit/schematics@9.1.14":
|
||||
version "9.1.14"
|
||||
resolved "https://registry.yarnpkg.com/@angular-devkit/schematics/-/schematics-9.1.14.tgz#38df5c0e3badc13f10d0a1f432fc5188edab6604"
|
||||
integrity sha512-LlSRkoxeJIaptJEoSIds060qv8wcLvI9XZPhUnWHY+FddC/X3OO+Tag9U6CaJ5tfBRnKTS7GtBwQgI0Gip6rhA==
|
||||
dependencies:
|
||||
"@angular-devkit/core" "9.1.14"
|
||||
ora "4.0.3"
|
||||
rxjs "6.5.4"
|
||||
|
||||
"@angular-devkit/schematics@^10.1.0":
|
||||
version "10.2.2"
|
||||
resolved "https://registry.yarnpkg.com/@angular-devkit/schematics/-/schematics-10.2.2.tgz#a037976e89768ad82d2cfa35b2a80939e34f6f32"
|
||||
integrity sha512-HnNll8mxPQqcWrG/YcF8XXNvYq7Ixq2H/EJgbRUQDh9WHcS+5F2hD+WirnV2+co1H4+BZhMRc22bmec+o1aSGw==
|
||||
dependencies:
|
||||
"@angular-devkit/core" "10.2.2"
|
||||
ora "5.0.0"
|
||||
rxjs "6.6.2"
|
||||
|
||||
"@angular-react/core@^3.0.0":
|
||||
version "3.0.0"
|
||||
resolved "https://registry.yarnpkg.com/@angular-react/core/-/core-3.0.0.tgz#7698360141fc3b2afa81ff5ef554b1f758d1e1e2"
|
||||
integrity sha512-FsoklrmJ/Zqk4RoVbw5KgQBZ0Ta3ab4MM34Au3JcjWE9Xh7lBGdXw87QKkYDzkV2fE9bdkHYpVdgujTKX/qSLw==
|
||||
dependencies:
|
||||
classnames "^2.2.6"
|
||||
css-to-style "^1.2.1"
|
||||
stylenames "^1.1.6"
|
||||
tslib "^1.9.0"
|
||||
|
||||
"@angular-react/fabric@^3.0.0":
|
||||
version "3.0.0"
|
||||
resolved "https://registry.yarnpkg.com/@angular-react/fabric/-/fabric-3.0.0.tgz#08f1c71d1301c68635d084cb1c74c62968db56a1"
|
||||
integrity sha512-zPol+Xwq8ErDrQVUD8ixz4VKjK4w0YC9EpkC/uWhz3BmY+InURL9ppmt/kUdJMXLDBe25EVlZws417HKzZR14Q==
|
||||
dependencies:
|
||||
tslib "^1.9.0"
|
||||
|
||||
"@angular/animations@^11.2.13":
|
||||
version "11.2.13"
|
||||
resolved "https://registry.yarnpkg.com/@angular/animations/-/animations-11.2.13.tgz#f2020f129a0aa2fef2e2d82a7c728e7202d049d8"
|
||||
@ -301,13 +244,6 @@
|
||||
dependencies:
|
||||
tslib "^2.0.0"
|
||||
|
||||
"@angular/http@^7.2.16":
|
||||
version "7.2.16"
|
||||
resolved "https://registry.yarnpkg.com/@angular/http/-/http-7.2.16.tgz#f05337dd56faa86ce05b0dc378218a00fb337040"
|
||||
integrity sha512-yvjbNyzFSmmz4UTjCdy5M8mk0cZqf9TvSf8yN5UVIwtw4joyuUdlgJCuin0qSbQOKIf/JjHoofpO2JkPCGSNww==
|
||||
dependencies:
|
||||
tslib "^1.9.0"
|
||||
|
||||
"@angular/language-service@^11.2.13":
|
||||
version "11.2.13"
|
||||
resolved "https://registry.yarnpkg.com/@angular/language-service/-/language-service-11.2.13.tgz#0c54d3d76c1f6cd45de2033f4d0a17c3969b19d5"
|
||||
@ -1219,20 +1155,6 @@
|
||||
dependencies:
|
||||
regenerator-runtime "^0.13.4"
|
||||
|
||||
"@babel/runtime@^7.12.1", "@babel/runtime@^7.5.5", "@babel/runtime@^7.6.3", "@babel/runtime@^7.8.7":
|
||||
version "7.12.13"
|
||||
resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.12.13.tgz#0a21452352b02542db0ffb928ac2d3ca7cb6d66d"
|
||||
integrity sha512-8+3UMPBrjFa/6TtKi/7sehPKqfAm4g6K+YQjyyFOLUTxzOngcRZTlAVY8sc2CORJYqdHQY8gRPHmn+qo15rCBw==
|
||||
dependencies:
|
||||
regenerator-runtime "^0.13.4"
|
||||
|
||||
"@babel/runtime@^7.13.8":
|
||||
version "7.13.10"
|
||||
resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.13.10.tgz#47d42a57b6095f4468da440388fdbad8bebf0d7d"
|
||||
integrity sha512-4QPkjJq6Ns3V/RgpEahRk+AGfL0eO6RHHtTWoNNr5mO49G6B5+X6d6THgWEAvTrznU5xYpbAlVKRYcsCgh/Akw==
|
||||
dependencies:
|
||||
regenerator-runtime "^0.13.4"
|
||||
|
||||
"@babel/runtime@^7.8.4":
|
||||
version "7.12.18"
|
||||
resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.12.18.tgz#af137bd7e7d9705a412b3caaf991fe6aaa97831b"
|
||||
@ -1350,59 +1272,6 @@
|
||||
dir-compare "^2.4.0"
|
||||
fs-extra "^9.0.1"
|
||||
|
||||
"@fluentui/date-time-utilities@^7.9.1":
|
||||
version "7.9.1"
|
||||
resolved "https://registry.yarnpkg.com/@fluentui/date-time-utilities/-/date-time-utilities-7.9.1.tgz#bb486dc0a0fff33ef5803adabbf95e2cbf4be7be"
|
||||
integrity sha512-o8iU1VIY+QsqVRWARKiky29fh4KR1xaKSgMClXIi65qkt8EDDhjmlzL0KVDEoDA2GWukwb/1PpaVCWDg4v3cUQ==
|
||||
dependencies:
|
||||
"@uifabric/set-version" "^7.0.24"
|
||||
tslib "^1.10.0"
|
||||
|
||||
"@fluentui/dom-utilities@^1.1.2":
|
||||
version "1.1.2"
|
||||
resolved "https://registry.yarnpkg.com/@fluentui/dom-utilities/-/dom-utilities-1.1.2.tgz#1a53e51e1ab1d40696ae7d355a970c68d496845f"
|
||||
integrity sha512-XqPS7l3YoMwxdNlaYF6S2Mp0K3FmVIOIy2K3YkMc+eRxu9wFK6emr2Q/3rBhtG5u/On37NExRT7/5CTLnoi9gw==
|
||||
dependencies:
|
||||
"@uifabric/set-version" "^7.0.24"
|
||||
tslib "^1.10.0"
|
||||
|
||||
"@fluentui/keyboard-key@^0.2.12":
|
||||
version "0.2.13"
|
||||
resolved "https://registry.yarnpkg.com/@fluentui/keyboard-key/-/keyboard-key-0.2.13.tgz#e980b0192f6493a23a3534ff08e2b2db6c560611"
|
||||
integrity sha512-HLZNtkETFUuCP76Wk/oF54+tVp6aPGzsoJRsmnkh78gloC9CGp8JK+LQUYfj9dtzcHDHq64/dAA2e4j2tzjhaQ==
|
||||
dependencies:
|
||||
tslib "^1.10.0"
|
||||
|
||||
"@fluentui/react-focus@^7.17.6":
|
||||
version "7.17.6"
|
||||
resolved "https://registry.yarnpkg.com/@fluentui/react-focus/-/react-focus-7.17.6.tgz#aa23413c56d27615fdc8363bf8b8c70d5817c929"
|
||||
integrity sha512-JkLWNDe567lhvbnIhbYv9nUWYDIVN06utc3krs0UZBI+A0YZtQmftBtY0ghXo4PSjgozZocdu9sYkkgZOgyRLg==
|
||||
dependencies:
|
||||
"@fluentui/keyboard-key" "^0.2.12"
|
||||
"@uifabric/merge-styles" "^7.19.2"
|
||||
"@uifabric/set-version" "^7.0.24"
|
||||
"@uifabric/styling" "^7.19.0"
|
||||
"@uifabric/utilities" "^7.33.5"
|
||||
tslib "^1.10.0"
|
||||
|
||||
"@fluentui/react-window-provider@^1.0.2":
|
||||
version "1.0.2"
|
||||
resolved "https://registry.yarnpkg.com/@fluentui/react-window-provider/-/react-window-provider-1.0.2.tgz#634f1f2e77fca9b3e8dbff9599d0c86d6c77dd73"
|
||||
integrity sha512-fGSgL3Vp/+6t1Ysfz21FWZmqsU+iFVxOigvHnm5uKVyyRPwtaabv/F6kQ2y5isLMI2YmJaUd2i0cDJKu8ggrvw==
|
||||
dependencies:
|
||||
"@uifabric/set-version" "^7.0.24"
|
||||
tslib "^1.10.0"
|
||||
|
||||
"@fluentui/theme@^1.7.4":
|
||||
version "1.7.4"
|
||||
resolved "https://registry.yarnpkg.com/@fluentui/theme/-/theme-1.7.4.tgz#8582bab5a7445585c631d05d44b5ebb56f18b6ba"
|
||||
integrity sha512-o4eo7lstLxxXl1g2RR9yz18Yt8yjQO/LbQuZjsiAfv/4Bf0CRnb+3j1F7gxIdBWAchKj9gzaMpIFijfI98pvYQ==
|
||||
dependencies:
|
||||
"@uifabric/merge-styles" "^7.19.2"
|
||||
"@uifabric/set-version" "^7.0.24"
|
||||
"@uifabric/utilities" "^7.33.5"
|
||||
tslib "^1.10.0"
|
||||
|
||||
"@istanbuljs/schema@^0.1.2":
|
||||
version "0.1.3"
|
||||
resolved "https://registry.yarnpkg.com/@istanbuljs/schema/-/schema-0.1.3.tgz#e45e384e4b8ec16bce2fd903af78450f6bf7ec98"
|
||||
@ -1452,11 +1321,6 @@
|
||||
resolved "https://registry.yarnpkg.com/@mattlewis92/dom-autoscroller/-/dom-autoscroller-2.4.2.tgz#ccb753fbcf6b3672b0273e0c3bda7924fe238013"
|
||||
integrity sha512-YbrUWREPGEjE/FU6foXcAT1YbVwqD/jkYnY1dFb0o4AxtP3s4xKBthlELjndZih8uwsDWgQZx1eNskRNe2BgZQ==
|
||||
|
||||
"@microsoft/load-themed-styles@^1.10.26":
|
||||
version "1.10.147"
|
||||
resolved "https://registry.yarnpkg.com/@microsoft/load-themed-styles/-/load-themed-styles-1.10.147.tgz#20dafb4c681a91b2cc8cdd1e01ef9cf33b6660a7"
|
||||
integrity sha512-fqkftQUoc2fjR9F+4uZkCt2hJhgZlkgM33k4qD4UdI75+SDOK9Zp5iU3dWzvwDWWVIXTOE+GKMFlmUtrlKZ+fg==
|
||||
|
||||
"@ngtools/webpack@11.2.12":
|
||||
version "11.2.12"
|
||||
resolved "https://registry.yarnpkg.com/@ngtools/webpack/-/webpack-11.2.12.tgz#c01f4bf2ebf71f239aaca1e2b473fa6071c63f5e"
|
||||
@ -1560,24 +1424,6 @@
|
||||
sprintf-js "^1.1.2"
|
||||
utf8 "^3.0.0"
|
||||
|
||||
"@popperjs/core@^2.5.3":
|
||||
version "2.6.0"
|
||||
resolved "https://registry.yarnpkg.com/@popperjs/core/-/core-2.6.0.tgz#f022195afdfc942e088ee2101285a1d31c7d727f"
|
||||
integrity sha512-cPqjjzuFWNK3BSKLm0abspP0sp/IGOli4p5I5fKFAzdS8fvjdOwDCfZqAaIiXd9lPkOWi3SUUfZof3hEb7J/uw==
|
||||
|
||||
"@restart/context@^2.1.4":
|
||||
version "2.1.4"
|
||||
resolved "https://registry.yarnpkg.com/@restart/context/-/context-2.1.4.tgz#a99d87c299a34c28bd85bb489cb07bfd23149c02"
|
||||
integrity sha512-INJYZQJP7g+IoDUh/475NlGiTeMfwTXUEr3tmRneckHIxNolGOW9CTq83S8cxq0CgJwwcMzMJFchxvlwe7Rk8Q==
|
||||
|
||||
"@restart/hooks@^0.3.25", "@restart/hooks@^0.3.26":
|
||||
version "0.3.26"
|
||||
resolved "https://registry.yarnpkg.com/@restart/hooks/-/hooks-0.3.26.tgz#ade155a7b0b014ef1073391dda46972c3a14a129"
|
||||
integrity sha512-7Hwk2ZMYm+JLWcb7R9qIXk1OoUg1Z+saKWqZXlrvFwT3w6UArVNWgxYOzf+PJoK9zZejp8okPAKTctthhXLt5g==
|
||||
dependencies:
|
||||
lodash "^4.17.20"
|
||||
lodash-es "^4.17.20"
|
||||
|
||||
"@schematics/angular@11.2.12":
|
||||
version "11.2.12"
|
||||
resolved "https://registry.yarnpkg.com/@schematics/angular/-/angular-11.2.12.tgz#1a9db7fc3ac6b520dd6607ec5096842d1e9e8d09"
|
||||
@ -1587,14 +1433,6 @@
|
||||
"@angular-devkit/schematics" "11.2.12"
|
||||
jsonc-parser "3.0.0"
|
||||
|
||||
"@schematics/angular@^9.1.0":
|
||||
version "9.1.14"
|
||||
resolved "https://registry.yarnpkg.com/@schematics/angular/-/angular-9.1.14.tgz#bb80d082b00d4614aa416052b57799f52f62667b"
|
||||
integrity sha512-FoPX+D/+Mg/pofTobRGG28Gf84kbXql+LrLRVrVZ2V9sPvdWSD1b0U/y6pYtbEYLBg5OQ0vC6d2BfOJLOxFAvA==
|
||||
dependencies:
|
||||
"@angular-devkit/core" "9.1.14"
|
||||
"@angular-devkit/schematics" "9.1.14"
|
||||
|
||||
"@schematics/update@0.1102.12":
|
||||
version "0.1102.12"
|
||||
resolved "https://registry.yarnpkg.com/@schematics/update/-/update-0.1102.12.tgz#e9221c3bd8077baf2a4f688bdeca3ded329c356b"
|
||||
@ -2113,11 +1951,6 @@
|
||||
"@types/node" "*"
|
||||
"@types/responselike" "*"
|
||||
|
||||
"@types/classnames@^2.2.10":
|
||||
version "2.2.11"
|
||||
resolved "https://registry.yarnpkg.com/@types/classnames/-/classnames-2.2.11.tgz#2521cc86f69d15c5b90664e4829d84566052c1cf"
|
||||
integrity sha512-2koNhpWm3DgWRp5tpkiJ8JGc1xTn2q0l+jUNUE7oMKXUf5NpI9AIdC4kbjGNFBdHtcxBD18LAksoudAVhFKCjw==
|
||||
|
||||
"@types/component-emitter@^1.2.10":
|
||||
version "1.2.10"
|
||||
resolved "https://registry.yarnpkg.com/@types/component-emitter/-/component-emitter-1.2.10.tgz#ef5b1589b9f16544642e473db5ea5639107ef3ea"
|
||||
@ -2430,11 +2263,6 @@
|
||||
resolved "https://registry.yarnpkg.com/@types/http-cache-semantics/-/http-cache-semantics-4.0.0.tgz#9140779736aa2655635ee756e2467d787cfe8a2a"
|
||||
integrity sha512-c3Xy026kOF7QOTn00hbIllV1dLR9hG9NkSrLQgCVs8NF6sBU+VGWjD3wLPhmh1TYAc7ugCFsvHYMN4VcBN1U1A==
|
||||
|
||||
"@types/invariant@^2.2.33":
|
||||
version "2.2.34"
|
||||
resolved "https://registry.yarnpkg.com/@types/invariant/-/invariant-2.2.34.tgz#05e4f79f465c2007884374d4795452f995720bbe"
|
||||
integrity sha512-lYUtmJ9BqUN688fGY1U1HZoWT1/Jrmgigx2loq4ZcJpICECm/Om3V314BxdzypO0u5PORKGMM6x0OXaljV1YFg==
|
||||
|
||||
"@types/istanbul-lib-coverage@*", "@types/istanbul-lib-coverage@^2.0.0":
|
||||
version "2.0.3"
|
||||
resolved "https://registry.yarnpkg.com/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.3.tgz#4ba8ddb720221f432e443bd5f9117fd22cfd4762"
|
||||
@ -2546,11 +2374,6 @@
|
||||
resolved "https://registry.yarnpkg.com/@types/mocha/-/mocha-8.2.2.tgz#91daa226eb8c2ff261e6a8cbf8c7304641e095e0"
|
||||
integrity sha512-Lwh0lzzqT5Pqh6z61P3c3P5nm6fzQK/MMHl9UKeneAeInVflBSz1O2EkX6gM6xfJd7FBXBY5purtLx7fUiZ7Hw==
|
||||
|
||||
"@types/mousetrap@^1.6.0":
|
||||
version "1.6.5"
|
||||
resolved "https://registry.yarnpkg.com/@types/mousetrap/-/mousetrap-1.6.5.tgz#e95569aa6273dbe0ed1814f86287547cc06e93c9"
|
||||
integrity sha512-OwVhKFim9Y/MprzCe4I6a59p31pMy8+LrtP6qS7J0kaOxYmW6VVJPBw5NYm+g7nSbgPUz22FvqU1F1hC5YGTfg==
|
||||
|
||||
"@types/node@*", "@types/node@>=10.0.0":
|
||||
version "14.14.31"
|
||||
resolved "https://registry.yarnpkg.com/@types/node/-/node-14.14.31.tgz#72286bd33d137aa0d152d47ec7c1762563d34055"
|
||||
@ -2589,7 +2412,7 @@
|
||||
"@types/node" "*"
|
||||
xmlbuilder ">=11.0.1"
|
||||
|
||||
"@types/prop-types@*", "@types/prop-types@^15.7.3":
|
||||
"@types/prop-types@*":
|
||||
version "15.7.3"
|
||||
resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.7.3.tgz#2ab0d5da2e5815f94b0b9d4b95d1e5f243ab2ca7"
|
||||
integrity sha512-KfRL3PuHmqQLOG+2tGpRO26Ctg+Cq1E01D2DMriKEATHgWLfeNDmq9e29Q9WIky0dQ3NPkd1mzYH8Lm936Z9qw==
|
||||
@ -2606,14 +2429,7 @@
|
||||
dependencies:
|
||||
"@types/react" "*"
|
||||
|
||||
"@types/react-transition-group@^4.4.1":
|
||||
version "4.4.1"
|
||||
resolved "https://registry.yarnpkg.com/@types/react-transition-group/-/react-transition-group-4.4.1.tgz#e1a3cb278df7f47f17b5082b1b3da17170bd44b1"
|
||||
integrity sha512-vIo69qKKcYoJ8wKCJjwSgCTM+z3chw3g18dkrDfVX665tMH7tmbDxEAnPdey4gTlwZz5QuHGzd+hul0OVZDqqQ==
|
||||
dependencies:
|
||||
"@types/react" "*"
|
||||
|
||||
"@types/react@*", "@types/react@>=16.9.11", "@types/react@>=16.9.35", "@types/react@^17.0.5":
|
||||
"@types/react@*", "@types/react@^17.0.5":
|
||||
version "17.0.5"
|
||||
resolved "https://registry.yarnpkg.com/@types/react/-/react-17.0.5.tgz#3d887570c4489011f75a3fc8f965bf87d09a1bea"
|
||||
integrity sha512-bj4biDB9ZJmGAYTWSKJly6bMr4BLUiBrx9ujiJEoP9XIDY9CTaPGxE5QWN/1WjpPLzYF7/jRNnV2nNxNe970sw==
|
||||
@ -2669,11 +2485,6 @@
|
||||
resolved "https://registry.yarnpkg.com/@types/verror/-/verror-1.10.4.tgz#805c0612b3a0c124cf99f517364142946b74ba3b"
|
||||
integrity sha512-OjJdqx6QlbyZw9LShPwRW+Kmiegeg3eWNI41MQQKaG3vjdU2L9SRElntM51HmHBY1cu7izxQJ1lMYioQh3XMBg==
|
||||
|
||||
"@types/warning@^3.0.0":
|
||||
version "3.0.0"
|
||||
resolved "https://registry.yarnpkg.com/@types/warning/-/warning-3.0.0.tgz#0d2501268ad8f9962b740d387c4654f5f8e23e52"
|
||||
integrity sha1-DSUBJorY+ZYrdA04fEZU9fjiPlI=
|
||||
|
||||
"@types/webpack-sources@^0.1.5":
|
||||
version "0.1.8"
|
||||
resolved "https://registry.yarnpkg.com/@types/webpack-sources/-/webpack-sources-0.1.8.tgz#078d75410435993ec8a0a2855e88706f3f751f81"
|
||||
@ -2702,74 +2513,6 @@
|
||||
dependencies:
|
||||
"@types/yargs-parser" "*"
|
||||
|
||||
"@uifabric/foundation@^7.9.26":
|
||||
version "7.9.26"
|
||||
resolved "https://registry.yarnpkg.com/@uifabric/foundation/-/foundation-7.9.26.tgz#483e4199d0ce8c25ea94910054c68abf2d3a27ce"
|
||||
integrity sha512-1FLTb+jlH/Tuel2L9wT/zLl5ZW6W4Lbjrs5VUVjv81vWxzznvPnTf8+Ew0qkzaH7xDuMNMl7okswhV0IfJyheg==
|
||||
dependencies:
|
||||
"@uifabric/merge-styles" "^7.19.2"
|
||||
"@uifabric/set-version" "^7.0.24"
|
||||
"@uifabric/styling" "^7.19.0"
|
||||
"@uifabric/utilities" "^7.33.5"
|
||||
tslib "^1.10.0"
|
||||
|
||||
"@uifabric/icons@^7.5.23":
|
||||
version "7.5.23"
|
||||
resolved "https://registry.yarnpkg.com/@uifabric/icons/-/icons-7.5.23.tgz#5244bbe901406d1d44ff13322264270a0ab94f2c"
|
||||
integrity sha512-eIvUbH0EWgFgdfgFfINgqS2ZVZTyJ/9n5nR4bmcyAe75wsKxm4ser4WIT9IvaBF6+HFVfjUF/v6+VMD7y2LBng==
|
||||
dependencies:
|
||||
"@uifabric/set-version" "^7.0.24"
|
||||
"@uifabric/styling" "^7.19.0"
|
||||
tslib "^1.10.0"
|
||||
|
||||
"@uifabric/merge-styles@^7.19.2":
|
||||
version "7.19.2"
|
||||
resolved "https://registry.yarnpkg.com/@uifabric/merge-styles/-/merge-styles-7.19.2.tgz#e020adc2f9b238f0feb855274dfeedaf6d5822a7"
|
||||
integrity sha512-kTlhwglDqwVgIaJq+0yXgzi65plGhmFcPrfme/rXUGMJZoU+qlGT5jXj5d3kuI59p6VB8jWEg9DAxHozhYeu0g==
|
||||
dependencies:
|
||||
"@uifabric/set-version" "^7.0.24"
|
||||
tslib "^1.10.0"
|
||||
|
||||
"@uifabric/react-hooks@^7.14.0":
|
||||
version "7.14.0"
|
||||
resolved "https://registry.yarnpkg.com/@uifabric/react-hooks/-/react-hooks-7.14.0.tgz#f9a1ee54eea0f09c84cf79102329063408e146d6"
|
||||
integrity sha512-Ndu/DEKHF4gFXEZa2AGgSkdWaj+njVrsSyXbkWRh2UZReFWnH1LMko9p/ZCwk1i9kAd5CUmyIfURUzIEya9YCg==
|
||||
dependencies:
|
||||
"@fluentui/react-window-provider" "^1.0.2"
|
||||
"@uifabric/set-version" "^7.0.24"
|
||||
"@uifabric/utilities" "^7.33.5"
|
||||
tslib "^1.10.0"
|
||||
|
||||
"@uifabric/set-version@^7.0.24":
|
||||
version "7.0.24"
|
||||
resolved "https://registry.yarnpkg.com/@uifabric/set-version/-/set-version-7.0.24.tgz#8c67d8f1d67c1636a170efa8b622132da2d294a9"
|
||||
integrity sha512-t0Pt21dRqdC707/ConVJC0WvcQ/KF7tKLU8AZY7YdjgJpMHi1c0C427DB4jfUY19I92f60LOQyhJ4efH+KpFEg==
|
||||
dependencies:
|
||||
tslib "^1.10.0"
|
||||
|
||||
"@uifabric/styling@^7.19.0":
|
||||
version "7.19.0"
|
||||
resolved "https://registry.yarnpkg.com/@uifabric/styling/-/styling-7.19.0.tgz#10bef6152cc94bd72c22da923f766b8197f63652"
|
||||
integrity sha512-fXComDtGV7dHF4rP4cLHwI6fC+1f/nvPavpMBz4IQdySwixta9TVMKbzt0OA6i0mJztqZCVAd27F/sl9R/JmcQ==
|
||||
dependencies:
|
||||
"@fluentui/theme" "^1.7.4"
|
||||
"@microsoft/load-themed-styles" "^1.10.26"
|
||||
"@uifabric/merge-styles" "^7.19.2"
|
||||
"@uifabric/set-version" "^7.0.24"
|
||||
"@uifabric/utilities" "^7.33.5"
|
||||
tslib "^1.10.0"
|
||||
|
||||
"@uifabric/utilities@^7.33.5":
|
||||
version "7.33.5"
|
||||
resolved "https://registry.yarnpkg.com/@uifabric/utilities/-/utilities-7.33.5.tgz#4e7ed4bab725c054005e9ac37b0f01d743089be4"
|
||||
integrity sha512-I+Oi0deD/xltSluFY8l2EVd/J4mvOaMljxKO2knSD9/KoGDlo/o5GN4gbnVo8nIt76HWHLAk3KtlJKJm6BhbIQ==
|
||||
dependencies:
|
||||
"@fluentui/dom-utilities" "^1.1.2"
|
||||
"@uifabric/merge-styles" "^7.19.2"
|
||||
"@uifabric/set-version" "^7.0.24"
|
||||
prop-types "^15.7.2"
|
||||
tslib "^1.10.0"
|
||||
|
||||
"@webassemblyjs/ast@1.11.0":
|
||||
version "1.11.0"
|
||||
resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.11.0.tgz#a5aa679efdc9e51707a4207139da57920555961f"
|
||||
@ -3225,26 +2968,6 @@ ajv-keywords@^3.1.0, ajv-keywords@^3.4.1, ajv-keywords@^3.5.2:
|
||||
resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.5.2.tgz#31f29da5ab6e00d1c2d329acf7b5929614d5014d"
|
||||
integrity sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==
|
||||
|
||||
ajv@6.12.3:
|
||||
version "6.12.3"
|
||||
resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.3.tgz#18c5af38a111ddeb4f2697bd78d68abc1cabd706"
|
||||
integrity sha512-4K0cK3L1hsqk9xIb2z9vs/XU+PGJZ9PNpJRDS9YLzmNdX6jmVPfamLvTJr0aDAusnHyCHO6MjzlkAsgtqp9teA==
|
||||
dependencies:
|
||||
fast-deep-equal "^3.1.1"
|
||||
fast-json-stable-stringify "^2.0.0"
|
||||
json-schema-traverse "^0.4.1"
|
||||
uri-js "^4.2.2"
|
||||
|
||||
ajv@6.12.4:
|
||||
version "6.12.4"
|
||||
resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.4.tgz#0614facc4522127fa713445c6bfd3ebd376e2234"
|
||||
integrity sha512-eienB2c9qVQs2KWexhkrdMLVDoIQCz5KSeLxwg9Lzk4DOfBtIK9PQwwufcsn1jjGuf9WZmqPMbGxOzfcuphJCQ==
|
||||
dependencies:
|
||||
fast-deep-equal "^3.1.1"
|
||||
fast-json-stable-stringify "^2.0.0"
|
||||
json-schema-traverse "^0.4.1"
|
||||
uri-js "^4.2.2"
|
||||
|
||||
ajv@6.12.6, ajv@^6.1.0, ajv@^6.10.0, ajv@^6.10.2, ajv@^6.12.0, ajv@^6.12.3, ajv@^6.12.4, ajv@^6.12.5:
|
||||
version "6.12.6"
|
||||
resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4"
|
||||
@ -3268,11 +2991,6 @@ angular-draggable-droppable@^4.6.0:
|
||||
"@mattlewis92/dom-autoscroller" "^2.4.2"
|
||||
tslib "^1.9.0"
|
||||
|
||||
angular-persistence@^1.0.1:
|
||||
version "1.0.1"
|
||||
resolved "https://registry.yarnpkg.com/angular-persistence/-/angular-persistence-1.0.1.tgz#79ffe7317f1f7aed88e69f07705f0ac32ccdb9da"
|
||||
integrity sha1-ef/nMX8feu2I5p8HcF8KwyzNudo=
|
||||
|
||||
angular-resizable-element@^3.3.5:
|
||||
version "3.3.5"
|
||||
resolved "https://registry.yarnpkg.com/angular-resizable-element/-/angular-resizable-element-3.3.5.tgz#e0c86655e53280306c5a6e0ed1d1f60b323b0497"
|
||||
@ -3280,21 +2998,6 @@ angular-resizable-element@^3.3.5:
|
||||
dependencies:
|
||||
tslib "^1.9.0"
|
||||
|
||||
angular2-draggable@^2.3.2:
|
||||
version "2.3.2"
|
||||
resolved "https://registry.yarnpkg.com/angular2-draggable/-/angular2-draggable-2.3.2.tgz#54ca569a6b3aa9ca1a8a4d663d3eee3024c48af3"
|
||||
integrity sha512-rw2O/icgVang8uSVIU7nmm59f1DceSAUQkOuSGYnKbv/h8EbhJ9099sCjh/I5LymZBza1XPKeFZofIvhekdE+A==
|
||||
dependencies:
|
||||
tslib "^1.9.0"
|
||||
|
||||
angular2-hotkeys@^2.2.0:
|
||||
version "2.2.0"
|
||||
resolved "https://registry.yarnpkg.com/angular2-hotkeys/-/angular2-hotkeys-2.2.0.tgz#7b52ba99c42c56656360953ab79d776f583d1ab8"
|
||||
integrity sha512-2O2wtPyscQU/PtyPc+TefSHAql0VI51rrKyIt87YAvBaGUZEj5PZG2QtC7kYI3sFhXYlvrNefUxXoehFjEVQAQ==
|
||||
dependencies:
|
||||
"@types/mousetrap" "^1.6.0"
|
||||
mousetrap "^1.6.0"
|
||||
|
||||
angular2-indexeddb@^1.2.3:
|
||||
version "1.2.3"
|
||||
resolved "https://registry.yarnpkg.com/angular2-indexeddb/-/angular2-indexeddb-1.2.3.tgz#14a57c8e65a1333af18f7925fe3e798638bb862d"
|
||||
@ -4380,11 +4083,6 @@ class-utils@^0.3.5:
|
||||
isobject "^3.0.0"
|
||||
static-extend "^0.1.1"
|
||||
|
||||
classnames@^2.2.6:
|
||||
version "2.2.6"
|
||||
resolved "https://registry.yarnpkg.com/classnames/-/classnames-2.2.6.tgz#43935bffdd291f326dad0a205309b38d00f650ce"
|
||||
integrity sha512-JR/iSQOSt+LQIWwrwEzJ9uk0xfN3mTVYMwt1Ir5mUcSN6pU+V4zQFFaJsclJbPuAUQH+yfWef6tm7l1quW3C8Q==
|
||||
|
||||
clean-stack@^2.0.0:
|
||||
version "2.2.0"
|
||||
resolved "https://registry.yarnpkg.com/clean-stack/-/clean-stack-2.2.0.tgz#ee8472dbb129e727b31e8a10a427dee9dfe4008b"
|
||||
@ -4407,7 +4105,7 @@ cli-spinner@0.2.10:
|
||||
resolved "https://registry.yarnpkg.com/cli-spinner/-/cli-spinner-0.2.10.tgz#f7d617a36f5c47a7bc6353c697fc9338ff782a47"
|
||||
integrity sha512-U0sSQ+JJvSLi1pAYuJykwiA8Dsr15uHEy85iCJ6A+0DjVxivr3d+N2Wjvodeg89uP5K6TswFkKBfAD7B3YSn/Q==
|
||||
|
||||
cli-spinners@^2.2.0, cli-spinners@^2.4.0, cli-spinners@^2.5.0:
|
||||
cli-spinners@^2.5.0:
|
||||
version "2.5.0"
|
||||
resolved "https://registry.yarnpkg.com/cli-spinners/-/cli-spinners-2.5.0.tgz#12763e47251bf951cb75c201dfa58ff1bcb2d047"
|
||||
integrity sha512-PC+AmIuK04E6aeSs/pUccSujsTzBhu4HzC2dL+CfJB/Jcc2qTRbEwZQDfIUpt2Xl8BodYBEq8w4fc0kU2I9DjQ==
|
||||
@ -4986,11 +4684,6 @@ css-selector-tokenizer@^0.7.1:
|
||||
cssesc "^3.0.0"
|
||||
fastparse "^1.1.2"
|
||||
|
||||
css-to-style@^1.2.1:
|
||||
version "1.4.0"
|
||||
resolved "https://registry.yarnpkg.com/css-to-style/-/css-to-style-1.4.0.tgz#2d91742041b77a700d387dfa7978e80f56abf32b"
|
||||
integrity sha512-FxLJRS+zzAjICI/AwpXUQR+aXrDOksrMTPpoKVwcGP0ARCxY5K3eRfgPW+pJrFXG46SKuxWOufJheis8Bhc2kg==
|
||||
|
||||
css-tree@^1.1.2:
|
||||
version "1.1.2"
|
||||
resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-1.1.2.tgz#9ae393b5dafd7dae8a622475caec78d3d8fbd7b5"
|
||||
@ -5745,9 +5438,9 @@ dns-equal@^1.0.0:
|
||||
integrity sha1-s55/HabrCnW6nBcySzR1PEfgZU0=
|
||||
|
||||
dns-packet@^1.3.1:
|
||||
version "1.3.1"
|
||||
resolved "https://registry.yarnpkg.com/dns-packet/-/dns-packet-1.3.1.tgz#12aa426981075be500b910eedcd0b47dd7deda5a"
|
||||
integrity sha512-0UxfQkMhYAUaZI+xrNZOz/as5KgDU0M/fQ9b6SpkyLbk3GEswDi6PADJVaYJradtRVsRIlF1zLyOodbcTCDzUg==
|
||||
version "1.3.4"
|
||||
resolved "https://registry.yarnpkg.com/dns-packet/-/dns-packet-1.3.4.tgz#e3455065824a2507ba886c55a89963bb107dec6f"
|
||||
integrity sha512-BQ6F4vycLXBvdrJZ6S3gZewt6rcrks9KBgM9vrhW+knGRqc8uEdT7fuCwloc7nny5xNoMJ17HGH0R/6fpo8ECA==
|
||||
dependencies:
|
||||
ip "^1.1.0"
|
||||
safe-buffer "^5.0.1"
|
||||
@ -5776,14 +5469,6 @@ dockerfile-ast@0.2.0:
|
||||
dependencies:
|
||||
vscode-languageserver-types "^3.16.0"
|
||||
|
||||
dom-helpers@^5.0.1, dom-helpers@^5.1.2, dom-helpers@^5.2.0:
|
||||
version "5.2.0"
|
||||
resolved "https://registry.yarnpkg.com/dom-helpers/-/dom-helpers-5.2.0.tgz#57fd054c5f8f34c52a3eeffdb7e7e93cd357d95b"
|
||||
integrity sha512-Ru5o9+V8CpunKnz5LGgWXkmrH/20cGKwcHwS4m73zIvs54CN9epEmT/HLqFJW3kXpakAFkEdzgy1hzlJe3E4OQ==
|
||||
dependencies:
|
||||
"@babel/runtime" "^7.8.7"
|
||||
csstype "^3.0.2"
|
||||
|
||||
dom-serialize@^2.2.1:
|
||||
version "2.2.1"
|
||||
resolved "https://registry.yarnpkg.com/dom-serialize/-/dom-serialize-2.2.1.tgz#562ae8999f44be5ea3076f5419dcd59eb43ac95b"
|
||||
@ -6175,7 +5860,7 @@ es6-promisify@^5.0.0:
|
||||
dependencies:
|
||||
es6-promise "^4.0.3"
|
||||
|
||||
es6-symbol@^3.1.0, es6-symbol@^3.1.1, es6-symbol@~3.1.3:
|
||||
es6-symbol@^3.1.1, es6-symbol@~3.1.3:
|
||||
version "3.1.3"
|
||||
resolved "https://registry.yarnpkg.com/es6-symbol/-/es6-symbol-3.1.3.tgz#bad5d3c1bcdac28269f4cb331e431c78ac705d18"
|
||||
integrity sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA==
|
||||
@ -6505,11 +6190,6 @@ file-loader@6.2.0, file-loader@^6.2.0:
|
||||
loader-utils "^2.0.0"
|
||||
schema-utils "^3.0.0"
|
||||
|
||||
file-saver@^2.0.5:
|
||||
version "2.0.5"
|
||||
resolved "https://registry.yarnpkg.com/file-saver/-/file-saver-2.0.5.tgz#d61cfe2ce059f414d899e9dd6d4107ee25670c38"
|
||||
integrity sha512-P9bmyZ3h/PRG+Nzga+rbdI4OEpNDzAVyy74uVO9ATgzLK6VtAsYybF/+TOCvrc0MO793d6+42lLyZTw7/ArVzA==
|
||||
|
||||
file-uri-to-path@1.0.0:
|
||||
version "1.0.0"
|
||||
resolved "https://registry.yarnpkg.com/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz#553a7b8446ff6f684359c445f1e37a05dacc33dd"
|
||||
@ -7135,11 +6815,6 @@ html-escaper@^2.0.0:
|
||||
resolved "https://registry.yarnpkg.com/html-escaper/-/html-escaper-2.0.2.tgz#dfd60027da36a36dfcbe236262c00a5822681453"
|
||||
integrity sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==
|
||||
|
||||
html-to-image@^1.3.21:
|
||||
version "1.6.0"
|
||||
resolved "https://registry.yarnpkg.com/html-to-image/-/html-to-image-1.6.0.tgz#fdf1ea5514af96b58cfc85a63eb97614097023ab"
|
||||
integrity sha512-omzkdNnZOacH7udio09I3eGkOrE8VcpzabQbLYmjojpi+FmtofpNY9lHV2fn2DaDO9G9p10O3E8SF5HHgFhSWg==
|
||||
|
||||
http-cache-semantics@^4.0.0, http-cache-semantics@^4.1.0:
|
||||
version "4.1.0"
|
||||
resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz#49e91c5cbf36c9b94bcfcd71c23d5249ec74e390"
|
||||
@ -7420,13 +7095,6 @@ internal-ip@^4.3.0:
|
||||
default-gateway "^4.2.0"
|
||||
ipaddr.js "^1.9.0"
|
||||
|
||||
invariant@^2.2.4:
|
||||
version "2.2.4"
|
||||
resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.4.tgz#610f3c92c9359ce1db616e538008d23ff35158e6"
|
||||
integrity sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==
|
||||
dependencies:
|
||||
loose-envify "^1.0.0"
|
||||
|
||||
ip-regex@^2.1.0:
|
||||
version "2.1.0"
|
||||
resolved "https://registry.yarnpkg.com/ip-regex/-/ip-regex-2.1.0.tgz#fa78bf5d2e6913c911ce9f819ee5146bb6d844e9"
|
||||
@ -7944,7 +7612,7 @@ jquery@^3.6.0:
|
||||
resolved "https://registry.yarnpkg.com/jquery/-/jquery-3.6.0.tgz#c72a09f15c1bdce142f49dbf1170bdf8adac2470"
|
||||
integrity sha512-JVzAR/AjBvVt2BmYhxRCSYysDsPcssdmTFnzyLEts9qNwmjmu4JTAMYubEfwVOSwpQ1I1sKKFcxhZCI2buerfw==
|
||||
|
||||
"js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0:
|
||||
js-tokens@^4.0.0:
|
||||
version "4.0.0"
|
||||
resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499"
|
||||
integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==
|
||||
@ -8354,11 +8022,6 @@ locate-path@^5.0.0:
|
||||
dependencies:
|
||||
p-locate "^4.1.0"
|
||||
|
||||
lodash-es@^4.17.20:
|
||||
version "4.17.20"
|
||||
resolved "https://registry.yarnpkg.com/lodash-es/-/lodash-es-4.17.20.tgz#29f6332eefc60e849f869c264bc71126ad61e8f7"
|
||||
integrity sha512-JD1COMZsq8maT6mnuz1UMV0jvYD0E0aUsSOdrr1/nAG3dhqQXwRRgeW0cSqH1U43INKcqxaiVIQNOUDld7gRDA==
|
||||
|
||||
lodash.assign@^4.2.0:
|
||||
version "4.2.0"
|
||||
resolved "https://registry.yarnpkg.com/lodash.assign/-/lodash.assign-4.2.0.tgz#0d99f3ccd7a6d261d19bdaeb9245005d285808e7"
|
||||
@ -8599,7 +8262,7 @@ lodash.values@^4.3.0:
|
||||
resolved "https://registry.yarnpkg.com/lodash.values/-/lodash.values-4.3.0.tgz#a3a6c2b0ebecc5c2cba1c17e6e620fe81b53d347"
|
||||
integrity sha1-o6bCsOvsxcLLocF+bmIP6BtT00c=
|
||||
|
||||
lodash@^4.17.10, lodash@^4.17.20, lodash@^4.17.5:
|
||||
lodash@^4.17.10, lodash@^4.17.5:
|
||||
version "4.17.20"
|
||||
resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.20.tgz#b44a9b6297bcb698f1c51a3545a2b3b368d59c52"
|
||||
integrity sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==
|
||||
@ -8609,13 +8272,6 @@ lodash@^4.17.11, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.19:
|
||||
resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c"
|
||||
integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==
|
||||
|
||||
log-symbols@^3.0.0:
|
||||
version "3.0.0"
|
||||
resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-3.0.0.tgz#f3a08516a5dea893336a7dee14d18a1cfdab77c4"
|
||||
integrity sha512-dSkNGuI7iG3mfvDzUuYZyvk5dD9ocYCYzNU6CYDE6+Xqd+gwme6Z00NS3dUh8mq/73HaEtT7m6W+yUPtU6BZnQ==
|
||||
dependencies:
|
||||
chalk "^2.4.2"
|
||||
|
||||
log-symbols@^4.0.0:
|
||||
version "4.0.0"
|
||||
resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-4.0.0.tgz#69b3cc46d20f448eccdb75ea1fa733d9e821c920"
|
||||
@ -8639,13 +8295,6 @@ loglevel@^1.6.8:
|
||||
resolved "https://registry.yarnpkg.com/loglevel/-/loglevel-1.7.1.tgz#005fde2f5e6e47068f935ff28573e125ef72f197"
|
||||
integrity sha512-Hesni4s5UkWkwCGJMQGAh71PaLUmKFM60dHvq0zi/vDhhrzuk+4GgNbTXJ12YYQJn6ZKBDNIjYcuQGKudvqrIw==
|
||||
|
||||
loose-envify@^1.0.0, loose-envify@^1.1.0, loose-envify@^1.4.0:
|
||||
version "1.4.0"
|
||||
resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf"
|
||||
integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==
|
||||
dependencies:
|
||||
js-tokens "^3.0.0 || ^4.0.0"
|
||||
|
||||
lowercase-keys@^1.0.0, lowercase-keys@^1.0.1:
|
||||
version "1.0.1"
|
||||
resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-1.0.1.tgz#6f9e30b47084d971a7c820ff15a6c5167b74c26f"
|
||||
@ -9052,7 +8701,7 @@ mkdirp@^1.0.3, mkdirp@^1.0.4, mkdirp@~1.0.4:
|
||||
resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e"
|
||||
integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==
|
||||
|
||||
mousetrap@^1.6.0:
|
||||
mousetrap@^1.6.5:
|
||||
version "1.6.5"
|
||||
resolved "https://registry.yarnpkg.com/mousetrap/-/mousetrap-1.6.5.tgz#8a766d8c272b08393d5f56074e0b5ec183485bf9"
|
||||
integrity sha512-QNo4kEepaIBwiT8CDhP98umTetp+JNfQYBWvC1pc6/OAibuXtRcxZ58Qz8skvEHYvURne/7R8T5VoOI7rDsEUA==
|
||||
@ -9492,25 +9141,6 @@ obuf@^1.0.0, obuf@^1.1.2:
|
||||
resolved "https://registry.yarnpkg.com/obuf/-/obuf-1.1.2.tgz#09bea3343d41859ebd446292d11c9d4db619084e"
|
||||
integrity sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==
|
||||
|
||||
office-ui-fabric-react@^7.170.0:
|
||||
version "7.170.0"
|
||||
resolved "https://registry.yarnpkg.com/office-ui-fabric-react/-/office-ui-fabric-react-7.170.0.tgz#9cffedaa2bd4921fee84b413f9a581f5b25114d9"
|
||||
integrity sha512-N348H5dS56oMrnKeZP1p7h2o+lO9wUY9YEHiVZ0FYpB8gmRwgJVq8/d2hSfZEgQH14IMbhdLYNE8RFziYyHFsw==
|
||||
dependencies:
|
||||
"@fluentui/date-time-utilities" "^7.9.1"
|
||||
"@fluentui/react-focus" "^7.17.6"
|
||||
"@fluentui/react-window-provider" "^1.0.2"
|
||||
"@microsoft/load-themed-styles" "^1.10.26"
|
||||
"@uifabric/foundation" "^7.9.26"
|
||||
"@uifabric/icons" "^7.5.23"
|
||||
"@uifabric/merge-styles" "^7.19.2"
|
||||
"@uifabric/react-hooks" "^7.14.0"
|
||||
"@uifabric/set-version" "^7.0.24"
|
||||
"@uifabric/styling" "^7.19.0"
|
||||
"@uifabric/utilities" "^7.33.5"
|
||||
prop-types "^15.7.2"
|
||||
tslib "^1.10.0"
|
||||
|
||||
on-finished@~2.3.0:
|
||||
version "2.3.0"
|
||||
resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947"
|
||||
@ -9567,34 +9197,6 @@ opn@^5.5.0:
|
||||
dependencies:
|
||||
is-wsl "^1.1.0"
|
||||
|
||||
ora@4.0.3:
|
||||
version "4.0.3"
|
||||
resolved "https://registry.yarnpkg.com/ora/-/ora-4.0.3.tgz#752a1b7b4be4825546a7a3d59256fa523b6b6d05"
|
||||
integrity sha512-fnDebVFyz309A73cqCipVL1fBZewq4vwgSHfxh43vVy31mbyoQ8sCH3Oeaog/owYOs/lLlGVPCISQonTneg6Pg==
|
||||
dependencies:
|
||||
chalk "^3.0.0"
|
||||
cli-cursor "^3.1.0"
|
||||
cli-spinners "^2.2.0"
|
||||
is-interactive "^1.0.0"
|
||||
log-symbols "^3.0.0"
|
||||
mute-stream "0.0.8"
|
||||
strip-ansi "^6.0.0"
|
||||
wcwidth "^1.0.1"
|
||||
|
||||
ora@5.0.0:
|
||||
version "5.0.0"
|
||||
resolved "https://registry.yarnpkg.com/ora/-/ora-5.0.0.tgz#4f0b34f2994877b49b452a707245ab1e9f6afccb"
|
||||
integrity sha512-s26qdWqke2kjN/wC4dy+IQPBIMWBJlSU/0JZhk30ZDBLelW25rv66yutUWARMigpGPzcXHb+Nac5pNhN/WsARw==
|
||||
dependencies:
|
||||
chalk "^4.1.0"
|
||||
cli-cursor "^3.1.0"
|
||||
cli-spinners "^2.4.0"
|
||||
is-interactive "^1.0.0"
|
||||
log-symbols "^4.0.0"
|
||||
mute-stream "0.0.8"
|
||||
strip-ansi "^6.0.0"
|
||||
wcwidth "^1.0.1"
|
||||
|
||||
ora@5.3.0:
|
||||
version "5.3.0"
|
||||
resolved "https://registry.yarnpkg.com/ora/-/ora-5.3.0.tgz#fb832899d3a1372fe71c8b2c534bbfe74961bb6f"
|
||||
@ -10427,23 +10029,6 @@ promiseback@^2.0.2:
|
||||
is-callable "^1.1.5"
|
||||
promise-deferred "^2.0.3"
|
||||
|
||||
prop-types-extra@^1.1.0:
|
||||
version "1.1.1"
|
||||
resolved "https://registry.yarnpkg.com/prop-types-extra/-/prop-types-extra-1.1.1.tgz#58c3b74cbfbb95d304625975aa2f0848329a010b"
|
||||
integrity sha512-59+AHNnHYCdiC+vMwY52WmvP5dM3QLeoumYuEyceQDi9aEhtwN9zIQ2ZNo25sMyXnbh32h+P1ezDsUpUH3JAew==
|
||||
dependencies:
|
||||
react-is "^16.3.2"
|
||||
warning "^4.0.0"
|
||||
|
||||
prop-types@^15.6.2, prop-types@^15.7.2:
|
||||
version "15.7.2"
|
||||
resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.7.2.tgz#52c41e75b8c87e72b9d9360e0206b99dcbffa6c5"
|
||||
integrity sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ==
|
||||
dependencies:
|
||||
loose-envify "^1.4.0"
|
||||
object-assign "^4.1.1"
|
||||
react-is "^16.8.1"
|
||||
|
||||
proto-list@~1.2.1:
|
||||
version "1.2.4"
|
||||
resolved "https://registry.yarnpkg.com/proto-list/-/proto-list-1.2.4.tgz#212d5bfe1318306a420f6402b8e26ff39647a849"
|
||||
@ -10667,86 +10252,11 @@ rc@^1.2.8:
|
||||
minimist "^1.2.0"
|
||||
strip-json-comments "~2.0.1"
|
||||
|
||||
react-bootstrap@^1.5.2:
|
||||
version "1.5.2"
|
||||
resolved "https://registry.yarnpkg.com/react-bootstrap/-/react-bootstrap-1.5.2.tgz#07dabec53d10491a520c49f102170b440fa89008"
|
||||
integrity sha512-mGKPY5+lLd7Vtkx2VFivoRkPT4xAHazuFfIhJLTEgHlDfIUSePn7qrmpZe5gXH9zvHV0RsBaQ9cLfXjxnZrOpA==
|
||||
dependencies:
|
||||
"@babel/runtime" "^7.13.8"
|
||||
"@restart/context" "^2.1.4"
|
||||
"@restart/hooks" "^0.3.26"
|
||||
"@types/classnames" "^2.2.10"
|
||||
"@types/invariant" "^2.2.33"
|
||||
"@types/prop-types" "^15.7.3"
|
||||
"@types/react" ">=16.9.35"
|
||||
"@types/react-transition-group" "^4.4.1"
|
||||
"@types/warning" "^3.0.0"
|
||||
classnames "^2.2.6"
|
||||
dom-helpers "^5.1.2"
|
||||
invariant "^2.2.4"
|
||||
prop-types "^15.7.2"
|
||||
prop-types-extra "^1.1.0"
|
||||
react-overlays "^5.0.0"
|
||||
react-transition-group "^4.4.1"
|
||||
uncontrollable "^7.2.1"
|
||||
warning "^4.0.3"
|
||||
|
||||
react-dom@^17.0.2:
|
||||
version "17.0.2"
|
||||
resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-17.0.2.tgz#ecffb6845e3ad8dbfcdc498f0d0a939736502c23"
|
||||
integrity sha512-s4h96KtLDUQlsENhMn1ar8t2bEa+q/YAtj8pPPdIjPDGBDIVNsrD9aXNWqspUe6AzKCIG0C1HZZLqLV7qpOBGA==
|
||||
dependencies:
|
||||
loose-envify "^1.1.0"
|
||||
object-assign "^4.1.1"
|
||||
scheduler "^0.20.2"
|
||||
|
||||
react-is@^16.3.2, react-is@^16.8.1:
|
||||
version "16.13.1"
|
||||
resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4"
|
||||
integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==
|
||||
|
||||
react-is@^17.0.1:
|
||||
version "17.0.1"
|
||||
resolved "https://registry.yarnpkg.com/react-is/-/react-is-17.0.1.tgz#5b3531bd76a645a4c9fb6e693ed36419e3301339"
|
||||
integrity sha512-NAnt2iGDXohE5LI7uBnLnqvLQMtzhkiAOLXTmv+qnF9Ky7xAPcX8Up/xWIhxvLVGJvuLiNc4xQLtuqDRzb4fSA==
|
||||
|
||||
react-lifecycles-compat@^3.0.4:
|
||||
version "3.0.4"
|
||||
resolved "https://registry.yarnpkg.com/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz#4f1a273afdfc8f3488a8c516bfda78f872352362"
|
||||
integrity sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA==
|
||||
|
||||
react-overlays@^5.0.0:
|
||||
version "5.0.0"
|
||||
resolved "https://registry.yarnpkg.com/react-overlays/-/react-overlays-5.0.0.tgz#b50351de194dda0706b40f9632d261c9f0011c4c"
|
||||
integrity sha512-TKbqfAv23TFtCJ2lzISdx76p97G/DP8Rp4TOFdqM9n8GTruVYgE3jX7Zgb8+w7YJ18slTVcDTQ1/tFzdCqjVhA==
|
||||
dependencies:
|
||||
"@babel/runtime" "^7.12.1"
|
||||
"@popperjs/core" "^2.5.3"
|
||||
"@restart/hooks" "^0.3.25"
|
||||
"@types/warning" "^3.0.0"
|
||||
dom-helpers "^5.2.0"
|
||||
prop-types "^15.7.2"
|
||||
uncontrollable "^7.0.0"
|
||||
warning "^4.0.3"
|
||||
|
||||
react-transition-group@^4.4.1:
|
||||
version "4.4.1"
|
||||
resolved "https://registry.yarnpkg.com/react-transition-group/-/react-transition-group-4.4.1.tgz#63868f9325a38ea5ee9535d828327f85773345c9"
|
||||
integrity sha512-Djqr7OQ2aPUiYurhPalTrVy9ddmFCCzwhqQmtN+J3+3DzLO209Fdr70QrN8Z3DsglWql6iY1lDWAfpFiBtuKGw==
|
||||
dependencies:
|
||||
"@babel/runtime" "^7.5.5"
|
||||
dom-helpers "^5.0.1"
|
||||
loose-envify "^1.4.0"
|
||||
prop-types "^15.6.2"
|
||||
|
||||
react@^17.0.2:
|
||||
version "17.0.2"
|
||||
resolved "https://registry.yarnpkg.com/react/-/react-17.0.2.tgz#d0b5cc516d29eb3eee383f75b62864cfb6800037"
|
||||
integrity sha512-gnhPt75i/dq/z3/6q/0asP78D0u592D5L1pd7M8P+dck6Fu/jJeL6iVVK23fptSUZj8Vjf++7wXA8UNclGQcbA==
|
||||
dependencies:
|
||||
loose-envify "^1.1.0"
|
||||
object-assign "^4.1.1"
|
||||
|
||||
read-cache@^1.0.0:
|
||||
version "1.0.0"
|
||||
resolved "https://registry.yarnpkg.com/read-cache/-/read-cache-1.0.0.tgz#e664ef31161166c9751cdbe8dbcf86b5fb58f774"
|
||||
@ -11216,20 +10726,6 @@ rxjs-tslint@^0.1.8:
|
||||
typescript ">=2.8.3"
|
||||
yargs "^15.3.1"
|
||||
|
||||
rxjs@6.5.4:
|
||||
version "6.5.4"
|
||||
resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.5.4.tgz#e0777fe0d184cec7872df147f303572d414e211c"
|
||||
integrity sha512-naMQXcgEo3csAEGvw/NydRA0fuS2nDZJiw1YUWFKU7aPPAPGZEsD4Iimit96qwCieH6y614MCLYwdkrWx7z/7Q==
|
||||
dependencies:
|
||||
tslib "^1.9.0"
|
||||
|
||||
rxjs@6.6.2:
|
||||
version "6.6.2"
|
||||
resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.6.2.tgz#8096a7ac03f2cc4fe5860ef6e572810d9e01c0d2"
|
||||
integrity sha512-BHdBMVoWC2sL26w//BCu3YzKT4s2jip/WhwsGEDmeKYBhKDZeYezVUnHatYB7L85v5xs0BAQmg6BEYJEKxBabg==
|
||||
dependencies:
|
||||
tslib "^1.9.0"
|
||||
|
||||
rxjs@6.6.3, rxjs@^6.5.3, rxjs@^6.6.0:
|
||||
version "6.6.3"
|
||||
resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.6.3.tgz#8ca84635c4daa900c0d3967a6ee7ac60271ee552"
|
||||
@ -11291,13 +10787,6 @@ sass@1.32.6:
|
||||
dependencies:
|
||||
chokidar ">=2.0.0 <4.0.0"
|
||||
|
||||
sass@^1.29.0:
|
||||
version "1.32.7"
|
||||
resolved "https://registry.yarnpkg.com/sass/-/sass-1.32.7.tgz#632a9df2b85dc4b346977fcaf2d5e6f2b7039fd8"
|
||||
integrity sha512-C8Z4bjqGWnsYa11o8hpKAuoyFdRhrSHcYjCr+XAWVPSIQqC8mp2f5Dx4em0dKYehPzg5XSekmCjqJnEZbIls9A==
|
||||
dependencies:
|
||||
chokidar ">=2.0.0 <4.0.0"
|
||||
|
||||
saucelabs@^1.5.0:
|
||||
version "1.5.0"
|
||||
resolved "https://registry.yarnpkg.com/saucelabs/-/saucelabs-1.5.0.tgz#9405a73c360d449b232839919a86c396d379fd9d"
|
||||
@ -11305,15 +10794,6 @@ saucelabs@^1.5.0:
|
||||
dependencies:
|
||||
https-proxy-agent "^2.2.1"
|
||||
|
||||
save-html-as-image@^1.5.2:
|
||||
version "1.5.2"
|
||||
resolved "https://registry.yarnpkg.com/save-html-as-image/-/save-html-as-image-1.5.2.tgz#e8952c0d2eb4a976c7a93d6a17fe4f753df34875"
|
||||
integrity sha512-WE4+UBgYWnDOxCtmfvAIOXZE2pPcB0Tuo5gxfcvvHdhJ2dOO6vAIx8mA1PXzK/B3977YrFiYdVPEswp6KrXjHw==
|
||||
dependencies:
|
||||
file-saver "^2.0.5"
|
||||
html-to-image "^1.3.21"
|
||||
save-svg-as-png "^1.4.17"
|
||||
|
||||
save-svg-as-png@^1.4.17:
|
||||
version "1.4.17"
|
||||
resolved "https://registry.yarnpkg.com/save-svg-as-png/-/save-svg-as-png-1.4.17.tgz#294442002772a24f1db1bf8a2aaf7df4ab0cdc55"
|
||||
@ -11324,14 +10804,6 @@ sax@>=0.6.0, sax@^1.2.4, sax@~1.2.4:
|
||||
resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9"
|
||||
integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==
|
||||
|
||||
scheduler@^0.20.2:
|
||||
version "0.20.2"
|
||||
resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.20.2.tgz#4baee39436e34aa93b4874bddcbf0fe8b8b50e91"
|
||||
integrity sha512-2eWfGgAqqWFGqtdMmcL5zCMK1U8KlXv8SQFGglL3CEtd0aDVDWgeF/YoCmvln55m5zSk3J/20hTaSBeSObsQDQ==
|
||||
dependencies:
|
||||
loose-envify "^1.1.0"
|
||||
object-assign "^4.1.1"
|
||||
|
||||
schema-utils@^1.0.0:
|
||||
version "1.0.0"
|
||||
resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-1.0.0.tgz#0b79a93204d7b600d4b2850d1f66c2a34951c770"
|
||||
@ -11359,18 +10831,6 @@ schema-utils@^3.0.0:
|
||||
ajv "^6.12.5"
|
||||
ajv-keywords "^3.5.2"
|
||||
|
||||
schematics-scss-migrate@^1.3.13:
|
||||
version "1.3.13"
|
||||
resolved "https://registry.yarnpkg.com/schematics-scss-migrate/-/schematics-scss-migrate-1.3.13.tgz#daa9529a0dc7b6c6a87bc50ff1d78872e0845e29"
|
||||
integrity sha512-gQNTzq4tj8wDNOnsrIDRETvEDgesHYexHc9w62H71UBrbw2j2xa773qcmV3ofI/KXqC8XQTKUwwVDPvIPqNMng==
|
||||
dependencies:
|
||||
"@angular-devkit/core" "^10.1.0"
|
||||
"@angular-devkit/schematics" "^10.1.0"
|
||||
"@schematics/angular" "^9.1.0"
|
||||
glob "^7.1.6"
|
||||
sass "^1.29.0"
|
||||
typescript "~4.0.2"
|
||||
|
||||
select-hose@^2.0.0:
|
||||
version "2.0.0"
|
||||
resolved "https://registry.yarnpkg.com/select-hose/-/select-hose-2.0.0.tgz#625d8658f865af43ec962bfc376a37359a4994ca"
|
||||
@ -12490,13 +11950,6 @@ stylehacks@^5.0.0:
|
||||
browserslist "^4.16.0"
|
||||
postcss-selector-parser "^6.0.4"
|
||||
|
||||
stylenames@^1.1.6:
|
||||
version "1.1.6"
|
||||
resolved "https://registry.yarnpkg.com/stylenames/-/stylenames-1.1.6.tgz#185641ea9261906a5c350ac6836f4ef67caf867f"
|
||||
integrity sha1-GFZB6pJhkGpcNQrGg29O9nyvhn8=
|
||||
dependencies:
|
||||
es6-symbol "^3.1.0"
|
||||
|
||||
stylus-loader@4.3.3:
|
||||
version "4.3.3"
|
||||
resolved "https://registry.yarnpkg.com/stylus-loader/-/stylus-loader-4.3.3.tgz#381bb6341272ac50bcdfd0b877707eac99b6b757"
|
||||
@ -13055,26 +12508,11 @@ typescript@4.1.5, typescript@>=2.8.3:
|
||||
resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.1.5.tgz#123a3b214aaff3be32926f0d8f1f6e704eb89a72"
|
||||
integrity sha512-6OSu9PTIzmn9TCDiovULTnET6BgXtDYL4Gg4szY+cGsc3JP1dQL8qvE8kShTRx1NIw4Q9IBHlwODjkjWEtMUyA==
|
||||
|
||||
typescript@~4.0.2:
|
||||
version "4.0.7"
|
||||
resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.0.7.tgz#7168032c43d2a2671c95c07812f69523c79590af"
|
||||
integrity sha512-yi7M4y74SWvYbnazbn8/bmJmX4Zlej39ZOqwG/8dut/MYoSQ119GY9ZFbbGsD4PFZYWxqik/XsP3vk3+W5H3og==
|
||||
|
||||
ua-parser-js@^0.7.23:
|
||||
version "0.7.24"
|
||||
resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-0.7.24.tgz#8d3ecea46ed4f1f1d63ec25f17d8568105dc027c"
|
||||
integrity sha512-yo+miGzQx5gakzVK3QFfN0/L9uVhosXBBO7qmnk7c2iw1IhL212wfA3zbnI54B0obGwC/5NWub/iT9sReMx+Fw==
|
||||
|
||||
uncontrollable@^7.0.0, uncontrollable@^7.2.1:
|
||||
version "7.2.1"
|
||||
resolved "https://registry.yarnpkg.com/uncontrollable/-/uncontrollable-7.2.1.tgz#1fa70ba0c57a14d5f78905d533cf63916dc75738"
|
||||
integrity sha512-svtcfoTADIB0nT9nltgjujTi7BzVmwjZClOmskKu/E8FW9BXzg9os8OLr4f8Dlnk0rYWJIWr4wv9eKUXiQvQwQ==
|
||||
dependencies:
|
||||
"@babel/runtime" "^7.6.3"
|
||||
"@types/react" ">=16.9.11"
|
||||
invariant "^2.2.4"
|
||||
react-lifecycles-compat "^3.0.4"
|
||||
|
||||
unicode-canonical-property-names-ecmascript@^1.0.4:
|
||||
version "1.0.4"
|
||||
resolved "https://registry.yarnpkg.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz#2619800c4c825800efdd8343af7dd9933cbe2818"
|
||||
@ -13351,13 +12789,6 @@ vscode-languageserver-types@^3.16.0:
|
||||
resolved "https://registry.yarnpkg.com/vscode-languageserver-types/-/vscode-languageserver-types-3.16.0.tgz#ecf393fc121ec6974b2da3efb3155644c514e247"
|
||||
integrity sha512-k8luDIWJWyenLc5ToFQQMaSrqCHiLwyKPHKPQZ5zz21vM+vIVUSvsRpcbiECH4WR88K2XZqc4ScRcZ7nk/jbeA==
|
||||
|
||||
warning@^4.0.0, warning@^4.0.3:
|
||||
version "4.0.3"
|
||||
resolved "https://registry.yarnpkg.com/warning/-/warning-4.0.3.tgz#16e9e077eb8a86d6af7d64aa1e05fd85b4678ca3"
|
||||
integrity sha512-rpJyN222KWIvHJ/F53XSZv0Zl/accqHR8et1kpaMTD/fLCRxtV8iX8czMzY7sVZupTI3zcUTg8eycS2kNF9l6w==
|
||||
dependencies:
|
||||
loose-envify "^1.0.0"
|
||||
|
||||
watchpack-chokidar2@^2.0.1:
|
||||
version "2.0.1"
|
||||
resolved "https://registry.yarnpkg.com/watchpack-chokidar2/-/watchpack-chokidar2-2.0.1.tgz#38500072ee6ece66f3769936950ea1771be1c957"
|
||||
|
Loading…
Reference in New Issue
Block a user