Update
This commit is contained in:
Родитель
4962392220
Коммит
8708ed7c5f
|
@ -21,6 +21,8 @@ jobs:
|
|||
- uses: actions/checkout@v1
|
||||
- name: Setup .NET Core
|
||||
uses: actions/setup-dotnet@v1
|
||||
- name: Install wasm-tools
|
||||
run: dotnet workload install wasm-tools wasm-experimental
|
||||
- name: Build Release
|
||||
run: dotnet build --configuration Release
|
||||
- name: Test Release
|
||||
|
|
|
@ -1,8 +1,11 @@
|
|||
name: Deploy to GitHub Pages
|
||||
|
||||
env:
|
||||
PROJECT_PATH: src/SvgToXaml.Web/SvgToXaml.Web.csproj
|
||||
OUTPUT_PATH: src/SvgToXaml.Web/bin/Release/net7.0/browser-wasm/AppBundle
|
||||
on:
|
||||
push:
|
||||
branches: [ main ]
|
||||
branches: [ master ]
|
||||
|
||||
jobs:
|
||||
deploy-to-github-pages:
|
||||
|
@ -14,23 +17,32 @@ jobs:
|
|||
uses: actions/setup-dotnet@v1.9.0
|
||||
|
||||
- name: Install wasm-tools
|
||||
run: dotnet workload install wasm-tools
|
||||
run: dotnet workload install wasm-tools wasm-experimental
|
||||
|
||||
- name: Install DotNetCompress
|
||||
run: dotnet tool install --global DotNetCompress --version 2.0.0 --no-cache
|
||||
|
||||
- name: Publish .NET Project
|
||||
run: dotnet publish src/SvgToXaml.Web/SvgToXaml.Web.csproj -c Release -o release --nologo
|
||||
run: dotnet publish $PROJECT_PATH -c Release -o release --nologo
|
||||
|
||||
- name: Change base-tag in index.html from / to SvgToXaml
|
||||
run: sed -i 's/<base href="\/" \/>/<base href="\/SvgToXaml\/" \/>/g' release/wwwroot/index.html
|
||||
- name: Change base-tag in index.html
|
||||
run: sed -i 's/<base href="\/" \/>/<base href="\/SvgToXaml\/" \/>/g' $OUTPUT_PATH/index.html
|
||||
|
||||
- name: copy index.html to 404.html
|
||||
run: cp release/wwwroot/index.html release/wwwroot/404.html
|
||||
run: cp $OUTPUT_PATH/index.html $OUTPUT_PATH/404.html
|
||||
|
||||
- name: Compress Output using Brotli
|
||||
run: DotNetCompress -d $OUTPUT_PATH/ -p "*.dll" "*.js" "*.wasm" --format br --threads 4
|
||||
|
||||
- name: Compress Output using GZip
|
||||
run: DotNetCompress -d $OUTPUT_PATH -p "*.dll" "*.js" "*.wasm" --format gz --threads 4
|
||||
|
||||
- name: Add .nojekyll file
|
||||
run: touch release/wwwroot/.nojekyll
|
||||
run: touch $OUTPUT_PATH/.nojekyll
|
||||
|
||||
- name: Commit wwwroot to GitHub Pages
|
||||
uses: JamesIves/github-pages-deploy-action@4.1.7
|
||||
with:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
BRANCH: gh-pages
|
||||
FOLDER: release/wwwroot
|
||||
FOLDER: ${{ env.OUTPUT_PATH }}
|
||||
|
|
|
@ -59,11 +59,11 @@ ProjectSection(SolutionItems) = preProject
|
|||
build\Avalonia.Xaml.Behaviors.props = build\Avalonia.Xaml.Behaviors.props
|
||||
build\Svg.Skia.props = build\Svg.Skia.props
|
||||
build\System.Text.Json.props = build\System.Text.Json.props
|
||||
build\Avalonia.Web.Blazor.props = build\Avalonia.Web.Blazor.props
|
||||
build\Avalonia.Themes.Fluent.props = build\Avalonia.Themes.Fluent.props
|
||||
build\CommunityToolkit.Mvvm.props = build\CommunityToolkit.Mvvm.props
|
||||
build\ReactiveMarbles.PropertyChanged.props = build\ReactiveMarbles.PropertyChanged.props
|
||||
build\Avalonia.ThemeManager.props = build\Avalonia.ThemeManager.props
|
||||
build\Avalonia.Web.props = build\Avalonia.Web.props
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "_build", "build\build\_build.csproj", "{E9A88CB0-B853-44C3-8A7E-F67DAD2A7F9B}"
|
||||
|
|
|
@ -6,14 +6,15 @@ resources:
|
|||
endpoint: wieslawsoltes
|
||||
type: github
|
||||
name: wieslawsoltes/BuildTemplates
|
||||
ref: refs/tags/v1.0.0
|
||||
ref: refs/tags/v2.0.0
|
||||
|
||||
variables:
|
||||
BuildConfiguration: 'Release'
|
||||
BuildPlatform: 'Any CPU'
|
||||
PublishFramework: 'net6.0'
|
||||
PublishFramework: 'net7.0'
|
||||
PublishProject: 'SvgToXaml.Desktop'
|
||||
PublishRuntime: ''
|
||||
Workloads: 'wasm-tools wasm-experimental'
|
||||
|
||||
jobs:
|
||||
- template: Test-PowerShell.yml@templates
|
||||
|
@ -21,36 +22,42 @@ jobs:
|
|||
name: 'Test_Windows'
|
||||
vmImage: 'windows-2022'
|
||||
BuildConfiguration: ${{ variables.BuildConfiguration }}
|
||||
Workloads: ${{ variables.Workloads }}
|
||||
|
||||
- template: Test-Bash.yml@templates
|
||||
parameters:
|
||||
name: 'Test_Linux'
|
||||
vmImage: 'ubuntu-20.04'
|
||||
BuildConfiguration: ${{ variables.BuildConfiguration }}
|
||||
Workloads: ${{ variables.Workloads }}
|
||||
|
||||
- template: Test-Bash.yml@templates
|
||||
parameters:
|
||||
name: 'Test_macOS'
|
||||
vmImage: 'macOS-11'
|
||||
BuildConfiguration: ${{ variables.BuildConfiguration }}
|
||||
Workloads: ${{ variables.Workloads }}
|
||||
|
||||
- template: Pack-MyGet.yml@templates
|
||||
parameters:
|
||||
name: 'Pack_MyGet'
|
||||
vmImage: 'windows-2022'
|
||||
BuildConfiguration: ${{ variables.BuildConfiguration }}
|
||||
Workloads: ${{ variables.Workloads }}
|
||||
|
||||
- template: Pack-NuGet.yml@templates
|
||||
parameters:
|
||||
name: 'Pack_NuGet'
|
||||
vmImage: 'windows-2022'
|
||||
BuildConfiguration: ${{ variables.BuildConfiguration }}
|
||||
Workloads: ${{ variables.Workloads }}
|
||||
|
||||
- template: Publish-PowerShell.yml@templates
|
||||
parameters:
|
||||
name: 'Publish_Windows'
|
||||
vmImage: 'windows-2022'
|
||||
BuildConfiguration: ${{ variables.BuildConfiguration }}
|
||||
Workloads: ${{ variables.Workloads }}
|
||||
PublishFramework: ${{ variables.PublishFramework }}
|
||||
PublishProject: ${{ variables.PublishProject }}
|
||||
PublishRuntime: 'win7-x64'
|
||||
|
@ -60,6 +67,7 @@ jobs:
|
|||
name: 'Publish_Ubuntu'
|
||||
vmImage: 'ubuntu-20.04'
|
||||
BuildConfiguration: ${{ variables.BuildConfiguration }}
|
||||
Workloads: ${{ variables.Workloads }}
|
||||
PublishFramework: ${{ variables.PublishFramework }}
|
||||
PublishProject: ${{ variables.PublishProject }}
|
||||
PublishRuntime: 'ubuntu.14.04-x64'
|
||||
|
@ -69,6 +77,7 @@ jobs:
|
|||
name: 'Publish_Debian'
|
||||
vmImage: 'ubuntu-20.04'
|
||||
BuildConfiguration: ${{ variables.BuildConfiguration }}
|
||||
Workloads: ${{ variables.Workloads }}
|
||||
PublishFramework: ${{ variables.PublishFramework }}
|
||||
PublishProject: ${{ variables.PublishProject }}
|
||||
PublishRuntime: 'debian.8-x64'
|
||||
|
@ -78,6 +87,7 @@ jobs:
|
|||
name: 'Publish_macOS'
|
||||
vmImage: 'macOS-11'
|
||||
BuildConfiguration: ${{ variables.BuildConfiguration }}
|
||||
Workloads: ${{ variables.Workloads }}
|
||||
PublishFramework: ${{ variables.PublishFramework }}
|
||||
PublishProject: ${{ variables.PublishProject }}
|
||||
PublishRuntime: 'osx.10.12-x64'
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup>
|
||||
<PackageReference Include="Avalonia.Controls.Skia" Version="11.0.0-preview2" />
|
||||
<PackageReference Include="Avalonia.Controls.Skia" Version="11.0.0-preview3" />
|
||||
</ItemGroup>
|
||||
</Project>
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup>
|
||||
<PackageReference Include="Avalonia.Desktop" Version="11.0.0-preview2" />
|
||||
<PackageReference Include="Avalonia.Desktop" Version="11.0.0-preview3" />
|
||||
</ItemGroup>
|
||||
</Project>
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup>
|
||||
<PackageReference Include="Avalonia.Diagnostics" Version="11.0.0-preview2" />
|
||||
<PackageReference Include="Avalonia.Diagnostics" Version="11.0.0-preview3" />
|
||||
</ItemGroup>
|
||||
</Project>
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup>
|
||||
<PackageReference Include="Avalonia.Markup.Xaml.Loader" Version="11.0.0-preview2" />
|
||||
<PackageReference Include="Avalonia.Markup.Xaml.Loader" Version="11.0.0-preview3" />
|
||||
</ItemGroup>
|
||||
</Project>
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup>
|
||||
<PackageReference Include="Avalonia.Skia" Version="11.0.0-preview2" />
|
||||
<PackageReference Include="Avalonia.Skia" Version="11.0.0-preview3" />
|
||||
</ItemGroup>
|
||||
</Project>
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup>
|
||||
<PackageReference Include="Avalonia.ThemeManager" Version="11.0.0-preview2" />
|
||||
<PackageReference Include="Avalonia.ThemeManager" Version="11.0.0-preview3" />
|
||||
</ItemGroup>
|
||||
</Project>
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup>
|
||||
<PackageReference Include="Avalonia.Themes.Fluent" Version="11.0.0-preview2" />
|
||||
<PackageReference Include="Avalonia.Themes.Fluent" Version="11.0.0-preview3" />
|
||||
</ItemGroup>
|
||||
</Project>
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup>
|
||||
<PackageReference Include="Avalonia.Web.Blazor" Version="11.0.0-preview2" />
|
||||
<PackageReference Include="Avalonia.Web" Version="11.0.0-preview3" />
|
||||
</ItemGroup>
|
||||
</Project>
|
|
@ -1,6 +1,6 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup>
|
||||
<PackageReference Include="Avalonia.Xaml.Behaviors" Version="11.0.0-preview2" />
|
||||
<PackageReference Include="Avalonia.Xaml.Behaviors" Version="11.0.0-preview3" />
|
||||
</ItemGroup>
|
||||
</Project>
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup>
|
||||
<PackageReference Include="Avalonia" Version="11.0.0-preview2" />
|
||||
<PackageReference Include="Avalonia" Version="11.0.0-preview3" />
|
||||
</ItemGroup>
|
||||
</Project>
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<PropertyGroup>
|
||||
<VersionPrefix>11.0.0</VersionPrefix>
|
||||
<VersionSuffix>preview2</VersionSuffix>
|
||||
<VersionSuffix>preview3</VersionSuffix>
|
||||
<Authors>Wiesław Šoltés</Authors>
|
||||
<Company>Wiesław Šoltés</Company>
|
||||
<Copyright>Copyright © Wiesław Šoltés 2022</Copyright>
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup>
|
||||
<PackageReference Include="Svg.Skia" Version="0.6.0-preview2" />
|
||||
<PackageReference Include="Svg.Skia" Version="0.6.0-preview3" />
|
||||
</ItemGroup>
|
||||
</Project>
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
<PropertyGroup>
|
||||
<OutputType>Exe</OutputType>
|
||||
<TargetFramework>net6.0</TargetFramework>
|
||||
<TargetFramework>net7.0</TargetFramework>
|
||||
<AppendTargetFrameworkToOutputPath>false</AppendTargetFrameworkToOutputPath>
|
||||
<IsPackable>False</IsPackable>
|
||||
<NoWarn>CS0649;CS0169</NoWarn>
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"sdk": {
|
||||
"version": "6.0.100",
|
||||
"version": "7.0.100-rc.2.22477.23",
|
||||
"rollForward": "latestMinor",
|
||||
"allowPrerelease": true
|
||||
}
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
<PropertyGroup>
|
||||
<OutputType>Library</OutputType>
|
||||
<TargetFramework>net6.0</TargetFramework>
|
||||
<TargetFramework>net7.0</TargetFramework>
|
||||
<IsPackable>False</IsPackable>
|
||||
<Nullable>enable</Nullable>
|
||||
<LangVersion>latest</LangVersion>
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
<PropertyGroup>
|
||||
<OutputType>WinExe</OutputType>
|
||||
<TargetFramework>net6.0</TargetFramework>
|
||||
<TargetFramework>net7.0</TargetFramework>
|
||||
<IsPackable>False</IsPackable>
|
||||
<Nullable>enable</Nullable>
|
||||
<LangVersion>latest</LangVersion>
|
||||
|
|
|
@ -1,10 +0,0 @@
|
|||
<Router AppAssembly="@typeof(Program).Assembly" PreferExactMatches="@true">
|
||||
<Found Context="routeData">
|
||||
<RouteView RouteData="@routeData" DefaultLayout="@typeof(MainLayout)" />
|
||||
</Found>
|
||||
<NotFound>
|
||||
<LayoutView Layout="@typeof(MainLayout)">
|
||||
<p>Sorry, there's nothing at this address.</p>
|
||||
</LayoutView>
|
||||
</NotFound>
|
||||
</Router>
|
|
@ -1,17 +0,0 @@
|
|||
using Avalonia;
|
||||
using Avalonia.Web.Blazor;
|
||||
|
||||
namespace SvgToXaml.Web;
|
||||
|
||||
public partial class App
|
||||
{
|
||||
protected override void OnParametersSet()
|
||||
{
|
||||
base.OnParametersSet();
|
||||
|
||||
WebAppBuilder.Configure<SvgToXaml.App>()
|
||||
// Uncomment to disable GPU
|
||||
// .With(new SkiaOptions { CustomGpuFactory = null })
|
||||
.SetupWithSingleViewLifetime();
|
||||
}
|
||||
}
|
До Ширина: | Высота: | Размер: 1.2 KiB После Ширина: | Высота: | Размер: 1.2 KiB |
|
@ -0,0 +1,64 @@
|
|||
.highlight {
|
||||
color: white;
|
||||
font-size: 2.5rem;
|
||||
display: block;
|
||||
}
|
||||
|
||||
.purple {
|
||||
color: #8b44ac;
|
||||
}
|
||||
|
||||
.icon {
|
||||
opacity : 0.05;
|
||||
height: 35%;
|
||||
width: 35%;
|
||||
position : absolute;
|
||||
background-repeat: no-repeat;
|
||||
right: 0px;
|
||||
bottom: 0px;
|
||||
margin-right: 3%;
|
||||
margin-bottom: 5%;
|
||||
z-index: 5000;
|
||||
background-position: right bottom;
|
||||
pointer-events: none;
|
||||
}
|
||||
|
||||
#avalonia-splash a{
|
||||
color: whitesmoke;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
.center {
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
height: 100vh;
|
||||
}
|
||||
|
||||
#avalonia-splash {
|
||||
position: relative;
|
||||
height: 100%;
|
||||
width: 100%;
|
||||
color: whitesmoke;
|
||||
background: #1b2a4e;
|
||||
font-family: 'Nunito', sans-serif;
|
||||
background-position: center;
|
||||
background-size: cover;
|
||||
background-repeat: no-repeat;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.splash-close {
|
||||
animation: fadeout 0.25s linear forwards;
|
||||
}
|
||||
|
||||
@keyframes fadeout {
|
||||
0% {
|
||||
opacity:100%;
|
||||
}
|
||||
100% {
|
||||
opacity:0;
|
||||
visibility: collapse;
|
||||
}
|
||||
}
|
Двоичный файл не отображается.
После Ширина: | Высота: | Размер: 399 B |
|
@ -0,0 +1,31 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
|
||||
<head>
|
||||
<title>SvgToXaml</title>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<base href="/" />
|
||||
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
|
||||
<link href="https://fonts.googleapis.com/css2?family=Nunito:wght@200;300;400;500;600;700&family=Open+Sans:wght@600&display=swap" rel="stylesheet">
|
||||
<link rel="modulepreload" href="./main.js" />
|
||||
<link rel="modulepreload" href="./dotnet.js" />
|
||||
<link rel="modulepreload" href="./avalonia.js" />
|
||||
<link rel="stylesheet" href="./app.css" />
|
||||
<link rel="preconnect" href="https://fonts.googleapis.com">
|
||||
</head>
|
||||
|
||||
<body style="margin: 0px">
|
||||
<div id="out">
|
||||
<div id="avalonia-splash">
|
||||
<div class="center">
|
||||
<h2 class="purple">
|
||||
Powered by
|
||||
<a class="highlight" href="https://www.avaloniaui.net/" target="_blank">Avalonia UI</a></h2>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<script type='module' src="./main.js"></script>
|
||||
</body>
|
||||
|
||||
</html>
|
|
@ -0,0 +1,16 @@
|
|||
import { dotnet } from './dotnet.js'
|
||||
import { registerAvaloniaModule } from './avalonia.js';
|
||||
|
||||
const is_browser = typeof window != "undefined";
|
||||
if (!is_browser) throw new Error(`Expected to be running in a browser`);
|
||||
|
||||
const dotnetRuntime = await dotnet
|
||||
.withDiagnosticTracing(false)
|
||||
.withApplicationArgumentsFromQuery()
|
||||
.create();
|
||||
|
||||
await registerAvaloniaModule(dotnetRuntime);
|
||||
|
||||
const config = dotnetRuntime.getConfig();
|
||||
|
||||
await dotnetRuntime.runMainAndExit(config.mainAssemblyName, [window.location.search]);
|
|
@ -0,0 +1,10 @@
|
|||
{
|
||||
"routes": [
|
||||
{
|
||||
"route": "/*",
|
||||
"headers": {
|
||||
"Cache-Control": "public, must-revalidate, max-age=2419200"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
|
@ -1,4 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<linker>
|
||||
<assembly fullname="SvgToXaml.Web" preserve="All" />
|
||||
</linker>
|
|
@ -1,5 +0,0 @@
|
|||
@page "/"
|
||||
|
||||
@using Avalonia.Web.Blazor
|
||||
|
||||
<AvaloniaView />
|
|
@ -1,26 +1,15 @@
|
|||
using System;
|
||||
using System.Net.Http;
|
||||
using System.Threading.Tasks;
|
||||
using Microsoft.AspNetCore.Components.WebAssembly.Hosting;
|
||||
using Microsoft.Extensions.DependencyInjection;
|
||||
using System.Runtime.Versioning;
|
||||
using Avalonia;
|
||||
using Avalonia.Web;
|
||||
using SvgToXaml;
|
||||
|
||||
namespace SvgToXaml.Web;
|
||||
[assembly:SupportedOSPlatform("browser")]
|
||||
|
||||
public class Program
|
||||
internal class Program
|
||||
{
|
||||
public static async Task Main(string[] args)
|
||||
{
|
||||
await CreateHostBuilder(args).Build().RunAsync();
|
||||
}
|
||||
private static void Main(string[] args)
|
||||
=> BuildAvaloniaApp().SetupBrowserApp("out");
|
||||
|
||||
public static WebAssemblyHostBuilder CreateHostBuilder(string[] args)
|
||||
{
|
||||
var builder = WebAssemblyHostBuilder.CreateDefault(args);
|
||||
|
||||
builder.RootComponents.Add<App>("#app");
|
||||
|
||||
builder.Services.AddScoped(sp => new HttpClient { BaseAddress = new Uri(builder.HostEnvironment.BaseAddress) });
|
||||
|
||||
return builder;
|
||||
}
|
||||
public static AppBuilder BuildAvaloniaApp()
|
||||
=> AppBuilder.Configure<App>();
|
||||
}
|
||||
|
|
|
@ -1,30 +0,0 @@
|
|||
{
|
||||
"iisSettings": {
|
||||
"windowsAuthentication": false,
|
||||
"anonymousAuthentication": true,
|
||||
"iisExpress": {
|
||||
"applicationUrl": "http://localhost:13961",
|
||||
"sslPort": 44319
|
||||
}
|
||||
},
|
||||
"profiles": {
|
||||
"SvgToXaml.Web - IIS Express": {
|
||||
"commandName": "IISExpress",
|
||||
"launchBrowser": true,
|
||||
"inspectUri": "{wsProtocol}://{url.hostname}:{url.port}/_framework/debug/ws-proxy?browser={browserInspectUri}",
|
||||
"environmentVariables": {
|
||||
"ASPNETCORE_ENVIRONMENT": "Development"
|
||||
}
|
||||
},
|
||||
"SvgToXaml.Web": {
|
||||
"commandName": "Project",
|
||||
"dotnetRunMessages": "true",
|
||||
"launchBrowser": true,
|
||||
"inspectUri": "{wsProtocol}://{url.hostname}:{url.port}/_framework/debug/ws-proxy?browser={browserInspectUri}",
|
||||
"applicationUrl": "https://localhost:5001;http://localhost:5000",
|
||||
"environmentVariables": {
|
||||
"ASPNETCORE_ENVIRONMENT": "Development"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,14 @@
|
|||
<linker>
|
||||
|
||||
<!-- App -->
|
||||
|
||||
<assembly fullname="SvgToXaml.Base" preserve="All" />
|
||||
<assembly fullname="SvgToXaml.Web" preserve="All" />
|
||||
<assembly fullname="Avalonia.Xaml.Interactions" preserve="All" />
|
||||
<assembly fullname="Avalonia.Xaml.Interactivity" preserve="All" />
|
||||
|
||||
<!-- Avalonia Themes -->
|
||||
|
||||
<assembly fullname="Avalonia.Themes.Fluent" preserve="All" />
|
||||
|
||||
</linker>
|
|
@ -1,7 +0,0 @@
|
|||
@inherits LayoutComponentBase
|
||||
|
||||
<div class="page">
|
||||
<div class="main">
|
||||
@Body
|
||||
</div>
|
||||
</div>
|
|
@ -1,70 +0,0 @@
|
|||
.page {
|
||||
position: relative;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
}
|
||||
|
||||
.main {
|
||||
flex: 1;
|
||||
}
|
||||
|
||||
.sidebar {
|
||||
background-image: linear-gradient(180deg, rgb(5, 39, 103) 0%, #3a0647 70%);
|
||||
}
|
||||
|
||||
.top-row {
|
||||
background-color: #f7f7f7;
|
||||
border-bottom: 1px solid #d6d5d5;
|
||||
justify-content: flex-end;
|
||||
height: 3.5rem;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.top-row ::deep a, .top-row .btn-link {
|
||||
white-space: nowrap;
|
||||
margin-left: 1.5rem;
|
||||
}
|
||||
|
||||
.top-row a:first-child {
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
}
|
||||
|
||||
@media (max-width: 640.98px) {
|
||||
.top-row:not(.auth) {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.top-row.auth {
|
||||
justify-content: space-between;
|
||||
}
|
||||
|
||||
.top-row a, .top-row .btn-link {
|
||||
margin-left: 0;
|
||||
}
|
||||
}
|
||||
|
||||
@media (min-width: 641px) {
|
||||
.page {
|
||||
flex-direction: row;
|
||||
}
|
||||
|
||||
.sidebar {
|
||||
width: 250px;
|
||||
height: 100vh;
|
||||
position: sticky;
|
||||
top: 0;
|
||||
}
|
||||
|
||||
.top-row {
|
||||
position: sticky;
|
||||
top: 0;
|
||||
z-index: 1;
|
||||
}
|
||||
|
||||
.main > div {
|
||||
padding-left: 2rem !important;
|
||||
padding-right: 1.5rem !important;
|
||||
}
|
||||
}
|
|
@ -1,65 +1,32 @@
|
|||
<Project Sdk="Microsoft.NET.Sdk.BlazorWebAssembly">
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<TargetFramework>net6.0</TargetFramework>
|
||||
<TargetFramework>net7.0</TargetFramework>
|
||||
<RuntimeIdentifier>browser-wasm</RuntimeIdentifier>
|
||||
<WasmMainJSPath>AppBundle\main.js</WasmMainJSPath>
|
||||
<OutputType>Exe</OutputType>
|
||||
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
|
||||
<MSBuildEnableWorkloadResolver>true</MSBuildEnableWorkloadResolver>
|
||||
<IsPackable>False</IsPackable>
|
||||
<Nullable>enable</Nullable>
|
||||
<RootNamespace>SvgToXaml.Web</RootNamespace>
|
||||
<EmccTotalMemory>16777216</EmccTotalMemory>
|
||||
<BlazorEnableTimeZoneSupport>false</BlazorEnableTimeZoneSupport>
|
||||
<BlazorWebAssemblyPreserveCollationData>false</BlazorWebAssemblyPreserveCollationData>
|
||||
</PropertyGroup>
|
||||
|
||||
<!-- In debug, make builds faster by reducing optimizations -->
|
||||
<PropertyGroup Condition="'$(Configuration)' == 'Debug'">
|
||||
<WasmNativeStrip>false</WasmNativeStrip>
|
||||
<EmccCompileOptimizationFlag>-O1</EmccCompileOptimizationFlag>
|
||||
<RunAOTCompilation>false</RunAOTCompilation>
|
||||
<Optimize>true</Optimize>
|
||||
</PropertyGroup>
|
||||
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|AnyCPU'">
|
||||
<Optimize>true</Optimize>
|
||||
<WasmNativeStrip>true</WasmNativeStrip>
|
||||
<EmccCompileOptimizationFlag>-O3</EmccCompileOptimizationFlag>
|
||||
<EmccLinkOptimizationFlag>-O3</EmccLinkOptimizationFlag>
|
||||
<RunAOTCompilation>false</RunAOTCompilation>
|
||||
</PropertyGroup>
|
||||
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|AnyCPU'">
|
||||
<DebuggerSupport>false</DebuggerSupport>
|
||||
<EnableUnsafeBinaryFormatterSerialization>false</EnableUnsafeBinaryFormatterSerialization>
|
||||
<EnableUnsafeUTF7Encoding>false</EnableUnsafeUTF7Encoding>
|
||||
<EventSourceSupport>false</EventSourceSupport>
|
||||
<HttpActivityPropagationSupport>false</HttpActivityPropagationSupport>
|
||||
<InvariantGlobalization>true</InvariantGlobalization>
|
||||
<MetadataUpdaterSupport>false</MetadataUpdaterSupport>
|
||||
<UseNativeHttpHandler>true</UseNativeHttpHandler>
|
||||
<UseSystemResourceKeys>true</UseSystemResourceKeys>
|
||||
<PublishTrimmed>true</PublishTrimmed>
|
||||
<TrimMode>link</TrimMode>
|
||||
<TrimmerRemoveSymbols>true</TrimmerRemoveSymbols>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup Condition="'$(Configuration)|$(Platform)'=='Release|AnyCPU'">
|
||||
<BlazorLinkerDescriptor Include="LinkerConfig.xml" />
|
||||
<TrimmableAssembly Include="Microsoft.CodeAnalysis" />
|
||||
<TrimmableAssembly Include="Microsoft.CodeAnalysis.CSharp" />
|
||||
<TrimmableAssembly Include="Microsoft.CodeAnalysis.CSharp.Scripting" />
|
||||
<TrimmableAssembly Include="Microsoft.CodeAnalysis.Scripting" />
|
||||
<TrimmableAssembly Include="Avalonia.Controls.DataGrid" />
|
||||
</ItemGroup>
|
||||
|
||||
<PropertyGroup>
|
||||
<BlazorEnableCompression>true</BlazorEnableCompression>
|
||||
</PropertyGroup>
|
||||
|
||||
<Import Project="..\..\build\Avalonia.Web.Blazor.props" />
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="Microsoft.AspNetCore.Components.WebAssembly" Version="6.0.0" />
|
||||
<PackageReference Include="Microsoft.AspNetCore.Components.WebAssembly.DevServer" Version="6.0.0" PrivateAssets="all" />
|
||||
<TrimmerRootDescriptor Include="Roots.xml" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<WasmExtraFilesToDeploy Include="AppBundle\app.css" />
|
||||
<WasmExtraFilesToDeploy Include="AppBundle\favicon.ico" />
|
||||
<WasmExtraFilesToDeploy Include="AppBundle\index.html" />
|
||||
<WasmExtraFilesToDeploy Include="AppBundle\Logo.svg" />
|
||||
<WasmExtraFilesToDeploy Include="AppBundle\main.js" />
|
||||
<WasmExtraFilesToDeploy Include="AppBundle\staticwebapp.config.json" />
|
||||
</ItemGroup>
|
||||
|
||||
<Import Project="..\..\build\Base.props" />
|
||||
<Import Project="..\..\build\Avalonia.props" />
|
||||
<Import Project="..\..\build\Avalonia.Web.props" />
|
||||
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\SvgToXaml.Base\SvgToXaml.Base.csproj" />
|
||||
</ItemGroup>
|
||||
|
|
|
@ -1,10 +0,0 @@
|
|||
@using System.Net.Http
|
||||
@using System.Net.Http.Json
|
||||
@using Microsoft.AspNetCore.Components.Forms
|
||||
@using Microsoft.AspNetCore.Components.Routing
|
||||
@using Microsoft.AspNetCore.Components.Web
|
||||
@using Microsoft.AspNetCore.Components.Web.Virtualization
|
||||
@using Microsoft.AspNetCore.Components.WebAssembly.Http
|
||||
@using Microsoft.JSInterop
|
||||
@using SvgToXaml.Web
|
||||
@using SvgToXaml.Web.Shared
|
|
@ -0,0 +1,11 @@
|
|||
{
|
||||
"wasmHostProperties": {
|
||||
"perHostConfig": [
|
||||
{
|
||||
"name": "browser",
|
||||
"html-path": "index.html",
|
||||
"Host": "browser"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
|
@ -1,79 +0,0 @@
|
|||
html, body {
|
||||
font-family: "Nunito", sans-serif;
|
||||
margin: 0;
|
||||
height: 100vh;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
a {
|
||||
text-decoration: none;
|
||||
color: white;
|
||||
}
|
||||
|
||||
#blazor-error-ui {
|
||||
background: lightyellow;
|
||||
bottom: 0;
|
||||
box-shadow: 0 -1px 2px rgba(0, 0, 0, 0.2);
|
||||
display: none;
|
||||
left: 0;
|
||||
padding: 0.6rem 1.25rem 0.7rem 1.25rem;
|
||||
position: fixed;
|
||||
width: 100%;
|
||||
z-index: 1000;
|
||||
}
|
||||
|
||||
#blazor-error-ui .dismiss {
|
||||
cursor: pointer;
|
||||
position: absolute;
|
||||
right: 0.75rem;
|
||||
top: 0.5rem;
|
||||
}
|
||||
|
||||
.canvas-container {
|
||||
opacity:1;
|
||||
position:fixed;
|
||||
width:100%;
|
||||
height:100%;
|
||||
top:0px;
|
||||
left:0px;
|
||||
z-index:500;
|
||||
}
|
||||
|
||||
canvas
|
||||
{
|
||||
opacity:1;
|
||||
position:fixed;
|
||||
width:100%;
|
||||
height:100%;
|
||||
top:0px;
|
||||
left:0px;
|
||||
z-index:500;
|
||||
}
|
||||
|
||||
#app, .page {
|
||||
height: 100%;
|
||||
background: #171C2C;
|
||||
color: white;
|
||||
}
|
||||
|
||||
.navbar-brand {
|
||||
font-size: 22px;
|
||||
}
|
||||
|
||||
.overlay{
|
||||
opacity:0.0;
|
||||
position:fixed;
|
||||
width:100vw;
|
||||
height:100vh;
|
||||
top:0px;
|
||||
left:0px;
|
||||
z-index:1000;
|
||||
}
|
||||
|
||||
#splash {
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
text-align: center;
|
||||
min-height: 100vh;
|
||||
}
|
Двоичные данные
src/SvgToXaml.Web/wwwroot/favicon.ico
Двоичные данные
src/SvgToXaml.Web/wwwroot/favicon.ico
Двоичный файл не отображается.
До Ширина: | Высота: | Размер: 172 KiB |
|
@ -1,54 +0,0 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />
|
||||
<title>SvgToXaml</title>
|
||||
<base href="/" />
|
||||
<link href="css/app.css" rel="stylesheet" />
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div id="app">
|
||||
<div id="splash">
|
||||
<h2>Powered by</h2>
|
||||
<a class="navbar-brand" href="https://www.avaloniaui.net/" target="_blank">
|
||||
<img src="Logo.svg" alt="Avalonia Logo" width="30" height="24" class="d-inline-block align-text-top">
|
||||
Avalonia
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="blazor-error-ui">
|
||||
An unhandled error has occurred.
|
||||
<a href="" class="reload">Reload</a>
|
||||
<a class="dismiss">🗙</a>
|
||||
</div>
|
||||
<script src="js/app.js"></script>
|
||||
<script src="_framework/blazor.webassembly.js" autostart="true"></script>
|
||||
<!--<script type="module">
|
||||
import { BrotliDecode } from './js/decode.min.js';
|
||||
Blazor.start({
|
||||
loadBootResource: function (type, name, defaultUri, integrity) {
|
||||
if (type !== 'dotnetjs' && location.hostname !== 'localhost') {
|
||||
return (async function () {
|
||||
const response = await fetch(defaultUri + '.br', { cache: 'no-cache' });
|
||||
if (!response.ok) {
|
||||
throw new Error(response.statusText);
|
||||
}
|
||||
const originalResponseBuffer = await response.arrayBuffer();
|
||||
const originalResponseArray = new Int8Array(originalResponseBuffer);
|
||||
const decompressedResponseArray = BrotliDecode(originalResponseArray);
|
||||
const contentType = type ===
|
||||
'dotnetwasm' ? 'application/wasm' : 'application/octet-stream';
|
||||
return new Response(decompressedResponseArray,
|
||||
{ headers: { 'content-type': contentType } });
|
||||
})();
|
||||
}
|
||||
}
|
||||
});
|
||||
</script>-->
|
||||
</body>
|
||||
|
||||
</html>
|
|
@ -1 +0,0 @@
|
|||
|
Различия файлов скрыты, потому что одна или несколько строк слишком длинны
|
@ -291,6 +291,10 @@ public record DrawingGroup : Drawing
|
|||
}
|
||||
case ShimSkiaSharp.DrawPathCanvasCommand(var skPath, var skPaint):
|
||||
{
|
||||
if (skPath is null)
|
||||
{
|
||||
break;
|
||||
}
|
||||
var path = Factory.s_model.ToSKPath(skPath);
|
||||
if (path.IsEmpty)
|
||||
{
|
||||
|
@ -306,7 +310,15 @@ public record DrawingGroup : Drawing
|
|||
}
|
||||
case ShimSkiaSharp.DrawTextCanvasCommand(var text, var x, var y, var skPaint):
|
||||
{
|
||||
if (skPaint is null)
|
||||
{
|
||||
break;
|
||||
}
|
||||
var paint = Factory.s_model.ToSKPaint(skPaint);
|
||||
if (paint is null)
|
||||
{
|
||||
break;
|
||||
}
|
||||
var path = paint.GetTextPath(text, x, y);
|
||||
if (path.IsEmpty)
|
||||
{
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
<PropertyGroup>
|
||||
<OutputType>Library</OutputType>
|
||||
<TargetFrameworks>netstandard2.0;net5.0;net6.0</TargetFrameworks>
|
||||
<TargetFrameworks>netstandard2.0;net7.0</TargetFrameworks>
|
||||
<IsPackable>True</IsPackable>
|
||||
<Nullable>enable</Nullable>
|
||||
</PropertyGroup>
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
<PropertyGroup>
|
||||
<OutputType>Exe</OutputType>
|
||||
<TargetFramework>net6.0</TargetFramework>
|
||||
<TargetFramework>net7.0</TargetFramework>
|
||||
<IsPackable>True</IsPackable>
|
||||
<IsTool>True</IsTool>
|
||||
<PackAsTool>True</PackAsTool>
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<TargetFramework>net6.0</TargetFramework>
|
||||
<TargetFramework>net7.0</TargetFramework>
|
||||
<OutputType>Library</OutputType>
|
||||
<IsPackable>False</IsPackable>
|
||||
<Nullable>enable</Nullable>
|
||||
|
|
Загрузка…
Ссылка в новой задаче