├── src
├── Blazor.Extensions.XTerm
│ ├── XTerm.razor
│ ├── Blazor.Extensions.XTerm.csproj
│ ├── TerminalManager.cs
│ ├── TerminalOptions.cs
│ └── XTermComponent.cs
├── Blazor.Extensions.XTerm.JS
│ ├── tslint.json
│ ├── tsconfig.json
│ ├── package.json
│ ├── tsfmt.json
│ ├── webpack.config.js
│ ├── src
│ │ ├── InitializeXTerm.ts
│ │ └── TerminalManager.ts
│ └── Blazor.Extensions.XTerm.JS.csproj
├── Directory.Build.targets
└── Directory.Build.props
├── test
├── Blazor.Extensions.XTerm.Tests
│ ├── App.razor
│ ├── wwwroot
│ │ ├── css
│ │ │ ├── open-iconic
│ │ │ │ ├── font
│ │ │ │ │ ├── fonts
│ │ │ │ │ │ ├── open-iconic.eot
│ │ │ │ │ │ ├── open-iconic.otf
│ │ │ │ │ │ ├── open-iconic.ttf
│ │ │ │ │ │ ├── open-iconic.woff
│ │ │ │ │ │ └── open-iconic.svg
│ │ │ │ │ └── css
│ │ │ │ │ │ └── open-iconic-bootstrap.min.css
│ │ │ │ ├── ICON-LICENSE
│ │ │ │ ├── README.md
│ │ │ │ └── FONT-LICENSE
│ │ │ └── site.css
│ │ ├── index.html
│ │ └── sample-data
│ │ │ └── weather.json
│ ├── _Imports.razor
│ ├── Shared
│ │ ├── MainLayout.razor
│ │ └── NavMenu.razor
│ ├── Startup.cs
│ ├── Program.cs
│ ├── Blazor.Extensions.XTerm.Tests.csproj
│ └── Pages
│ │ └── Index.razor
└── Directory.Build.props
├── Directory.Build.targets
├── .vsts-ci.yml
├── LICENSE
├── README.md
├── .vsys-release.yml
├── Directory.Build.props
├── XTerm.sln
├── .gitignore
└── .editorconfig
/src/Blazor.Extensions.XTerm/XTerm.razor:
--------------------------------------------------------------------------------
1 | @inherits XTermComponent
2 |
3 |
--------------------------------------------------------------------------------
/test/Blazor.Extensions.XTerm.Tests/App.razor:
--------------------------------------------------------------------------------
1 |
2 |
3 | Sorry, there's nothing at this address.
4 |
5 |
6 |
--------------------------------------------------------------------------------
/test/Blazor.Extensions.XTerm.Tests/wwwroot/css/open-iconic/font/fonts/open-iconic.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BlazorExtensions/XTerm/HEAD/test/Blazor.Extensions.XTerm.Tests/wwwroot/css/open-iconic/font/fonts/open-iconic.eot
--------------------------------------------------------------------------------
/test/Blazor.Extensions.XTerm.Tests/wwwroot/css/open-iconic/font/fonts/open-iconic.otf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BlazorExtensions/XTerm/HEAD/test/Blazor.Extensions.XTerm.Tests/wwwroot/css/open-iconic/font/fonts/open-iconic.otf
--------------------------------------------------------------------------------
/test/Blazor.Extensions.XTerm.Tests/wwwroot/css/open-iconic/font/fonts/open-iconic.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BlazorExtensions/XTerm/HEAD/test/Blazor.Extensions.XTerm.Tests/wwwroot/css/open-iconic/font/fonts/open-iconic.ttf
--------------------------------------------------------------------------------
/test/Blazor.Extensions.XTerm.Tests/wwwroot/css/open-iconic/font/fonts/open-iconic.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BlazorExtensions/XTerm/HEAD/test/Blazor.Extensions.XTerm.Tests/wwwroot/css/open-iconic/font/fonts/open-iconic.woff
--------------------------------------------------------------------------------
/Directory.Build.targets:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | $(Version). Commit Hash: $(GitHeadSha)
5 |
6 |
--------------------------------------------------------------------------------
/test/Blazor.Extensions.XTerm.Tests/_Imports.razor:
--------------------------------------------------------------------------------
1 | @using System.Net.Http
2 | @using Microsoft.AspNetCore.Components.Forms
3 | @using Microsoft.AspNetCore.Components.Layouts
4 | @using Microsoft.AspNetCore.Components.Routing
5 | @using Microsoft.JSInterop
6 | @using Blazor.Extensions.XTerm.Tests
7 | @using Blazor.Extensions.XTerm.Tests.Shared
8 |
--------------------------------------------------------------------------------
/src/Blazor.Extensions.XTerm.JS/tslint.json:
--------------------------------------------------------------------------------
1 | {
2 | "rules": {
3 | "no-string-throw": true,
4 | "no-unused-expression": true,
5 | "no-duplicate-variable": true,
6 | "curly": true,
7 | "class-name": true,
8 | "semicolon": [
9 | true,
10 | "always"
11 | ],
12 | "triple-equals": true
13 | },
14 | "defaultSeverity": "warning"
15 | }
--------------------------------------------------------------------------------
/test/Blazor.Extensions.XTerm.Tests/Shared/MainLayout.razor:
--------------------------------------------------------------------------------
1 | @inherits LayoutComponentBase
2 |
3 |
6 |
7 |
8 |
11 |
12 |
13 | @Body
14 |
15 |
16 |
--------------------------------------------------------------------------------
/src/Blazor.Extensions.XTerm.JS/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "noImplicitAny": false,
4 | "noEmitOnError": true,
5 | "removeComments": true,
6 | "sourceMap": true,
7 | "target": "es6",
8 | "module": "commonjs",
9 | "lib": [
10 | "es2016",
11 | "dom"
12 | ],
13 | "strict": true,
14 | "alwaysStrict": true,
15 | "preserveConstEnums": true
16 | },
17 | "exclude": [
18 | "node_modules"
19 | ]
20 | }
--------------------------------------------------------------------------------
/test/Blazor.Extensions.XTerm.Tests/Startup.cs:
--------------------------------------------------------------------------------
1 | using Microsoft.AspNetCore.Components.Builder;
2 | using Microsoft.Extensions.DependencyInjection;
3 |
4 | namespace Blazor.Extensions.XTerm.Tests
5 | {
6 | public class Startup
7 | {
8 | public void ConfigureServices(IServiceCollection services)
9 | {
10 | }
11 |
12 | public void Configure(IComponentsApplicationBuilder app)
13 | {
14 | app.AddComponent("app");
15 | }
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/test/Blazor.Extensions.XTerm.Tests/Program.cs:
--------------------------------------------------------------------------------
1 | using Microsoft.AspNetCore.Blazor.Hosting;
2 |
3 | namespace Blazor.Extensions.XTerm.Tests
4 | {
5 | public class Program
6 | {
7 | public static void Main(string[] args)
8 | {
9 | CreateHostBuilder(args).Build().Run();
10 | }
11 |
12 | public static IWebAssemblyHostBuilder CreateHostBuilder(string[] args) =>
13 | BlazorWebAssemblyHost.CreateDefaultBuilder()
14 | .UseBlazorStartup();
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/test/Blazor.Extensions.XTerm.Tests/wwwroot/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | Blazor.Extensions.XTerm.Tests
7 |
8 |
9 |
10 |
11 |
12 | Loading...
13 |
14 |
15 |
16 |
17 |
--------------------------------------------------------------------------------
/src/Directory.Build.targets:
--------------------------------------------------------------------------------
1 |
2 |
3 | <_ParentDirectoryBuildTargetsPath Condition="'$(_DirectoryBuildPropsFile)' != ''">$([System.IO.Path]::Combine('..', '$(_DirectoryBuildTargetsFile)'))
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/src/Blazor.Extensions.XTerm.JS/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "blazor.extensions.xterm",
3 | "version": "0.0.1",
4 | "description": "",
5 | "main": "index.js",
6 | "scripts": {
7 | "build": "webpack-cli",
8 | "test": "echo \"Error: no test specified\" && exit 1"
9 | },
10 | "dependencies": {
11 | "xterm": "^3.14.5",
12 | "xterm-addon-fit": "^0.1.0",
13 | "xterm-addon-search": "^0.1.0",
14 | "xterm-addon-web-links": "^0.1.0"
15 | },
16 | "devDependencies": {
17 | "copy-webpack-plugin": "^5.0.4",
18 | "ts-loader": "^6.0.4",
19 | "typescript": "^3.5.3",
20 | "webpack": "^4.39.1",
21 | "webpack-cli": "^3.3.6"
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/src/Directory.Build.props:
--------------------------------------------------------------------------------
1 |
2 |
3 | <_ParentDirectoryBuildPropsPath Condition="'$(_DirectoryBuildPropsFile)' != ''">$([System.IO.Path]::Combine('..', '$(_DirectoryBuildPropsFile)'))
4 |
5 |
6 |
7 |
8 |
9 | true
10 |
11 |
12 |
13 |
14 | true
15 | https://github.com/BlazorExtensions/XTerm
16 |
17 |
--------------------------------------------------------------------------------
/test/Blazor.Extensions.XTerm.Tests/wwwroot/sample-data/weather.json:
--------------------------------------------------------------------------------
1 | [
2 | {
3 | "date": "2018-05-06",
4 | "temperatureC": 1,
5 | "summary": "Freezing",
6 | "temperatureF": 33
7 | },
8 | {
9 | "date": "2018-05-07",
10 | "temperatureC": 14,
11 | "summary": "Bracing",
12 | "temperatureF": 57
13 | },
14 | {
15 | "date": "2018-05-08",
16 | "temperatureC": -13,
17 | "summary": "Freezing",
18 | "temperatureF": 9
19 | },
20 | {
21 | "date": "2018-05-09",
22 | "temperatureC": -16,
23 | "summary": "Balmy",
24 | "temperatureF": 4
25 | },
26 | {
27 | "date": "2018-05-10",
28 | "temperatureC": -2,
29 | "summary": "Chilly",
30 | "temperatureF": 29
31 | }
32 | ]
33 |
--------------------------------------------------------------------------------
/src/Blazor.Extensions.XTerm.JS/tsfmt.json:
--------------------------------------------------------------------------------
1 | {
2 | "tabSize": 2,
3 | "indentSize": 2,
4 | "convertTabsToSpaces": true,
5 | "insertSpaceAfterCommaDelimiter": true,
6 | "insertSpaceAfterSemicolonInForStatements": true,
7 | "insertSpaceBeforeAndAfterBinaryOperators": true,
8 | "insertSpaceAfterKeywordsInControlFlowStatements": true,
9 | "insertSpaceAfterFunctionKeywordForAnonymousFunctions": true,
10 | "insertSpaceAfterOpeningAndBeforeClosingNonemptyParenthesis": false,
11 | "insertSpaceAfterOpeningAndBeforeClosingNonemptyBrackets": false,
12 | "insertSpaceAfterOpeningAndBeforeClosingTemplateStringBraces": false,
13 | "insertSpaceBeforeFunctionParenthesis": false,
14 | "placeOpenBraceOnNewLineForFunctions": false,
15 | "placeOpenBraceOnNewLineForControlBlocks": false
16 | }
--------------------------------------------------------------------------------
/src/Blazor.Extensions.XTerm.JS/webpack.config.js:
--------------------------------------------------------------------------------
1 | const path = require("path");
2 | const webpack = require("webpack");
3 | const CopyPlugin = require('copy-webpack-plugin');
4 |
5 | module.exports = {
6 | mode: 'production',
7 | resolve: {
8 | extensions: [".ts", ".js"]
9 | },
10 | devtool: "inline-source-map",
11 | module: {
12 | rules: [
13 | {
14 | test: /\.ts?$/,
15 | loader: "ts-loader"
16 | }
17 | ]
18 | },
19 | entry: {
20 | "blazor.extensions.xterm": "./src/InitializeXTerm.ts"
21 | },
22 | plugins: [
23 | new CopyPlugin([
24 | { from: path.join(__dirname, './node_modules/xterm/dist/xterm.css'), to: path.join(__dirname, "/dist/xterm.css") },
25 | { from: 'other', to: 'public' },
26 | ])
27 | ],
28 | output: {
29 | path: path.join(__dirname, "/dist"),
30 | filename: "[name].js"
31 | }
32 | };
33 |
--------------------------------------------------------------------------------
/src/Blazor.Extensions.XTerm.JS/src/InitializeXTerm.ts:
--------------------------------------------------------------------------------
1 | import { TerminalManager } from './TerminalManager';
2 |
3 | namespace XTerm {
4 | const blazorExtensions: string = 'BlazorExtensions';
5 | // define what this extension adds to the window object inside BlazorExtensions
6 | const extensionObject = {
7 | XTerm: new TerminalManager()
8 | };
9 |
10 | export function initialize(): void {
11 | if (typeof window !== 'undefined' && !window[blazorExtensions]) {
12 | // when the library is loaded in a browser via a