├── 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 |
9 | About 10 |
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