It is still in the windows-containers-test branchpull/82/head
@ -1,38 +0,0 @@ | |||||
| |||||
Microsoft Visual Studio Solution File, Format Version 12.00 | |||||
# Visual Studio 15 | |||||
VisualStudioVersion = 15.0.26228.0 | |||||
MinimumVisualStudioVersion = 10.0.40219.1 | |||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Catalog.WebForms", "Catalog.WebForms\Catalog.WebForms.csproj", "{07B42E24-32F8-4C10-99A8-0FB5AC6BFEBB}" | |||||
EndProject | |||||
Project("{E53339B2-1760-4266-BCC7-CA923CBCF16C}") = "docker-compose", "docker-compose.dcproj", "{7816BBB6-20B9-4D5A-864D-47B7C6E3D3D5}" | |||||
ProjectSection(ProjectDependencies) = postProject | |||||
{07B42E24-32F8-4C10-99A8-0FB5AC6BFEBB} = {07B42E24-32F8-4C10-99A8-0FB5AC6BFEBB} | |||||
{9B92B9F2-0DB5-4294-8DBF-DE2F87AEADDD} = {9B92B9F2-0DB5-4294-8DBF-DE2F87AEADDD} | |||||
EndProjectSection | |||||
EndProject | |||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Catalog.API", "..\..\Services\Catalog\Catalog.API\Catalog.API.csproj", "{9B92B9F2-0DB5-4294-8DBF-DE2F87AEADDD}" | |||||
EndProject | |||||
Global | |||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution | |||||
Debug|Any CPU = Debug|Any CPU | |||||
Release|Any CPU = Release|Any CPU | |||||
EndGlobalSection | |||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution | |||||
{07B42E24-32F8-4C10-99A8-0FB5AC6BFEBB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU | |||||
{07B42E24-32F8-4C10-99A8-0FB5AC6BFEBB}.Debug|Any CPU.Build.0 = Debug|Any CPU | |||||
{07B42E24-32F8-4C10-99A8-0FB5AC6BFEBB}.Release|Any CPU.ActiveCfg = Release|Any CPU | |||||
{07B42E24-32F8-4C10-99A8-0FB5AC6BFEBB}.Release|Any CPU.Build.0 = Release|Any CPU | |||||
{7816BBB6-20B9-4D5A-864D-47B7C6E3D3D5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU | |||||
{7816BBB6-20B9-4D5A-864D-47B7C6E3D3D5}.Debug|Any CPU.Build.0 = Debug|Any CPU | |||||
{7816BBB6-20B9-4D5A-864D-47B7C6E3D3D5}.Release|Any CPU.ActiveCfg = Release|Any CPU | |||||
{7816BBB6-20B9-4D5A-864D-47B7C6E3D3D5}.Release|Any CPU.Build.0 = Release|Any CPU | |||||
{9B92B9F2-0DB5-4294-8DBF-DE2F87AEADDD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU | |||||
{9B92B9F2-0DB5-4294-8DBF-DE2F87AEADDD}.Debug|Any CPU.Build.0 = Debug|Any CPU | |||||
{9B92B9F2-0DB5-4294-8DBF-DE2F87AEADDD}.Release|Any CPU.ActiveCfg = Release|Any CPU | |||||
{9B92B9F2-0DB5-4294-8DBF-DE2F87AEADDD}.Release|Any CPU.Build.0 = Release|Any CPU | |||||
EndGlobalSection | |||||
GlobalSection(SolutionProperties) = preSolution | |||||
HideSolutionNode = FALSE | |||||
EndGlobalSection | |||||
EndGlobal |
@ -1,3 +0,0 @@ | |||||
* | |||||
!obj\Docker\publish\* | |||||
!obj\Docker\empty\ |
@ -1,7 +0,0 @@ | |||||
<%@ Page Title="About" Language="C#" MasterPageFile="~/Site.Master" AutoEventWireup="true" CodeBehind="About.aspx.cs" Inherits="Microsoft.eShopOnContainers.Catalog.WebForms.About" %> | |||||
<asp:Content ID="BodyContent" ContentPlaceHolderID="MainContent" runat="server"> | |||||
<h2><%: Title %>.</h2> | |||||
<h3>Your application description page.</h3> | |||||
<p>Use this area to provide additional information.</p> | |||||
</asp:Content> |
@ -1,17 +0,0 @@ | |||||
using System; | |||||
using System.Collections.Generic; | |||||
using System.Linq; | |||||
using System.Web; | |||||
using System.Web.UI; | |||||
using System.Web.UI.WebControls; | |||||
namespace Microsoft.eShopOnContainers.Catalog.WebForms | |||||
{ | |||||
public partial class About : Page | |||||
{ | |||||
protected void Page_Load(object sender, EventArgs e) | |||||
{ | |||||
} | |||||
} | |||||
} |
@ -1,15 +0,0 @@ | |||||
//------------------------------------------------------------------------------ | |||||
// <auto-generated> | |||||
// This code was generated by a tool. | |||||
// | |||||
// Changes to this file may cause incorrect behavior and will be lost if | |||||
// the code is regenerated. | |||||
// </auto-generated> | |||||
//------------------------------------------------------------------------------ | |||||
namespace Microsoft.eShopOnContainers.Catalog.WebForms { | |||||
public partial class About { | |||||
} | |||||
} |
@ -1,46 +0,0 @@ | |||||
using System; | |||||
using System.Collections.Generic; | |||||
using System.Linq; | |||||
using System.Web; | |||||
using System.Web.Optimization; | |||||
using System.Web.UI; | |||||
namespace Microsoft.eShopOnContainers.Catalog.WebForms | |||||
{ | |||||
public class BundleConfig | |||||
{ | |||||
// For more information on Bundling, visit https://go.microsoft.com/fwlink/?LinkID=303951 | |||||
public static void RegisterBundles(BundleCollection bundles) | |||||
{ | |||||
bundles.Add(new ScriptBundle("~/bundles/WebFormsJs").Include( | |||||
"~/Scripts/WebForms/WebForms.js", | |||||
"~/Scripts/WebForms/WebUIValidation.js", | |||||
"~/Scripts/WebForms/MenuStandards.js", | |||||
"~/Scripts/WebForms/Focus.js", | |||||
"~/Scripts/WebForms/GridView.js", | |||||
"~/Scripts/WebForms/DetailsView.js", | |||||
"~/Scripts/WebForms/TreeView.js", | |||||
"~/Scripts/WebForms/WebParts.js")); | |||||
// Order is very important for these files to work, they have explicit dependencies | |||||
bundles.Add(new ScriptBundle("~/bundles/MsAjaxJs").Include( | |||||
"~/Scripts/WebForms/MsAjax/MicrosoftAjax.js", | |||||
"~/Scripts/WebForms/MsAjax/MicrosoftAjaxApplicationServices.js", | |||||
"~/Scripts/WebForms/MsAjax/MicrosoftAjaxTimer.js", | |||||
"~/Scripts/WebForms/MsAjax/MicrosoftAjaxWebForms.js")); | |||||
// Use the Development version of Modernizr to develop with and learn from. Then, when you’re | |||||
// ready for production, use the build tool at https://modernizr.com to pick only the tests you need | |||||
bundles.Add(new ScriptBundle("~/bundles/modernizr").Include( | |||||
"~/Scripts/modernizr-*")); | |||||
System.Web.UI.ScriptManager.ScriptResourceMapping.AddDefinition( | |||||
"respond", | |||||
new ScriptResourceDefinition | |||||
{ | |||||
Path = "~/Scripts/respond.min.js", | |||||
DebugPath = "~/Scripts/respond.js", | |||||
}); | |||||
} | |||||
} | |||||
} |
@ -1,18 +0,0 @@ | |||||
using System; | |||||
using System.Collections.Generic; | |||||
using System.Web; | |||||
using System.Web.Routing; | |||||
using Microsoft.AspNet.FriendlyUrls; | |||||
namespace Microsoft.eShopOnContainers.Catalog.WebForms | |||||
{ | |||||
public static class RouteConfig | |||||
{ | |||||
public static void RegisterRoutes(RouteCollection routes) | |||||
{ | |||||
var settings = new FriendlyUrlSettings(); | |||||
settings.AutoRedirectMode = RedirectMode.Permanent; | |||||
routes.EnableFriendlyUrls(settings); | |||||
} | |||||
} | |||||
} |
@ -1,79 +0,0 @@ | |||||
<?xml version="1.0" encoding="utf-8"?> | |||||
<ApplicationInsights xmlns="http://schemas.microsoft.com/ApplicationInsights/2013/Settings"> | |||||
<TelemetryInitializers> | |||||
<Add Type="Microsoft.ApplicationInsights.DependencyCollector.HttpDependenciesParsingTelemetryInitializer, Microsoft.AI.DependencyCollector"/> | |||||
<Add Type="Microsoft.ApplicationInsights.WindowsServer.AzureRoleEnvironmentTelemetryInitializer, Microsoft.AI.WindowsServer"/> | |||||
<Add Type="Microsoft.ApplicationInsights.WindowsServer.AzureWebAppRoleEnvironmentTelemetryInitializer, Microsoft.AI.WindowsServer"/> | |||||
<Add Type="Microsoft.ApplicationInsights.WindowsServer.BuildInfoConfigComponentVersionTelemetryInitializer, Microsoft.AI.WindowsServer"/> | |||||
<Add Type="Microsoft.ApplicationInsights.Web.WebTestTelemetryInitializer, Microsoft.AI.Web"/> | |||||
<Add Type="Microsoft.ApplicationInsights.Web.SyntheticUserAgentTelemetryInitializer, Microsoft.AI.Web"> | |||||
<!-- Extended list of bots: | |||||
search|spider|crawl|Bot|Monitor|BrowserMob|BingPreview|PagePeeker|WebThumb|URL2PNG|ZooShot|GomezA|Google SketchUp|Read Later|KTXN|KHTE|Keynote|Pingdom|AlwaysOn|zao|borg|oegp|silk|Xenu|zeal|NING|htdig|lycos|slurp|teoma|voila|yahoo|Sogou|CiBra|Nutch|Java|JNLP|Daumoa|Genieo|ichiro|larbin|pompos|Scrapy|snappy|speedy|vortex|favicon|indexer|Riddler|scooter|scraper|scrubby|WhatWeb|WinHTTP|voyager|archiver|Icarus6j|mogimogi|Netvibes|altavista|charlotte|findlinks|Retreiver|TLSProber|WordPress|wsr-agent|http client|Python-urllib|AppEngine-Google|semanticdiscovery|facebookexternalhit|web/snippet|Google-HTTP-Java-Client--> | |||||
<Filters>search|spider|crawl|Bot|Monitor|AlwaysOn</Filters> | |||||
</Add> | |||||
<Add Type="Microsoft.ApplicationInsights.Web.ClientIpHeaderTelemetryInitializer, Microsoft.AI.Web"/> | |||||
<Add Type="Microsoft.ApplicationInsights.Web.OperationNameTelemetryInitializer, Microsoft.AI.Web"/> | |||||
<Add Type="Microsoft.ApplicationInsights.Web.OperationCorrelationTelemetryInitializer, Microsoft.AI.Web"/> | |||||
<Add Type="Microsoft.ApplicationInsights.Web.UserTelemetryInitializer, Microsoft.AI.Web"/> | |||||
<Add Type="Microsoft.ApplicationInsights.Web.AuthenticatedUserIdTelemetryInitializer, Microsoft.AI.Web"/> | |||||
<Add Type="Microsoft.ApplicationInsights.Web.AccountIdTelemetryInitializer, Microsoft.AI.Web"/> | |||||
<Add Type="Microsoft.ApplicationInsights.Web.SessionTelemetryInitializer, Microsoft.AI.Web"/> | |||||
</TelemetryInitializers> | |||||
<TelemetryModules> | |||||
<Add Type="Microsoft.ApplicationInsights.DependencyCollector.DependencyTrackingTelemetryModule, Microsoft.AI.DependencyCollector"/> | |||||
<Add Type="Microsoft.ApplicationInsights.Extensibility.PerfCounterCollector.PerformanceCollectorModule, Microsoft.AI.PerfCounterCollector"> | |||||
<!-- | |||||
Use the following syntax here to collect additional performance counters: | |||||
<Counters> | |||||
<Add PerformanceCounter="\Process(??APP_WIN32_PROC??)\Handle Count" ReportAs="Process handle count" /> | |||||
... | |||||
</Counters> | |||||
PerformanceCounter must be either \CategoryName(InstanceName)\CounterName or \CategoryName\CounterName | |||||
NOTE: performance counters configuration will be lost upon NuGet upgrade. | |||||
The following placeholders are supported as InstanceName: | |||||
??APP_WIN32_PROC?? - instance name of the application process for Win32 counters. | |||||
??APP_W3SVC_PROC?? - instance name of the application IIS worker process for IIS/ASP.NET counters. | |||||
??APP_CLR_PROC?? - instance name of the application CLR process for .NET counters. | |||||
--> | |||||
</Add> | |||||
<Add Type="Microsoft.ApplicationInsights.Extensibility.PerfCounterCollector.QuickPulse.QuickPulseTelemetryModule, Microsoft.AI.PerfCounterCollector"/> | |||||
<Add Type="Microsoft.ApplicationInsights.WindowsServer.DeveloperModeWithDebuggerAttachedTelemetryModule, Microsoft.AI.WindowsServer"/> | |||||
<Add Type="Microsoft.ApplicationInsights.WindowsServer.UnhandledExceptionTelemetryModule, Microsoft.AI.WindowsServer"/> | |||||
<Add Type="Microsoft.ApplicationInsights.WindowsServer.UnobservedExceptionTelemetryModule, Microsoft.AI.WindowsServer"/> | |||||
<Add Type="Microsoft.ApplicationInsights.Web.RequestTrackingTelemetryModule, Microsoft.AI.Web"> | |||||
<Handlers> | |||||
<!-- | |||||
Add entries here to filter out additional handlers: | |||||
NOTE: handler configuration will be lost upon NuGet upgrade. | |||||
--> | |||||
<Add>System.Web.Handlers.TransferRequestHandler</Add> | |||||
<Add>Microsoft.VisualStudio.Web.PageInspector.Runtime.Tracing.RequestDataHttpHandler</Add> | |||||
<Add>System.Web.StaticFileHandler</Add> | |||||
<Add>System.Web.Handlers.AssemblyResourceLoader</Add> | |||||
<Add>System.Web.Optimization.BundleHandler</Add> | |||||
<Add>System.Web.Script.Services.ScriptHandlerFactory</Add> | |||||
<Add>System.Web.Handlers.TraceHandler</Add> | |||||
<Add>System.Web.Services.Discovery.DiscoveryRequestHandler</Add> | |||||
<Add>System.Web.HttpDebugHandler</Add> | |||||
</Handlers> | |||||
</Add> | |||||
<Add Type="Microsoft.ApplicationInsights.Web.ExceptionTrackingTelemetryModule, Microsoft.AI.Web"/> | |||||
</TelemetryModules> | |||||
<TelemetryProcessors> | |||||
<Add Type="Microsoft.ApplicationInsights.Extensibility.PerfCounterCollector.QuickPulse.QuickPulseTelemetryProcessor, Microsoft.AI.PerfCounterCollector"/> | |||||
<Add Type="Microsoft.ApplicationInsights.WindowsServer.TelemetryChannel.AdaptiveSamplingTelemetryProcessor, Microsoft.AI.ServerTelemetryChannel"> | |||||
<MaxTelemetryItemsPerSecond>5</MaxTelemetryItemsPerSecond> | |||||
</Add> | |||||
</TelemetryProcessors> | |||||
<TelemetryChannel Type="Microsoft.ApplicationInsights.WindowsServer.TelemetryChannel.ServerTelemetryChannel, Microsoft.AI.ServerTelemetryChannel"/> | |||||
<!-- | |||||
Learn more about Application Insights configuration with ApplicationInsights.config here: | |||||
http://go.microsoft.com/fwlink/?LinkID=513840 | |||||
Note: If not present, please add <InstrumentationKey>Your Key</InstrumentationKey> to the top of this file. | |||||
--></ApplicationInsights> |
@ -1,7 +0,0 @@ | |||||
<?xml version="1.0" encoding="utf-8" ?> | |||||
<bundles version="1.0"> | |||||
<styleBundle path="~/Content/css"> | |||||
<include path="~/Content/bootstrap.css" /> | |||||
<include path="~/Content/Site.css" /> | |||||
</styleBundle> | |||||
</bundles> |
@ -1,304 +0,0 @@ | |||||
<?xml version="1.0" encoding="utf-8"?> | |||||
<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> | |||||
<Import Project="..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.3\build\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props" Condition="Exists('..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.3\build\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props')" /> | |||||
<Import Project="..\packages\Microsoft.Net.Compilers.1.3.2\build\Microsoft.Net.Compilers.props" Condition="Exists('..\packages\Microsoft.Net.Compilers.1.3.2\build\Microsoft.Net.Compilers.props')" /> | |||||
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" /> | |||||
<PropertyGroup> | |||||
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> | |||||
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> | |||||
<ProductVersion> | |||||
</ProductVersion> | |||||
<SchemaVersion>2.0</SchemaVersion> | |||||
<ProjectGuid>{07B42E24-32F8-4C10-99A8-0FB5AC6BFEBB}</ProjectGuid> | |||||
<ProjectTypeGuids>{349c5851-65df-11da-9384-00065b846f21};{fae04ec0-301f-11d3-bf4b-00c04f79efbc}</ProjectTypeGuids> | |||||
<OutputType>Library</OutputType> | |||||
<AppDesignerFolder>Properties</AppDesignerFolder> | |||||
<RootNamespace>Microsoft.eShopOnContainers.Catalog.WebForms</RootNamespace> | |||||
<AssemblyName>Catalog.WebForms</AssemblyName> | |||||
<TargetFrameworkVersion>v4.5.2</TargetFrameworkVersion> | |||||
<UseIISExpress>true</UseIISExpress> | |||||
<IISExpressSSLPort /> | |||||
<IISExpressAnonymousAuthentication /> | |||||
<IISExpressWindowsAuthentication /> | |||||
<IISExpressUseClassicPipelineMode /> | |||||
<UseGlobalApplicationHostFile /> | |||||
<NuGetPackageImportStamp> | |||||
</NuGetPackageImportStamp> | |||||
</PropertyGroup> | |||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "> | |||||
<DebugSymbols>true</DebugSymbols> | |||||
<DebugType>full</DebugType> | |||||
<Optimize>false</Optimize> | |||||
<OutputPath>bin\</OutputPath> | |||||
<DefineConstants>DEBUG;TRACE</DefineConstants> | |||||
<ErrorReport>prompt</ErrorReport> | |||||
<WarningLevel>4</WarningLevel> | |||||
</PropertyGroup> | |||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' "> | |||||
<DebugSymbols>true</DebugSymbols> | |||||
<DebugType>pdbonly</DebugType> | |||||
<Optimize>true</Optimize> | |||||
<OutputPath>bin\</OutputPath> | |||||
<DefineConstants>TRACE</DefineConstants> | |||||
<ErrorReport>prompt</ErrorReport> | |||||
<WarningLevel>4</WarningLevel> | |||||
</PropertyGroup> | |||||
<ItemGroup> | |||||
<Reference Include="Autofac, Version=4.3.0.0, Culture=neutral, PublicKeyToken=17863af14b0044da, processorArchitecture=MSIL"> | |||||
<HintPath>..\packages\Autofac.4.3.0\lib\net45\Autofac.dll</HintPath> | |||||
</Reference> | |||||
<Reference Include="Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=1.0.3.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL"> | |||||
<HintPath>..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.3\lib\net45\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.dll</HintPath> | |||||
</Reference> | |||||
<Reference Include="Microsoft.CSharp" /> | |||||
<Reference Include="System.ComponentModel.DataAnnotations" /> | |||||
<Reference Include="System" /> | |||||
<Reference Include="System.Data" /> | |||||
<Reference Include="System.Core" /> | |||||
<Reference Include="System.Data.DataSetExtensions" /> | |||||
<Reference Include="System.Web.Extensions" /> | |||||
<Reference Include="System.Xml.Linq" /> | |||||
<Reference Include="System.Drawing" /> | |||||
<Reference Include="System.Web" /> | |||||
<Reference Include="System.Xml" /> | |||||
<Reference Include="System.Configuration" /> | |||||
<Reference Include="System.Web.Services" /> | |||||
<Reference Include="System.EnterpriseServices" /> | |||||
<Reference Include="System.Web.DynamicData" /> | |||||
<Reference Include="System.Web.Entity" /> | |||||
<Reference Include="System.Web.ApplicationServices" /> | |||||
<Reference Include="Microsoft.Web.Infrastructure, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL"> | |||||
<Private>True</Private> | |||||
<HintPath>..\packages\Microsoft.Web.Infrastructure.1.0.0.0\lib\net40\Microsoft.Web.Infrastructure.dll</HintPath> | |||||
</Reference> | |||||
<Reference Include="AspNet.ScriptManager.bootstrap"> | |||||
<HintPath>..\packages\AspNet.ScriptManager.bootstrap.3.0.0\lib\net45\AspNet.ScriptManager.bootstrap.dll</HintPath> | |||||
</Reference> | |||||
<Reference Include="AspNet.ScriptManager.jQuery"> | |||||
<HintPath>..\packages\AspNet.ScriptManager.jQuery.1.10.2\lib\net45\AspNet.ScriptManager.jQuery.dll</HintPath> | |||||
</Reference> | |||||
<Reference Include="Microsoft.ScriptManager.MSAjax"> | |||||
<HintPath>..\packages\Microsoft.AspNet.ScriptManager.MSAjax.5.0.0\lib\net45\Microsoft.ScriptManager.MSAjax.dll</HintPath> | |||||
</Reference> | |||||
<Reference Include="Microsoft.ScriptManager.WebForms"> | |||||
<HintPath>..\packages\Microsoft.AspNet.ScriptManager.WebForms.5.0.0\lib\net45\Microsoft.ScriptManager.WebForms.dll</HintPath> | |||||
</Reference> | |||||
<Reference Include="System.Web.Optimization, Version=1.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"> | |||||
<HintPath>..\packages\Microsoft.AspNet.Web.Optimization.1.1.3\lib\net40\System.Web.Optimization.dll</HintPath> | |||||
</Reference> | |||||
<Reference Include="WebGrease"> | |||||
<Private>True</Private> | |||||
<HintPath>..\packages\WebGrease.1.5.2\lib\WebGrease.dll</HintPath> | |||||
</Reference> | |||||
<Reference Include="Antlr3.Runtime"> | |||||
<Private>True</Private> | |||||
<HintPath>..\packages\Antlr.3.4.1.9004\lib\Antlr3.Runtime.dll</HintPath> | |||||
</Reference> | |||||
<Reference Include="Microsoft.AspNet.Web.Optimization.WebForms"> | |||||
<Private>True</Private> | |||||
<HintPath>..\packages\Microsoft.AspNet.Web.Optimization.WebForms.1.1.3\lib\net45\Microsoft.AspNet.Web.Optimization.WebForms.dll</HintPath> | |||||
</Reference> | |||||
<Reference Include="Microsoft.AspNet.FriendlyUrls"> | |||||
<HintPath>..\packages\Microsoft.AspNet.FriendlyUrls.Core.1.0.2\lib\net45\Microsoft.AspNet.FriendlyUrls.dll</HintPath> | |||||
</Reference> | |||||
</ItemGroup> | |||||
<ItemGroup> | |||||
<Reference Include="Newtonsoft.Json"> | |||||
<HintPath>..\packages\Newtonsoft.Json.6.0.4\lib\net45\Newtonsoft.Json.dll</HintPath> | |||||
</Reference> | |||||
<Reference Include="Microsoft.ApplicationInsights"> | |||||
<HintPath>..\packages\Microsoft.ApplicationInsights.2.2.0\lib\net45\Microsoft.ApplicationInsights.dll</HintPath> | |||||
</Reference> | |||||
<Reference Include="Microsoft.AI.Agent.Intercept"> | |||||
<HintPath>..\packages\Microsoft.ApplicationInsights.Agent.Intercept.2.0.6\lib\net45\Microsoft.AI.Agent.Intercept.dll</HintPath> | |||||
</Reference> | |||||
<Reference Include="Microsoft.AI.DependencyCollector"> | |||||
<HintPath>..\packages\Microsoft.ApplicationInsights.DependencyCollector.2.2.0\lib\net45\Microsoft.AI.DependencyCollector.dll</HintPath> | |||||
</Reference> | |||||
<Reference Include="Microsoft.AI.PerfCounterCollector"> | |||||
<HintPath>..\packages\Microsoft.ApplicationInsights.PerfCounterCollector.2.2.0\lib\net45\Microsoft.AI.PerfCounterCollector.dll</HintPath> | |||||
</Reference> | |||||
<Reference Include="Microsoft.AI.ServerTelemetryChannel"> | |||||
<HintPath>..\packages\Microsoft.ApplicationInsights.WindowsServer.TelemetryChannel.2.2.0\lib\net45\Microsoft.AI.ServerTelemetryChannel.dll</HintPath> | |||||
</Reference> | |||||
<Reference Include="Microsoft.AI.WindowsServer"> | |||||
<HintPath>..\packages\Microsoft.ApplicationInsights.WindowsServer.2.2.0\lib\net45\Microsoft.AI.WindowsServer.dll</HintPath> | |||||
</Reference> | |||||
<Reference Include="Microsoft.AI.Web"> | |||||
<HintPath>..\packages\Microsoft.ApplicationInsights.Web.2.2.0\lib\net45\Microsoft.AI.Web.dll</HintPath> | |||||
</Reference> | |||||
</ItemGroup> | |||||
<ItemGroup> | |||||
<Content Include="About.aspx" /> | |||||
<Content Include="Contact.aspx" /> | |||||
<Content Include="Content\bootstrap.css" /> | |||||
<Content Include="Content\bootstrap.min.css" /> | |||||
<Content Include="Content\fake_product_01.png" /> | |||||
<Content Include="Content\fake_product_02.png" /> | |||||
<Content Include="Content\fake_product_03.png" /> | |||||
<Content Include="Content\fake_product_04.png" /> | |||||
<Content Include="Content\fake_product_05.png" /> | |||||
<Content Include="Content\Site.css" /> | |||||
<Content Include="Default.aspx" /> | |||||
<Content Include="favicon.ico" /> | |||||
<Content Include="fonts\glyphicons-halflings-regular.svg" /> | |||||
<Content Include="Global.asax" /> | |||||
<Content Include="fonts\glyphicons-halflings-regular.woff" /> | |||||
<Content Include="fonts\glyphicons-halflings-regular.ttf" /> | |||||
<Content Include="fonts\glyphicons-halflings-regular.eot" /> | |||||
<Content Include="ApplicationInsights.config"> | |||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> | |||||
</Content> | |||||
<None Include="Dockerfile" /> | |||||
<None Include=".dockerignore"> | |||||
<DependentUpon>Dockerfile</DependentUpon> | |||||
</None> | |||||
<None Include="Properties\PublishProfiles\FolderProfile.pubxml" /> | |||||
<None Include="Scripts\jquery-1.10.2.intellisense.js" /> | |||||
<Content Include="Scripts\bootstrap.js" /> | |||||
<Content Include="Scripts\bootstrap.min.js" /> | |||||
<Content Include="Scripts\jquery-1.10.2.js" /> | |||||
<Content Include="Scripts\jquery-1.10.2.min.js" /> | |||||
<Content Include="Scripts\modernizr-2.6.2.js" /> | |||||
<Content Include="Scripts\respond.js" /> | |||||
<Content Include="Scripts\respond.min.js" /> | |||||
<Content Include="Scripts\WebForms\DetailsView.js" /> | |||||
<Content Include="Scripts\WebForms\Focus.js" /> | |||||
<Content Include="Scripts\WebForms\GridView.js" /> | |||||
<Content Include="Scripts\WebForms\Menu.js" /> | |||||
<Content Include="Scripts\WebForms\MenuStandards.js" /> | |||||
<Content Include="Scripts\WebForms\MSAjax\MicrosoftAjax.js" /> | |||||
<Content Include="Scripts\WebForms\MSAjax\MicrosoftAjaxApplicationServices.js" /> | |||||
<Content Include="Scripts\WebForms\MSAjax\MicrosoftAjaxComponentModel.js" /> | |||||
<Content Include="Scripts\WebForms\MSAjax\MicrosoftAjaxCore.js" /> | |||||
<Content Include="Scripts\WebForms\MSAjax\MicrosoftAjaxGlobalization.js" /> | |||||
<Content Include="Scripts\WebForms\MSAjax\MicrosoftAjaxHistory.js" /> | |||||
<Content Include="Scripts\WebForms\MSAjax\MicrosoftAjaxNetwork.js" /> | |||||
<Content Include="Scripts\WebForms\MSAjax\MicrosoftAjaxSerialization.js" /> | |||||
<Content Include="Scripts\WebForms\MSAjax\MicrosoftAjaxTimer.js" /> | |||||
<Content Include="Scripts\WebForms\MSAjax\MicrosoftAjaxWebForms.js" /> | |||||
<Content Include="Scripts\WebForms\MSAjax\MicrosoftAjaxWebServices.js" /> | |||||
<Content Include="Scripts\WebForms\SmartNav.js" /> | |||||
<Content Include="Scripts\WebForms\TreeView.js" /> | |||||
<Content Include="Scripts\WebForms\WebForms.js" /> | |||||
<Content Include="Scripts\WebForms\WebParts.js" /> | |||||
<Content Include="Scripts\WebForms\WebUIValidation.js" /> | |||||
<Content Include="Site.Master" /> | |||||
<Content Include="ViewSwitcher.ascx" /> | |||||
<Content Include="Web.config" /> | |||||
<Content Include="Bundle.config" /> | |||||
<Content Include="Site.Mobile.Master" /> | |||||
</ItemGroup> | |||||
<ItemGroup> | |||||
<Compile Include="App_Start\BundleConfig.cs" /> | |||||
<Compile Include="About.aspx.cs"> | |||||
<DependentUpon>About.aspx</DependentUpon> | |||||
<SubType>ASPXCodeBehind</SubType> | |||||
</Compile> | |||||
<Compile Include="About.aspx.designer.cs"> | |||||
<DependentUpon>About.aspx</DependentUpon> | |||||
</Compile> | |||||
<Compile Include="App_Start\RouteConfig.cs" /> | |||||
<Compile Include="Contact.aspx.cs"> | |||||
<DependentUpon>Contact.aspx</DependentUpon> | |||||
<SubType>ASPXCodeBehind</SubType> | |||||
</Compile> | |||||
<Compile Include="Contact.aspx.designer.cs"> | |||||
<DependentUpon>Contact.aspx</DependentUpon> | |||||
</Compile> | |||||
<Compile Include="Default.aspx.cs"> | |||||
<DependentUpon>Default.aspx</DependentUpon> | |||||
<SubType>ASPXCodeBehind</SubType> | |||||
</Compile> | |||||
<Compile Include="Default.aspx.designer.cs"> | |||||
<DependentUpon>Default.aspx</DependentUpon> | |||||
</Compile> | |||||
<Compile Include="Extensions\ObservableExtensions.cs" /> | |||||
<Compile Include="Global.asax.cs"> | |||||
<DependentUpon>Global.asax</DependentUpon> | |||||
</Compile> | |||||
<Compile Include="Models\CatalogBrand.cs" /> | |||||
<Compile Include="Models\CatalogItem.cs" /> | |||||
<Compile Include="Models\CatalogRoot.cs" /> | |||||
<Compile Include="Models\CatalogType.cs" /> | |||||
<Compile Include="Properties\AssemblyInfo.cs" /> | |||||
<Compile Include="Services\CatalogMockService.cs" /> | |||||
<Compile Include="Services\CatalogService.cs" /> | |||||
<Compile Include="Services\Common.cs" /> | |||||
<Compile Include="Services\ICatalogService.cs" /> | |||||
<Compile Include="Services\IRouteProvider.cs" /> | |||||
<Compile Include="Site.Master.cs"> | |||||
<DependentUpon>Site.Master</DependentUpon> | |||||
<SubType>ASPXCodeBehind</SubType> | |||||
</Compile> | |||||
<Compile Include="Site.Master.designer.cs"> | |||||
<DependentUpon>Site.Master</DependentUpon> | |||||
</Compile> | |||||
<Compile Include="Site.Mobile.Master.cs"> | |||||
<DependentUpon>Site.Mobile.Master</DependentUpon> | |||||
<SubType>ASPXCodeBehind</SubType> | |||||
</Compile> | |||||
<Compile Include="Site.Mobile.Master.designer.cs"> | |||||
<DependentUpon>Site.Mobile.Master</DependentUpon> | |||||
</Compile> | |||||
<Compile Include="ViewSwitcher.ascx.cs"> | |||||
<DependentUpon>ViewSwitcher.ascx</DependentUpon> | |||||
<SubType>ASPXCodeBehind</SubType> | |||||
</Compile> | |||||
<Compile Include="ViewSwitcher.ascx.designer.cs"> | |||||
<DependentUpon>ViewSwitcher.ascx</DependentUpon> | |||||
</Compile> | |||||
</ItemGroup> | |||||
<ItemGroup> | |||||
<Folder Include="App_Data\" /> | |||||
</ItemGroup> | |||||
<ItemGroup> | |||||
<Content Include="packages.config" /> | |||||
<Content Include="Scripts\jquery-1.10.2.min.map" /> | |||||
<None Include="Web.Debug.config"> | |||||
<DependentUpon>Web.config</DependentUpon> | |||||
</None> | |||||
<None Include="Web.Release.config"> | |||||
<DependentUpon>Web.config</DependentUpon> | |||||
</None> | |||||
</ItemGroup> | |||||
<PropertyGroup> | |||||
<VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">10.0</VisualStudioVersion> | |||||
<VSToolsPath Condition="'$(VSToolsPath)' == ''">$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)</VSToolsPath> | |||||
</PropertyGroup> | |||||
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" /> | |||||
<Import Project="$(VSToolsPath)\WebApplications\Microsoft.WebApplication.targets" Condition="'$(VSToolsPath)' != ''" /> | |||||
<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v10.0\WebApplications\Microsoft.WebApplication.targets" Condition="false" /> | |||||
<ProjectExtensions> | |||||
<VisualStudio> | |||||
<FlavorProperties GUID="{349c5851-65df-11da-9384-00065b846f21}"> | |||||
<WebProjectProperties> | |||||
<UseIIS>True</UseIIS> | |||||
<AutoAssignPort>True</AutoAssignPort> | |||||
<DevelopmentServerPort>58178</DevelopmentServerPort> | |||||
<DevelopmentServerVPath>/</DevelopmentServerVPath> | |||||
<IISUrl>http://localhost:58178/</IISUrl> | |||||
<NTLMAuthentication>False</NTLMAuthentication> | |||||
<UseCustomServer>False</UseCustomServer> | |||||
<CustomServerUrl> | |||||
</CustomServerUrl> | |||||
<SaveServerSettingsInUserFile>False</SaveServerSettingsInUserFile> | |||||
</WebProjectProperties> | |||||
</FlavorProperties> | |||||
</VisualStudio> | |||||
</ProjectExtensions> | |||||
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild"> | |||||
<PropertyGroup> | |||||
<ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText> | |||||
</PropertyGroup> | |||||
<Error Condition="!Exists('..\packages\Microsoft.Net.Compilers.1.3.2\build\Microsoft.Net.Compilers.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Microsoft.Net.Compilers.1.3.2\build\Microsoft.Net.Compilers.props'))" /> | |||||
<Error Condition="!Exists('..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.3\build\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.3\build\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props'))" /> | |||||
</Target> | |||||
<!-- To modify your build process, add your task inside one of the targets below and uncomment it. | |||||
Other similar extension points exist, see Microsoft.Common.targets. | |||||
<Target Name="BeforeBuild"> | |||||
</Target> | |||||
<Target Name="AfterBuild"> | |||||
</Target> | |||||
--> | |||||
</Project> |
@ -1,17 +0,0 @@ | |||||
<%@ Page Title="Contact" Language="C#" MasterPageFile="~/Site.Master" AutoEventWireup="true" CodeBehind="Contact.aspx.cs" Inherits="Microsoft.eShopOnContainers.Catalog.WebForms.Contact" %> | |||||
<asp:Content ID="BodyContent" ContentPlaceHolderID="MainContent" runat="server"> | |||||
<h2><%: Title %>.</h2> | |||||
<h3>Your contact page.</h3> | |||||
<address> | |||||
One Microsoft Way<br /> | |||||
Redmond, WA 98052-6399<br /> | |||||
<abbr title="Phone">P:</abbr> | |||||
425.555.0100 | |||||
</address> | |||||
<address> | |||||
<strong>Support:</strong> <a href="mailto:Support@example.com">Support@example.com</a><br /> | |||||
<strong>Marketing:</strong> <a href="mailto:Marketing@example.com">Marketing@example.com</a> | |||||
</address> | |||||
</asp:Content> |
@ -1,17 +0,0 @@ | |||||
using System; | |||||
using System.Collections.Generic; | |||||
using System.Linq; | |||||
using System.Web; | |||||
using System.Web.UI; | |||||
using System.Web.UI.WebControls; | |||||
namespace Microsoft.eShopOnContainers.Catalog.WebForms | |||||
{ | |||||
public partial class Contact : Page | |||||
{ | |||||
protected void Page_Load(object sender, EventArgs e) | |||||
{ | |||||
} | |||||
} | |||||
} |
@ -1,15 +0,0 @@ | |||||
//------------------------------------------------------------------------------ | |||||
// <auto-generated> | |||||
// This code was generated by a tool. | |||||
// | |||||
// Changes to this file may cause incorrect behavior and will be lost if | |||||
// the code is regenerated. | |||||
// </auto-generated> | |||||
//------------------------------------------------------------------------------ | |||||
namespace Microsoft.eShopOnContainers.Catalog.WebForms { | |||||
public partial class Contact { | |||||
} | |||||
} |
@ -1,31 +0,0 @@ | |||||
/* Move down content because we have a fixed navbar that is 50px tall */ | |||||
body { | |||||
padding-top: 50px; | |||||
padding-bottom: 20px; | |||||
} | |||||
/* Wrapping element */ | |||||
/* Set some basic padding to keep content from hitting the edges */ | |||||
.body-content { | |||||
padding-left: 15px; | |||||
padding-right: 15px; | |||||
} | |||||
/* Set widths on the form inputs since otherwise they're 100% wide */ | |||||
input, | |||||
select, | |||||
textarea { | |||||
max-width: 280px; | |||||
} | |||||
/* Responsive: Portrait tablets and up */ | |||||
@media screen and (min-width: 768px) { | |||||
.jumbotron { | |||||
margin-top: 20px; | |||||
} | |||||
.body-content { | |||||
padding: 0; | |||||
} | |||||
} |
@ -1,73 +0,0 @@ | |||||
<%@ Page Title="Home Page" Language="C#" MasterPageFile="~/Site.Master" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="Microsoft.eShopOnContainers.Catalog.WebForms._Default" Async="true" %> | |||||
<asp:Content ID="BodyContent" ContentPlaceHolderID="MainContent" runat="server"> | |||||
<div class="row"> | |||||
<asp:ListView ID="catalogList" runat="server" | |||||
DataKeyNames="Id" GroupItemCount="4" | |||||
ItemType="eShopOnContainers.Core.Models.Catalog.CatalogItem"> | |||||
<EmptyDataTemplate> | |||||
<table > | |||||
<tr> | |||||
<td>Well, there's nothing in the catalog.</td> | |||||
</tr> | |||||
</table> | |||||
</EmptyDataTemplate> | |||||
<EmptyItemTemplate> | |||||
<td/> | |||||
</EmptyItemTemplate> | |||||
<GroupTemplate> | |||||
<tr id="itemPlaceholderContainer" runat="server"> | |||||
<td id="itemPlaceholder" runat="server"></td> | |||||
</tr> | |||||
</GroupTemplate> | |||||
<ItemTemplate> | |||||
<td runat="server"> | |||||
<table> | |||||
<tr> | |||||
<td> | |||||
<a href="ProductDetails.aspx?productID=<%#:Item.Id%>"> | |||||
<img src="<%#:Item.PictureUri%>" | |||||
style="border: solid" /></a> | |||||
</td> | |||||
</tr> | |||||
<tr> | |||||
<td> | |||||
<a href="ProductDetails.aspx?productID=<%#:Item.Id%>"> | |||||
<span> | |||||
<%#:Item.Name%> | |||||
</span> | |||||
</a> | |||||
<br /> | |||||
<span> | |||||
<b>Price: </b><%#:String.Format("{0:c}", Item.Price)%> | |||||
</span> | |||||
<br /> | |||||
</td> | |||||
</tr> | |||||
<tr> | |||||
<td> </td> | |||||
</tr> | |||||
</table> | |||||
</p> | |||||
</td> | |||||
</ItemTemplate> | |||||
<LayoutTemplate> | |||||
<table style="width:100%;"> | |||||
<tbody> | |||||
<tr> | |||||
<td> | |||||
<table id="groupPlaceholderContainer" runat="server" style="width:100%"> | |||||
<tr id="groupPlaceholder"></tr> | |||||
</table> | |||||
</td> | |||||
</tr> | |||||
<tr> | |||||
<td></td> | |||||
</tr> | |||||
<tr></tr> | |||||
</tbody> | |||||
</table> | |||||
</LayoutTemplate> | |||||
</asp:ListView> | |||||
</div> | |||||
</asp:Content> |
@ -1,45 +0,0 @@ | |||||
using Autofac; | |||||
using Autofac.Core; | |||||
using eShopOnContainers.Core.Models.Catalog; | |||||
using eShopOnContainers.Core.Services.Catalog; | |||||
using System; | |||||
using System.Collections.Generic; | |||||
using System.Linq; | |||||
using System.Threading.Tasks; | |||||
using System.Web; | |||||
using System.Web.UI; | |||||
using System.Web.UI.WebControls; | |||||
namespace Microsoft.eShopOnContainers.Catalog.WebForms | |||||
{ | |||||
public partial class _Default : Page | |||||
{ | |||||
private ILifetimeScope scope; | |||||
private ICatalogService catalog; | |||||
protected override void OnLoad(EventArgs e) | |||||
{ | |||||
RegisterAsyncTask(new PageAsyncTask(LoadCatalogDataAsync)); | |||||
base.OnLoad(e); | |||||
} | |||||
private async Task LoadCatalogDataAsync() | |||||
{ | |||||
var container = Application.Get("container") as IContainer; | |||||
using (scope = container?.BeginLifetimeScope()) | |||||
{ | |||||
catalog = container?.Resolve<ICatalogService>(); | |||||
var collection = await catalog?.GetCatalogAsync(); | |||||
catalogList.DataSource = collection; | |||||
catalogList.DataBind(); | |||||
} | |||||
} | |||||
protected void Page_Load(object sender, EventArgs e) | |||||
{ | |||||
} | |||||
} | |||||
} |
@ -1,24 +0,0 @@ | |||||
//------------------------------------------------------------------------------ | |||||
// <auto-generated> | |||||
// This code was generated by a tool. | |||||
// | |||||
// Changes to this file may cause incorrect behavior and will be lost if | |||||
// the code is regenerated. | |||||
// </auto-generated> | |||||
//------------------------------------------------------------------------------ | |||||
namespace Microsoft.eShopOnContainers.Catalog.WebForms { | |||||
public partial class _Default { | |||||
/// <summary> | |||||
/// catalogList control. | |||||
/// </summary> | |||||
/// <remarks> | |||||
/// Auto-generated field. | |||||
/// To modify move field declaration from designer file to code-behind file. | |||||
/// </remarks> | |||||
protected global::System.Web.UI.WebControls.ListView catalogList; | |||||
} | |||||
} |
@ -1,4 +0,0 @@ | |||||
FROM microsoft/aspnet | |||||
ARG source | |||||
WORKDIR /inetpub/wwwroot | |||||
COPY ${source:-obj/Docker/publish} . |
@ -1,20 +0,0 @@ | |||||
using System.Collections.Generic; | |||||
using System.Collections.ObjectModel; | |||||
namespace eShopOnContainers.Core.Extensions | |||||
{ | |||||
public static class ObservableExtension | |||||
{ | |||||
public static ObservableCollection<T> ToObservableCollection<T>(this IEnumerable<T> source) | |||||
{ | |||||
foreach (T item in source) | |||||
{ | |||||
collection.Add(item); | |||||
} | |||||
return collection; | |||||
} | |||||
} | |||||
} |
@ -1 +0,0 @@ | |||||
<%@ Application Codebehind="Global.asax.cs" Inherits="Microsoft.eShopOnContainers.Catalog.WebForms.Global" Language="C#" %> |
@ -1,41 +0,0 @@ | |||||
using Autofac; | |||||
using eShopOnContainers.Core.Services.Catalog; | |||||
using System; | |||||
using System.Collections.Generic; | |||||
using System.Linq; | |||||
using System.Web; | |||||
using System.Web.Configuration; | |||||
using System.Web.Optimization; | |||||
using System.Web.Routing; | |||||
using System.Web.Security; | |||||
using System.Web.SessionState; | |||||
namespace Microsoft.eShopOnContainers.Catalog.WebForms | |||||
{ | |||||
public class Global : HttpApplication | |||||
{ | |||||
void Application_Start(object sender, EventArgs e) | |||||
{ | |||||
// Code that runs on application startup | |||||
RouteConfig.RegisterRoutes(RouteTable.Routes); | |||||
BundleConfig.RegisterBundles(BundleTable.Bundles); | |||||
// Register Containers: | |||||
var settings= WebConfigurationManager.AppSettings; | |||||
var useFake = settings["usefake"]; | |||||
bool fake = useFake == "true"; | |||||
var builder = new ContainerBuilder(); | |||||
if (fake) | |||||
{ | |||||
builder.RegisterType<CatalogMockService>() | |||||
.As<ICatalogService>(); | |||||
} else { | |||||
builder.RegisterType<CatalogMockService>() | |||||
.As<ICatalogService>(); | |||||
} | |||||
var container = builder.Build(); | |||||
Application.Add("container", container); | |||||
} | |||||
} | |||||
} |
@ -1,13 +0,0 @@ | |||||
// Taken from https://github.com/dotnet/eShopOnContainers/blob/vs2017/src/Mobile/eShopOnContainers/eShopOnContainers.Core/Models/Catalog/CatalogBrand.cs | |||||
// Issue: How to make this DRY and still support the monolithic lift and shift scenario? | |||||
namespace eShopOnContainers.Core.Models.Catalog | |||||
{ | |||||
public class CatalogBrand | |||||
{ | |||||
public int Id { get; set; } | |||||
public string Brand { get; set; } | |||||
public override string ToString() => Brand; | |||||
} | |||||
} |
@ -1,17 +0,0 @@ | |||||
// Taken from https://github.com/dotnet/eShopOnContainers/blob/vs2017/src/Mobile/eShopOnContainers/eShopOnContainers.Core/Models/Catalog/CatalogItem.cs | |||||
// Issue: How to make this DRY and still support the monolithic lift and shift scenario? | |||||
namespace eShopOnContainers.Core.Models.Catalog | |||||
{ | |||||
public class CatalogItem | |||||
{ | |||||
public string Id { get; set; } | |||||
public string Name { get; set; } | |||||
public string Description { get; set; } | |||||
public decimal Price { get; set; } | |||||
public string PictureUri { get; set; } | |||||
public int CatalogBrandId { get; set; } | |||||
public string CatalogBrand { get; set; } | |||||
public int CatalogTypeId { get; set; } | |||||
public string CatalogType { get; set; } | |||||
} | |||||
} |
@ -1,12 +0,0 @@ | |||||
using System.Collections.Generic; | |||||
namespace eShopOnContainers.Core.Models.Catalog | |||||
{ | |||||
public class CatalogRoot | |||||
{ | |||||
public int PageIndex { get; set; } | |||||
public int PageSize { get; set; } | |||||
public int Count { get; set; } | |||||
public List<CatalogItem> Data { get; set; } | |||||
} | |||||
} |
@ -1,12 +0,0 @@ | |||||
// Taken from https://github.com/dotnet/eShopOnContainers/blob/vs2017/src/Mobile/eShopOnContainers/eShopOnContainers.Core/Models/Catalog/CatalogType.cs | |||||
// Issue: How to make this DRY and still support the monolithic lift and shift scenario? | |||||
namespace eShopOnContainers.Core.Models.Catalog | |||||
{ | |||||
public class CatalogType | |||||
{ | |||||
public int Id { get; set; } | |||||
public string Type { get; set; } | |||||
public override string ToString() => Type; | |||||
} | |||||
} |
@ -1,35 +0,0 @@ | |||||
using System.Reflection; | |||||
using System.Runtime.CompilerServices; | |||||
using System.Runtime.InteropServices; | |||||
// General Information about an assembly is controlled through the following | |||||
// set of attributes. Change these attribute values to modify the information | |||||
// associated with an assembly. | |||||
[assembly: AssemblyTitle("Catalog.WebForms")] | |||||
[assembly: AssemblyDescription("")] | |||||
[assembly: AssemblyConfiguration("")] | |||||
[assembly: AssemblyCompany("")] | |||||
[assembly: AssemblyProduct("Catalog.WebForms")] | |||||
[assembly: AssemblyCopyright("Copyright © 2017")] | |||||
[assembly: AssemblyTrademark("")] | |||||
[assembly: AssemblyCulture("")] | |||||
// Setting ComVisible to false makes the types in this assembly not visible | |||||
// to COM components. If you need to access a type in this assembly from | |||||
// COM, set the ComVisible attribute to true on that type. | |||||
[assembly: ComVisible(false)] | |||||
// The following GUID is for the ID of the typelib if this project is exposed to COM | |||||
[assembly: Guid("07b42e24-32f8-4c10-99a8-0fb5ac6bfebb")] | |||||
// Version information for an assembly consists of the following four values: | |||||
// | |||||
// Major Version | |||||
// Minor Version | |||||
// Build Number | |||||
// Revision | |||||
// | |||||
// You can specify all the values or you can default the Revision and Build Numbers | |||||
// by using the '*' as shown below: | |||||
[assembly: AssemblyVersion("1.0.0.0")] | |||||
[assembly: AssemblyFileVersion("1.0.0.0")] |
@ -1,34 +0,0 @@ | |||||
//CdnPath=http://ajax.aspnetcdn.com/ajax/4.5.1/1/DetailsView.js | |||||
function DetailsView() { | |||||
this.pageIndex = null; | |||||
this.dataKeys = null; | |||||
this.createPropertyString = DetailsView_createPropertyString; | |||||
this.setStateField = DetailsView_setStateValue; | |||||
this.getHiddenFieldContents = DetailsView_getHiddenFieldContents; | |||||
this.stateField = null; | |||||
this.panelElement = null; | |||||
this.callback = null; | |||||
} | |||||
function DetailsView_createPropertyString() { | |||||
return createPropertyStringFromValues_DetailsView(this.pageIndex, this.dataKeys); | |||||
} | |||||
function DetailsView_setStateValue() { | |||||
this.stateField.value = this.createPropertyString(); | |||||
} | |||||
function DetailsView_OnCallback (result, context) { | |||||
var value = new String(result); | |||||
var valsArray = value.split("|"); | |||||
var innerHtml = valsArray[2]; | |||||
for (var i = 3; i < valsArray.length; i++) { | |||||
innerHtml += "|" + valsArray[i]; | |||||
} | |||||
context.panelElement.innerHTML = innerHtml; | |||||
context.stateField.value = createPropertyStringFromValues_DetailsView(valsArray[0], valsArray[1]); | |||||
} | |||||
function DetailsView_getHiddenFieldContents(arg) { | |||||
return arg + "|" + this.stateField.value; | |||||
} | |||||
function createPropertyStringFromValues_DetailsView(pageIndex, dataKeys) { | |||||
var value = new Array(pageIndex, dataKeys); | |||||
return value.join("|"); | |||||
} |
@ -1,93 +0,0 @@ | |||||
//CdnPath=http://ajax.aspnetcdn.com/ajax/4.5.1/1/WebForms.js | |||||
function WebForm_FindFirstFocusableChild(control) { | |||||
if (!control || !(control.tagName)) { | |||||
return null; | |||||
} | |||||
var tagName = control.tagName.toLowerCase(); | |||||
if (tagName == "undefined") { | |||||
return null; | |||||
} | |||||
var children = control.childNodes; | |||||
if (children) { | |||||
for (var i = 0; i < children.length; i++) { | |||||
try { | |||||
if (WebForm_CanFocus(children[i])) { | |||||
return children[i]; | |||||
} | |||||
else { | |||||
var focused = WebForm_FindFirstFocusableChild(children[i]); | |||||
if (WebForm_CanFocus(focused)) { | |||||
return focused; | |||||
} | |||||
} | |||||
} catch (e) { | |||||
} | |||||
} | |||||
} | |||||
return null; | |||||
} | |||||
function WebForm_AutoFocus(focusId) { | |||||
var targetControl; | |||||
if (__nonMSDOMBrowser) { | |||||
targetControl = document.getElementById(focusId); | |||||
} | |||||
else { | |||||
targetControl = document.all[focusId]; | |||||
} | |||||
var focused = targetControl; | |||||
if (targetControl && (!WebForm_CanFocus(targetControl)) ) { | |||||
focused = WebForm_FindFirstFocusableChild(targetControl); | |||||
} | |||||
if (focused) { | |||||
try { | |||||
focused.focus(); | |||||
if (__nonMSDOMBrowser) { | |||||
focused.scrollIntoView(false); | |||||
} | |||||
if (window.__smartNav) { | |||||
window.__smartNav.ae = focused.id; | |||||
} | |||||
} | |||||
catch (e) { | |||||
} | |||||
} | |||||
} | |||||
function WebForm_CanFocus(element) { | |||||
if (!element || !(element.tagName)) return false; | |||||
var tagName = element.tagName.toLowerCase(); | |||||
return (!(element.disabled) && | |||||
(!(element.type) || element.type.toLowerCase() != "hidden") && | |||||
WebForm_IsFocusableTag(tagName) && | |||||
WebForm_IsInVisibleContainer(element) | |||||
); | |||||
} | |||||
function WebForm_IsFocusableTag(tagName) { | |||||
return (tagName == "input" || | |||||
tagName == "textarea" || | |||||
tagName == "select" || | |||||
tagName == "button" || | |||||
tagName == "a"); | |||||
} | |||||
function WebForm_IsInVisibleContainer(ctrl) { | |||||
var current = ctrl; | |||||
while((typeof(current) != "undefined") && (current != null)) { | |||||
if (current.disabled || | |||||
( typeof(current.style) != "undefined" && | |||||
( ( typeof(current.style.display) != "undefined" && | |||||
current.style.display == "none") || | |||||
( typeof(current.style.visibility) != "undefined" && | |||||
current.style.visibility == "hidden") ) ) ) { | |||||
return false; | |||||
} | |||||
if (typeof(current.parentNode) != "undefined" && | |||||
current.parentNode != null && | |||||
current.parentNode != current && | |||||
current.parentNode.tagName.toLowerCase() != "body") { | |||||
current = current.parentNode; | |||||
} | |||||
else { | |||||
return true; | |||||
} | |||||
} | |||||
return true; | |||||
} |
@ -1,36 +0,0 @@ | |||||
//CdnPath=http://ajax.aspnetcdn.com/ajax/4.5.1/1/GridView.js | |||||
function GridView() { | |||||
this.pageIndex = null; | |||||
this.sortExpression = null; | |||||
this.sortDirection = null; | |||||
this.dataKeys = null; | |||||
this.createPropertyString = GridView_createPropertyString; | |||||
this.setStateField = GridView_setStateValue; | |||||
this.getHiddenFieldContents = GridView_getHiddenFieldContents; | |||||
this.stateField = null; | |||||
this.panelElement = null; | |||||
this.callback = null; | |||||
} | |||||
function GridView_createPropertyString() { | |||||
return createPropertyStringFromValues_GridView(this.pageIndex, this.sortDirection, this.sortExpression, this.dataKeys); | |||||
} | |||||
function GridView_setStateValue() { | |||||
this.stateField.value = this.createPropertyString(); | |||||
} | |||||
function GridView_OnCallback (result, context) { | |||||
var value = new String(result); | |||||
var valsArray = value.split("|"); | |||||
var innerHtml = valsArray[4]; | |||||
for (var i = 5; i < valsArray.length; i++) { | |||||
innerHtml += "|" + valsArray[i]; | |||||
} | |||||
context.panelElement.innerHTML = innerHtml; | |||||
context.stateField.value = createPropertyStringFromValues_GridView(valsArray[0], valsArray[1], valsArray[2], valsArray[3]); | |||||
} | |||||
function GridView_getHiddenFieldContents(arg) { | |||||
return arg + "|" + this.stateField.value; | |||||
} | |||||
function createPropertyStringFromValues_GridView(pageIndex, sortDirection, sortExpression, dataKeys) { | |||||
var value = new Array(pageIndex, sortDirection, sortExpression, dataKeys); | |||||
return value.join("|"); | |||||
} |
@ -1,6 +0,0 @@ | |||||
//CdnPath=http://ajax.aspnetcdn.com/ajax/4.5.1/1/MicrosoftAjaxTimer.js | |||||
//---------------------------------------------------------- | |||||
// Copyright (C) Microsoft Corporation. All rights reserved. | |||||
//---------------------------------------------------------- | |||||
// MicrosoftAjaxTimer.js | |||||
Type._registerScript("Timer.js",["MicrosoftAjaxComponentModel.js"]);Sys.UI._Timer=function(a){Sys.UI._Timer.initializeBase(this,[a]);this._interval=60000;this._enabled=true;this._postbackPending=false;this._raiseTickDelegate=null;this._endRequestHandlerDelegate=null;this._timer=null;this._pageRequestManager=null;this._uniqueID=null};Sys.UI._Timer.prototype={get_enabled:function(){return this._enabled},set_enabled:function(a){this._enabled=a},get_interval:function(){return this._interval},set_interval:function(a){this._interval=a},get_uniqueID:function(){return this._uniqueID},set_uniqueID:function(a){this._uniqueID=a},dispose:function(){this._stopTimer();if(this._pageRequestManager!==null)this._pageRequestManager.remove_endRequest(this._endRequestHandlerDelegate);Sys.UI._Timer.callBaseMethod(this,"dispose")},_doPostback:function(){__doPostBack(this.get_uniqueID(),"")},_handleEndRequest:function(c,b){var a=b.get_dataItems()[this.get_id()];if(a)this._update(a[0],a[1]);if(this._postbackPending===true&&this._pageRequestManager!==null&&this._pageRequestManager.get_isInAsyncPostBack()===false){this._postbackPending=false;this._doPostback()}},initialize:function(){Sys.UI._Timer.callBaseMethod(this,"initialize");this._raiseTickDelegate=Function.createDelegate(this,this._raiseTick);this._endRequestHandlerDelegate=Function.createDelegate(this,this._handleEndRequest);if(Sys.WebForms&&Sys.WebForms.PageRequestManager)this._pageRequestManager=Sys.WebForms.PageRequestManager.getInstance();if(this._pageRequestManager!==null)this._pageRequestManager.add_endRequest(this._endRequestHandlerDelegate);if(this.get_enabled())this._startTimer()},_raiseTick:function(){this._startTimer();if(this._pageRequestManager===null||!this._pageRequestManager.get_isInAsyncPostBack()){this._doPostback();this._postbackPending=false}else this._postbackPending=true},_startTimer:function(){this._timer=window.setTimeout(Function.createDelegate(this,this._raiseTick),this.get_interval())},_stopTimer:function(){if(this._timer!==null){window.clearTimeout(this._timer);this._timer=null}},_update:function(c,b){var a=!this.get_enabled(),d=this.get_interval()!==b;if(!a&&(!c||d)){this._stopTimer();a=true}this.set_enabled(c);this.set_interval(b);if(this.get_enabled()&&a)this._startTimer()}};Sys.UI._Timer.registerClass("Sys.UI._Timer",Sys.UI.Control); |
@ -1,6 +0,0 @@ | |||||
//CdnPath=http://ajax.aspnetcdn.com/ajax/4.5.1/1/MicrosoftAjaxWebServices.js | |||||
//---------------------------------------------------------- | |||||
// Copyright (C) Microsoft Corporation. All rights reserved. | |||||
//---------------------------------------------------------- | |||||
// MicrosoftAjaxWebServices.js | |||||
Type._registerScript("MicrosoftAjaxWebServices.js",["MicrosoftAjaxNetwork.js"]);Type.registerNamespace("Sys.Net");Sys.Net.WebServiceProxy=function(){};Sys.Net.WebServiceProxy.prototype={get_timeout:function(){return this._timeout||0},set_timeout:function(a){if(a<0)throw Error.argumentOutOfRange("value",a,Sys.Res.invalidTimeout);this._timeout=a},get_defaultUserContext:function(){return typeof this._userContext==="undefined"?null:this._userContext},set_defaultUserContext:function(a){this._userContext=a},get_defaultSucceededCallback:function(){return this._succeeded||null},set_defaultSucceededCallback:function(a){this._succeeded=a},get_defaultFailedCallback:function(){return this._failed||null},set_defaultFailedCallback:function(a){this._failed=a},get_enableJsonp:function(){return !!this._jsonp},set_enableJsonp:function(a){this._jsonp=a},get_path:function(){return this._path||null},set_path:function(a){this._path=a},get_jsonpCallbackParameter:function(){return this._callbackParameter||"callback"},set_jsonpCallbackParameter:function(a){this._callbackParameter=a},_invoke:function(d,e,g,f,c,b,a){c=c||this.get_defaultSucceededCallback();b=b||this.get_defaultFailedCallback();if(a===null||typeof a==="undefined")a=this.get_defaultUserContext();return Sys.Net.WebServiceProxy.invoke(d,e,g,f,c,b,a,this.get_timeout(),this.get_enableJsonp(),this.get_jsonpCallbackParameter())}};Sys.Net.WebServiceProxy.registerClass("Sys.Net.WebServiceProxy");Sys.Net.WebServiceProxy.invoke=function(q,a,m,l,j,b,g,e,w,p){var i=w!==false?Sys.Net.WebServiceProxy._xdomain.exec(q):null,c,n=i&&i.length===3&&(i[1]!==location.protocol||i[2]!==location.host);m=n||m;if(n){p=p||"callback";c="_jsonp"+Sys._jsonp++}if(!l)l={};var r=l;if(!m||!r)r={};var s,h,f=null,k,o=null,u=Sys.Net.WebRequest._createUrl(a?q+"/"+encodeURIComponent(a):q,r,n?p+"=Sys."+c:null);if(n){s=document.createElement("script");s.src=u;k=new Sys._ScriptLoaderTask(s,function(d,b){if(!b||c)t({Message:String.format(Sys.Res.webServiceFailedNoMsg,a)},-1)});function v(){if(f===null)return;f=null;h=new Sys.Net.WebServiceError(true,String.format(Sys.Res.webServiceTimedOut,a));k.dispose();delete Sys[c];if(b)b(h,g,a)}function t(d,e){if(f!==null){window.clearTimeout(f);f=null}k.dispose();delete Sys[c];c=null;if(typeof e!=="undefined"&&e!==200){if(b){h=new Sys.Net.WebServiceError(false,d.Message||String.format(Sys.Res.webServiceFailedNoMsg,a),d.StackTrace||null,d.ExceptionType||null,d);h._statusCode=e;b(h,g,a)}}else if(j)j(d,g,a)}Sys[c]=t;e=e||Sys.Net.WebRequestManager.get_defaultTimeout();if(e>0)f=window.setTimeout(v,e);k.execute();return null}var d=new Sys.Net.WebRequest;d.set_url(u);d.get_headers()["Content-Type"]="application/json; charset=utf-8";if(!m){o=Sys.Serialization.JavaScriptSerializer.serialize(l);if(o==="{}")o=""}d.set_body(o);d.add_completed(x);if(e&&e>0)d.set_timeout(e);d.invoke();function x(d){if(d.get_responseAvailable()){var f=d.get_statusCode(),c=null;try{var e=d.getResponseHeader("Content-Type");if(e.startsWith("application/json"))c=d.get_object();else if(e.startsWith("text/xml"))c=d.get_xml();else c=d.get_responseData()}catch(m){}var k=d.getResponseHeader("jsonerror"),h=k==="true";if(h){if(c)c=new Sys.Net.WebServiceError(false,c.Message,c.StackTrace,c.ExceptionType,c)}else if(e.startsWith("application/json"))c=!c||typeof c.d==="undefined"?c:c.d;if(f<200||f>=300||h){if(b){if(!c||!h)c=new Sys.Net.WebServiceError(false,String.format(Sys.Res.webServiceFailedNoMsg,a));c._statusCode=f;b(c,g,a)}}else if(j)j(c,g,a)}else{var i;if(d.get_timedOut())i=String.format(Sys.Res.webServiceTimedOut,a);else i=String.format(Sys.Res.webServiceFailedNoMsg,a);if(b)b(new Sys.Net.WebServiceError(d.get_timedOut(),i,"",""),g,a)}}return d};Sys.Net.WebServiceProxy._generateTypedConstructor=function(a){return function(b){if(b)for(var c in b)this[c]=b[c];this.__type=a}};Sys._jsonp=0;Sys.Net.WebServiceProxy._xdomain=/^\s*([a-zA-Z0-9\+\-\.]+\:)\/\/([^?#\/]+)/;Sys.Net.WebServiceError=function(d,e,c,a,b){this._timedOut=d;this._message=e;this._stackTrace=c;this._exceptionType=a;this._errorObject=b;this._statusCode=-1};Sys.Net.WebServiceError.prototype={get_timedOut:function(){return this._timedOut},get_statusCode:function(){return this._statusCode},get_message:function(){return this._message},get_stackTrace:function(){return this._stackTrace||""},get_exceptionType:function(){return this._exceptionType||""},get_errorObject:function(){return this._errorObject||null}};Sys.Net.WebServiceError.registerClass("Sys.Net.WebServiceError"); |
@ -1,898 +0,0 @@ | |||||
//CdnPath=http://ajax.aspnetcdn.com/ajax/4.5.1/1/Menu.js | |||||
var __rootMenuItem; | |||||
var __menuInterval; | |||||
var __scrollPanel; | |||||
var __disappearAfter = 500; | |||||
function Menu_ClearInterval() { | |||||
if (__menuInterval) { | |||||
window.clearInterval(__menuInterval); | |||||
} | |||||
} | |||||
function Menu_Collapse(item) { | |||||
Menu_SetRoot(item); | |||||
if (__rootMenuItem) { | |||||
Menu_ClearInterval(); | |||||
if (__disappearAfter >= 0) { | |||||
__menuInterval = window.setInterval("Menu_HideItems()", __disappearAfter); | |||||
} | |||||
} | |||||
} | |||||
function Menu_Expand(item, horizontalOffset, verticalOffset, hideScrollers) { | |||||
Menu_ClearInterval(); | |||||
var tr = item.parentNode.parentNode.parentNode.parentNode.parentNode; | |||||
var horizontal = true; | |||||
if (!tr.id) { | |||||
horizontal = false; | |||||
tr = tr.parentNode; | |||||
} | |||||
var child = Menu_FindSubMenu(item); | |||||
if (child) { | |||||
var data = Menu_GetData(item); | |||||
if (!data) { | |||||
return null; | |||||
} | |||||
child.rel = tr.id; | |||||
child.x = horizontalOffset; | |||||
child.y = verticalOffset; | |||||
if (horizontal) child.pos = "bottom"; | |||||
PopOut_Show(child.id, hideScrollers, data); | |||||
} | |||||
Menu_SetRoot(item); | |||||
if (child) { | |||||
if (!document.body.__oldOnClick && document.body.onclick) { | |||||
document.body.__oldOnClick = document.body.onclick; | |||||
} | |||||
if (__rootMenuItem) { | |||||
document.body.onclick = Menu_HideItems; | |||||
} | |||||
} | |||||
Menu_ResetSiblings(tr); | |||||
return child; | |||||
} | |||||
function Menu_FindMenu(item) { | |||||
if (item && item.menu) return item.menu; | |||||
var tr = item.parentNode.parentNode.parentNode.parentNode.parentNode; | |||||
if (!tr.id) { | |||||
tr = tr.parentNode; | |||||
} | |||||
for (var i = tr.id.length - 1; i >= 0; i--) { | |||||
if (tr.id.charAt(i) < '0' || tr.id.charAt(i) > '9') { | |||||
var menu = WebForm_GetElementById(tr.id.substr(0, i)); | |||||
if (menu) { | |||||
item.menu = menu; | |||||
return menu; | |||||
} | |||||
} | |||||
} | |||||
return null; | |||||
} | |||||
function Menu_FindNext(item) { | |||||
var a = WebForm_GetElementByTagName(item, "A"); | |||||
var parent = Menu_FindParentContainer(item); | |||||
var first = null; | |||||
if (parent) { | |||||
var links = WebForm_GetElementsByTagName(parent, "A"); | |||||
var match = false; | |||||
for (var i = 0; i < links.length; i++) { | |||||
var link = links[i]; | |||||
if (Menu_IsSelectable(link)) { | |||||
if (Menu_FindParentContainer(link) == parent) { | |||||
if (match) { | |||||
return link; | |||||
} | |||||
else if (!first) { | |||||
first = link; | |||||
} | |||||
} | |||||
if (!match && link == a) { | |||||
match = true; | |||||
} | |||||
} | |||||
} | |||||
} | |||||
return first; | |||||
} | |||||
function Menu_FindParentContainer(item) { | |||||
if (item.menu_ParentContainerCache) return item.menu_ParentContainerCache; | |||||
var a = (item.tagName.toLowerCase() == "a") ? item : WebForm_GetElementByTagName(item, "A"); | |||||
var menu = Menu_FindMenu(a); | |||||
if (menu) { | |||||
var parent = item; | |||||
while (parent && parent.tagName && | |||||
parent.id != menu.id && | |||||
parent.tagName.toLowerCase() != "div") { | |||||
parent = parent.parentNode; | |||||
} | |||||
item.menu_ParentContainerCache = parent; | |||||
return parent; | |||||
} | |||||
} | |||||
function Menu_FindParentItem(item) { | |||||
var parentContainer = Menu_FindParentContainer(item); | |||||
var parentContainerID = parentContainer.id; | |||||
var len = parentContainerID.length; | |||||
if (parentContainerID && parentContainerID.substr(len - 5) == "Items") { | |||||
var parentItemID = parentContainerID.substr(0, len - 5); | |||||
return WebForm_GetElementById(parentItemID); | |||||
} | |||||
return null; | |||||
} | |||||
function Menu_FindPrevious(item) { | |||||
var a = WebForm_GetElementByTagName(item, "A"); | |||||
var parent = Menu_FindParentContainer(item); | |||||
var last = null; | |||||
if (parent) { | |||||
var links = WebForm_GetElementsByTagName(parent, "A"); | |||||
for (var i = 0; i < links.length; i++) { | |||||
var link = links[i]; | |||||
if (Menu_IsSelectable(link)) { | |||||
if (link == a && last) { | |||||
return last; | |||||
} | |||||
if (Menu_FindParentContainer(link) == parent) { | |||||
last = link; | |||||
} | |||||
} | |||||
} | |||||
} | |||||
return last; | |||||
} | |||||
function Menu_FindSubMenu(item) { | |||||
var tr = item.parentNode.parentNode.parentNode.parentNode.parentNode; | |||||
if (!tr.id) { | |||||
tr=tr.parentNode; | |||||
} | |||||
return WebForm_GetElementById(tr.id + "Items"); | |||||
} | |||||
function Menu_Focus(item) { | |||||
if (item && item.focus) { | |||||
var pos = WebForm_GetElementPosition(item); | |||||
var parentContainer = Menu_FindParentContainer(item); | |||||
if (!parentContainer.offset) { | |||||
parentContainer.offset = 0; | |||||
} | |||||
var posParent = WebForm_GetElementPosition(parentContainer); | |||||
var delta; | |||||
if (pos.y + pos.height > posParent.y + parentContainer.offset + parentContainer.clippedHeight) { | |||||
delta = pos.y + pos.height - posParent.y - parentContainer.offset - parentContainer.clippedHeight; | |||||
PopOut_Scroll(parentContainer, delta); | |||||
} | |||||
else if (pos.y < posParent.y + parentContainer.offset) { | |||||
delta = posParent.y + parentContainer.offset - pos.y; | |||||
PopOut_Scroll(parentContainer, -delta); | |||||
} | |||||
PopOut_HideScrollers(parentContainer); | |||||
item.focus(); | |||||
} | |||||
} | |||||
function Menu_GetData(item) { | |||||
if (!item.data) { | |||||
var a = (item.tagName.toLowerCase() == "a" ? item : WebForm_GetElementByTagName(item, "a")); | |||||
var menu = Menu_FindMenu(a); | |||||
try { | |||||
item.data = eval(menu.id + "_Data"); | |||||
} | |||||
catch(e) {} | |||||
} | |||||
return item.data; | |||||
} | |||||
function Menu_HideItems(items) { | |||||
if (document.body.__oldOnClick) { | |||||
document.body.onclick = document.body.__oldOnClick; | |||||
document.body.__oldOnClick = null; | |||||
} | |||||
Menu_ClearInterval(); | |||||
if (!items || ((typeof(items.tagName) == "undefined") && (items instanceof Event))) { | |||||
items = __rootMenuItem; | |||||
} | |||||
var table = items; | |||||
if ((typeof(table) == "undefined") || (table == null) || !table.tagName || (table.tagName.toLowerCase() != "table")) { | |||||
table = WebForm_GetElementByTagName(table, "TABLE"); | |||||
} | |||||
if ((typeof(table) == "undefined") || (table == null) || !table.tagName || (table.tagName.toLowerCase() != "table")) { | |||||
return; | |||||
} | |||||
var rows = table.rows ? table.rows : table.firstChild.rows; | |||||
var isVertical = false; | |||||
for (var r = 0; r < rows.length; r++) { | |||||
if (rows[r].id) { | |||||
isVertical = true; | |||||
break; | |||||
} | |||||
} | |||||
var i, child, nextLevel; | |||||
if (isVertical) { | |||||
for(i = 0; i < rows.length; i++) { | |||||
if (rows[i].id) { | |||||
child = WebForm_GetElementById(rows[i].id + "Items"); | |||||
if (child) { | |||||
Menu_HideItems(child); | |||||
} | |||||
} | |||||
else if (rows[i].cells[0]) { | |||||
nextLevel = WebForm_GetElementByTagName(rows[i].cells[0], "TABLE"); | |||||
if (nextLevel) { | |||||
Menu_HideItems(nextLevel); | |||||
} | |||||
} | |||||
} | |||||
} | |||||
else if (rows[0]) { | |||||
for(i = 0; i < rows[0].cells.length; i++) { | |||||
if (rows[0].cells[i].id) { | |||||
child = WebForm_GetElementById(rows[0].cells[i].id + "Items"); | |||||
if (child) { | |||||
Menu_HideItems(child); | |||||
} | |||||
} | |||||
else { | |||||
nextLevel = WebForm_GetElementByTagName(rows[0].cells[i], "TABLE"); | |||||
if (nextLevel) { | |||||
Menu_HideItems(rows[0].cells[i].firstChild); | |||||
} | |||||
} | |||||
} | |||||
} | |||||
if (items && items.id) { | |||||
PopOut_Hide(items.id); | |||||
} | |||||
} | |||||
function Menu_HoverDisabled(item) { | |||||
var node = (item.tagName.toLowerCase() == "td") ? | |||||
item: | |||||
item.cells[0]; | |||||
var data = Menu_GetData(item); | |||||
if (!data) return; | |||||
node = WebForm_GetElementByTagName(node, "table").rows[0].cells[0].childNodes[0]; | |||||
if (data.disappearAfter >= 200) { | |||||
__disappearAfter = data.disappearAfter; | |||||
} | |||||
Menu_Expand(node, data.horizontalOffset, data.verticalOffset); | |||||
} | |||||
function Menu_HoverDynamic(item) { | |||||
var node = (item.tagName.toLowerCase() == "td") ? | |||||
item: | |||||
item.cells[0]; | |||||
var data = Menu_GetData(item); | |||||
if (!data) return; | |||||
var nodeTable = WebForm_GetElementByTagName(node, "table"); | |||||
if (data.hoverClass) { | |||||
nodeTable.hoverClass = data.hoverClass; | |||||
WebForm_AppendToClassName(nodeTable, data.hoverClass); | |||||
} | |||||
node = nodeTable.rows[0].cells[0].childNodes[0]; | |||||
if (data.hoverHyperLinkClass) { | |||||
node.hoverHyperLinkClass = data.hoverHyperLinkClass; | |||||
WebForm_AppendToClassName(node, data.hoverHyperLinkClass); | |||||
} | |||||
if (data.disappearAfter >= 200) { | |||||
__disappearAfter = data.disappearAfter; | |||||
} | |||||
Menu_Expand(node, data.horizontalOffset, data.verticalOffset); | |||||
} | |||||
function Menu_HoverRoot(item) { | |||||
var node = (item.tagName.toLowerCase() == "td") ? | |||||
item: | |||||
item.cells[0]; | |||||
var data = Menu_GetData(item); | |||||
if (!data) { | |||||
return null; | |||||
} | |||||
var nodeTable = WebForm_GetElementByTagName(node, "table"); | |||||
if (data.staticHoverClass) { | |||||
nodeTable.hoverClass = data.staticHoverClass; | |||||
WebForm_AppendToClassName(nodeTable, data.staticHoverClass); | |||||
} | |||||
node = nodeTable.rows[0].cells[0].childNodes[0]; | |||||
if (data.staticHoverHyperLinkClass) { | |||||
node.hoverHyperLinkClass = data.staticHoverHyperLinkClass; | |||||
WebForm_AppendToClassName(node, data.staticHoverHyperLinkClass); | |||||
} | |||||
return node; | |||||
} | |||||
function Menu_HoverStatic(item) { | |||||
var node = Menu_HoverRoot(item); | |||||
var data = Menu_GetData(item); | |||||
if (!data) return; | |||||
__disappearAfter = data.disappearAfter; | |||||
Menu_Expand(node, data.horizontalOffset, data.verticalOffset); | |||||
} | |||||
function Menu_IsHorizontal(item) { | |||||
if (item) { | |||||
var a = ((item.tagName && (item.tagName.toLowerCase == "a")) ? item : WebForm_GetElementByTagName(item, "A")); | |||||
if (!a) { | |||||
return false; | |||||
} | |||||
var td = a.parentNode.parentNode.parentNode.parentNode.parentNode; | |||||
if (td.id) { | |||||
return true; | |||||
} | |||||
} | |||||
return false; | |||||
} | |||||
function Menu_IsSelectable(link) { | |||||
return (link && link.href) | |||||
} | |||||
function Menu_Key(item) { | |||||
var event; | |||||
if (item.currentTarget) { | |||||
event = item; | |||||
item = event.currentTarget; | |||||
} | |||||
else { | |||||
event = window.event; | |||||
} | |||||
var key = (event ? event.keyCode : -1); | |||||
var data = Menu_GetData(item); | |||||
if (!data) return; | |||||
var horizontal = Menu_IsHorizontal(item); | |||||
var a = WebForm_GetElementByTagName(item, "A"); | |||||
var nextItem, parentItem, previousItem; | |||||
if ((!horizontal && key == 38) || (horizontal && key == 37)) { | |||||
previousItem = Menu_FindPrevious(item); | |||||
while (previousItem && previousItem.disabled) { | |||||
previousItem = Menu_FindPrevious(previousItem); | |||||
} | |||||
if (previousItem) { | |||||
Menu_Focus(previousItem); | |||||
Menu_Expand(previousItem, data.horizontalOffset, data.verticalOffset, true); | |||||
event.cancelBubble = true; | |||||
if (event.stopPropagation) event.stopPropagation(); | |||||
return; | |||||
} | |||||
} | |||||
if ((!horizontal && key == 40) || (horizontal && key == 39)) { | |||||
if (horizontal) { | |||||
var subMenu = Menu_FindSubMenu(a); | |||||
if (subMenu && subMenu.style && subMenu.style.visibility && | |||||
subMenu.style.visibility.toLowerCase() == "hidden") { | |||||
Menu_Expand(a, data.horizontalOffset, data.verticalOffset, true); | |||||
event.cancelBubble = true; | |||||
if (event.stopPropagation) event.stopPropagation(); | |||||
return; | |||||
} | |||||
} | |||||
nextItem = Menu_FindNext(item); | |||||
while (nextItem && nextItem.disabled) { | |||||
nextItem = Menu_FindNext(nextItem); | |||||
} | |||||
if (nextItem) { | |||||
Menu_Focus(nextItem); | |||||
Menu_Expand(nextItem, data.horizontalOffset, data.verticalOffset, true); | |||||
event.cancelBubble = true; | |||||
if (event.stopPropagation) event.stopPropagation(); | |||||
return; | |||||
} | |||||
} | |||||
if ((!horizontal && key == 39) || (horizontal && key == 40)) { | |||||
var children = Menu_Expand(a, data.horizontalOffset, data.verticalOffset, true); | |||||
if (children) { | |||||
var firstChild; | |||||
children = WebForm_GetElementsByTagName(children, "A"); | |||||
for (var i = 0; i < children.length; i++) { | |||||
if (!children[i].disabled && Menu_IsSelectable(children[i])) { | |||||
firstChild = children[i]; | |||||
break; | |||||
} | |||||
} | |||||
if (firstChild) { | |||||
Menu_Focus(firstChild); | |||||
Menu_Expand(firstChild, data.horizontalOffset, data.verticalOffset, true); | |||||
event.cancelBubble = true; | |||||
if (event.stopPropagation) event.stopPropagation(); | |||||
return; | |||||
} | |||||
} | |||||
else { | |||||
parentItem = Menu_FindParentItem(item); | |||||
while (parentItem && !Menu_IsHorizontal(parentItem)) { | |||||
parentItem = Menu_FindParentItem(parentItem); | |||||
} | |||||
if (parentItem) { | |||||
nextItem = Menu_FindNext(parentItem); | |||||
while (nextItem && nextItem.disabled) { | |||||
nextItem = Menu_FindNext(nextItem); | |||||
} | |||||
if (nextItem) { | |||||
Menu_Focus(nextItem); | |||||
Menu_Expand(nextItem, data.horizontalOffset, data.verticalOffset, true); | |||||
event.cancelBubble = true; | |||||
if (event.stopPropagation) event.stopPropagation(); | |||||
return; | |||||
} | |||||
} | |||||
} | |||||
} | |||||
if ((!horizontal && key == 37) || (horizontal && key == 38)) { | |||||
parentItem = Menu_FindParentItem(item); | |||||
if (parentItem) { | |||||
if (Menu_IsHorizontal(parentItem)) { | |||||
previousItem = Menu_FindPrevious(parentItem); | |||||
while (previousItem && previousItem.disabled) { | |||||
previousItem = Menu_FindPrevious(previousItem); | |||||
} | |||||
if (previousItem) { | |||||
Menu_Focus(previousItem); | |||||
Menu_Expand(previousItem, data.horizontalOffset, data.verticalOffset, true); | |||||
event.cancelBubble = true; | |||||
if (event.stopPropagation) event.stopPropagation(); | |||||
return; | |||||
} | |||||
} | |||||
var parentA = WebForm_GetElementByTagName(parentItem, "A"); | |||||
if (parentA) { | |||||
Menu_Focus(parentA); | |||||
} | |||||
Menu_ResetSiblings(parentItem); | |||||
event.cancelBubble = true; | |||||
if (event.stopPropagation) event.stopPropagation(); | |||||
return; | |||||
} | |||||
} | |||||
if (key == 27) { | |||||
Menu_HideItems(); | |||||
event.cancelBubble = true; | |||||
if (event.stopPropagation) event.stopPropagation(); | |||||
return; | |||||
} | |||||
} | |||||
function Menu_ResetSiblings(item) { | |||||
var table = (item.tagName.toLowerCase() == "td") ? | |||||
item.parentNode.parentNode.parentNode : | |||||
item.parentNode.parentNode; | |||||
var isVertical = false; | |||||
for (var r = 0; r < table.rows.length; r++) { | |||||
if (table.rows[r].id) { | |||||
isVertical = true; | |||||
break; | |||||
} | |||||
} | |||||
var i, child, childNode; | |||||
if (isVertical) { | |||||
for(i = 0; i < table.rows.length; i++) { | |||||
childNode = table.rows[i]; | |||||
if (childNode != item) { | |||||
child = WebForm_GetElementById(childNode.id + "Items"); | |||||
if (child) { | |||||
Menu_HideItems(child); | |||||
} | |||||
} | |||||
} | |||||
} | |||||
else { | |||||
for(i = 0; i < table.rows[0].cells.length; i++) { | |||||
childNode = table.rows[0].cells[i]; | |||||
if (childNode != item) { | |||||
child = WebForm_GetElementById(childNode.id + "Items"); | |||||
if (child) { | |||||
Menu_HideItems(child); | |||||
} | |||||
} | |||||
} | |||||
} | |||||
Menu_ResetTopMenus(table, table, 0, true); | |||||
} | |||||
function Menu_ResetTopMenus(table, doNotReset, level, up) { | |||||
var i, child, childNode; | |||||
if (up && table.id == "") { | |||||
var parentTable = table.parentNode.parentNode.parentNode.parentNode; | |||||
if (parentTable.tagName.toLowerCase() == "table") { | |||||
Menu_ResetTopMenus(parentTable, doNotReset, level + 1, true); | |||||
} | |||||
} | |||||
else { | |||||
if (level == 0 && table != doNotReset) { | |||||
if (table.rows[0].id) { | |||||
for(i = 0; i < table.rows.length; i++) { | |||||
childNode = table.rows[i]; | |||||
child = WebForm_GetElementById(childNode.id + "Items"); | |||||
if (child) { | |||||
Menu_HideItems(child); | |||||
} | |||||
} | |||||
} | |||||
else { | |||||
for(i = 0; i < table.rows[0].cells.length; i++) { | |||||
childNode = table.rows[0].cells[i]; | |||||
child = WebForm_GetElementById(childNode.id + "Items"); | |||||
if (child) { | |||||
Menu_HideItems(child); | |||||
} | |||||
} | |||||
} | |||||
} | |||||
else if (level > 0) { | |||||
for (i = 0; i < table.rows.length; i++) { | |||||
for (var j = 0; j < table.rows[i].cells.length; j++) { | |||||
var subTable = table.rows[i].cells[j].firstChild; | |||||
if (subTable && subTable.tagName.toLowerCase() == "table") { | |||||
Menu_ResetTopMenus(subTable, doNotReset, level - 1, false); | |||||
} | |||||
} | |||||
} | |||||
} | |||||
} | |||||
} | |||||
function Menu_RestoreInterval() { | |||||
if (__menuInterval && __rootMenuItem) { | |||||
Menu_ClearInterval(); | |||||
__menuInterval = window.setInterval("Menu_HideItems()", __disappearAfter); | |||||
} | |||||
} | |||||
function Menu_SetRoot(item) { | |||||
var newRoot = Menu_FindMenu(item); | |||||
if (newRoot) { | |||||
if (__rootMenuItem && __rootMenuItem != newRoot) { | |||||
Menu_HideItems(); | |||||
} | |||||
__rootMenuItem = newRoot; | |||||
} | |||||
} | |||||
function Menu_Unhover(item) { | |||||
var node = (item.tagName.toLowerCase() == "td") ? | |||||
item: | |||||
item.cells[0]; | |||||
var nodeTable = WebForm_GetElementByTagName(node, "table"); | |||||
if (nodeTable.hoverClass) { | |||||
WebForm_RemoveClassName(nodeTable, nodeTable.hoverClass); | |||||
} | |||||
node = nodeTable.rows[0].cells[0].childNodes[0]; | |||||
if (node.hoverHyperLinkClass) { | |||||
WebForm_RemoveClassName(node, node.hoverHyperLinkClass); | |||||
} | |||||
Menu_Collapse(node); | |||||
} | |||||
function PopOut_Clip(element, y, height) { | |||||
if (element && element.style) { | |||||
element.style.clip = "rect(" + y + "px auto " + (y + height) + "px auto)"; | |||||
element.style.overflow = "hidden"; | |||||
} | |||||
} | |||||
function PopOut_Down(scroller) { | |||||
Menu_ClearInterval(); | |||||
var panel; | |||||
if (scroller) { | |||||
panel = scroller.parentNode | |||||
} | |||||
else { | |||||
panel = __scrollPanel; | |||||
} | |||||
if (panel && ((panel.offset + panel.clippedHeight) < panel.physicalHeight)) { | |||||
PopOut_Scroll(panel, 2) | |||||
__scrollPanel = panel; | |||||
PopOut_ShowScrollers(panel); | |||||
PopOut_Stop(); | |||||
__scrollPanel.interval = window.setInterval("PopOut_Down()", 8); | |||||
} | |||||
else { | |||||
PopOut_ShowScrollers(panel); | |||||
} | |||||
} | |||||
function PopOut_Hide(panelId) { | |||||
var panel = WebForm_GetElementById(panelId); | |||||
if (panel && panel.tagName.toLowerCase() == "div") { | |||||
panel.style.visibility = "hidden"; | |||||
panel.style.display = "none"; | |||||
panel.offset = 0; | |||||
panel.scrollTop = 0; | |||||
var table = WebForm_GetElementByTagName(panel, "TABLE"); | |||||
if (table) { | |||||
WebForm_SetElementY(table, 0); | |||||
} | |||||
if (window.navigator && window.navigator.appName == "Microsoft Internet Explorer" && | |||||
!window.opera) { | |||||
var childFrameId = panel.id + "_MenuIFrame"; | |||||
var childFrame = WebForm_GetElementById(childFrameId); | |||||
if (childFrame) { | |||||
childFrame.style.display = "none"; | |||||
} | |||||
} | |||||
} | |||||
} | |||||
function PopOut_HideScrollers(panel) { | |||||
if (panel && panel.style) { | |||||
var up = WebForm_GetElementById(panel.id + "Up"); | |||||
var dn = WebForm_GetElementById(panel.id + "Dn"); | |||||
if (up) { | |||||
up.style.visibility = "hidden"; | |||||
up.style.display = "none"; | |||||
} | |||||
if (dn) { | |||||
dn.style.visibility = "hidden"; | |||||
dn.style.display = "none"; | |||||
} | |||||
} | |||||
} | |||||
function PopOut_Position(panel, hideScrollers) { | |||||
if (window.opera) { | |||||
panel.parentNode.removeChild(panel); | |||||
document.forms[0].appendChild(panel); | |||||
} | |||||
var rel = WebForm_GetElementById(panel.rel); | |||||
var relTable = WebForm_GetElementByTagName(rel, "TABLE"); | |||||
var relCoordinates = WebForm_GetElementPosition(relTable ? relTable : rel); | |||||
var panelCoordinates = WebForm_GetElementPosition(panel); | |||||
var panelHeight = ((typeof(panel.physicalHeight) != "undefined") && (panel.physicalHeight != null)) ? | |||||
panel.physicalHeight : | |||||
panelCoordinates.height; | |||||
panel.physicalHeight = panelHeight; | |||||
var panelParentCoordinates; | |||||
if (panel.offsetParent) { | |||||
panelParentCoordinates = WebForm_GetElementPosition(panel.offsetParent); | |||||
} | |||||
else { | |||||
panelParentCoordinates = new Object(); | |||||
panelParentCoordinates.x = 0; | |||||
panelParentCoordinates.y = 0; | |||||
} | |||||
var overflowElement = WebForm_GetElementById("__overFlowElement"); | |||||
if (!overflowElement) { | |||||
overflowElement = document.createElement("img"); | |||||
overflowElement.id="__overFlowElement"; | |||||
WebForm_SetElementWidth(overflowElement, 1); | |||||
document.body.appendChild(overflowElement); | |||||
} | |||||
WebForm_SetElementHeight(overflowElement, panelHeight + relCoordinates.y + parseInt(panel.y ? panel.y : 0)); | |||||
overflowElement.style.visibility = "visible"; | |||||
overflowElement.style.display = "inline"; | |||||
var clientHeight = 0; | |||||
var clientWidth = 0; | |||||
if (window.innerHeight) { | |||||
clientHeight = window.innerHeight; | |||||
clientWidth = window.innerWidth; | |||||
} | |||||
else if (document.documentElement && document.documentElement.clientHeight) { | |||||
clientHeight = document.documentElement.clientHeight; | |||||
clientWidth = document.documentElement.clientWidth; | |||||
} | |||||
else if (document.body && document.body.clientHeight) { | |||||
clientHeight = document.body.clientHeight; | |||||
clientWidth = document.body.clientWidth; | |||||
} | |||||
var scrollTop = 0; | |||||
var scrollLeft = 0; | |||||
if (typeof(window.pageYOffset) != "undefined") { | |||||
scrollTop = window.pageYOffset; | |||||
scrollLeft = window.pageXOffset; | |||||
} | |||||
else if (document.documentElement && (typeof(document.documentElement.scrollTop) != "undefined")) { | |||||
scrollTop = document.documentElement.scrollTop; | |||||
scrollLeft = document.documentElement.scrollLeft; | |||||
} | |||||
else if (document.body && (typeof(document.body.scrollTop) != "undefined")) { | |||||
scrollTop = document.body.scrollTop; | |||||
scrollLeft = document.body.scrollLeft; | |||||
} | |||||
overflowElement.style.visibility = "hidden"; | |||||
overflowElement.style.display = "none"; | |||||
var bottomWindowBorder = clientHeight + scrollTop; | |||||
var rightWindowBorder = clientWidth + scrollLeft; | |||||
var position = panel.pos; | |||||
if ((typeof(position) == "undefined") || (position == null) || (position == "")) { | |||||
position = (WebForm_GetElementDir(rel) == "rtl" ? "middleleft" : "middleright"); | |||||
} | |||||
position = position.toLowerCase(); | |||||
var y = relCoordinates.y + parseInt(panel.y ? panel.y : 0) - panelParentCoordinates.y; | |||||
var borderParent = (rel && rel.parentNode && rel.parentNode.parentNode && rel.parentNode.parentNode.parentNode | |||||
&& rel.parentNode.parentNode.parentNode.tagName.toLowerCase() == "div") ? | |||||
rel.parentNode.parentNode.parentNode : null; | |||||
WebForm_SetElementY(panel, y); | |||||
PopOut_SetPanelHeight(panel, panelHeight, true); | |||||
var clip = false; | |||||
var overflow; | |||||
if (position.indexOf("top") != -1) { | |||||
y -= panelHeight; | |||||
WebForm_SetElementY(panel, y); | |||||
if (y < -panelParentCoordinates.y) { | |||||
y = -panelParentCoordinates.y; | |||||
WebForm_SetElementY(panel, y); | |||||
if (panelHeight > clientHeight - 2) { | |||||
clip = true; | |||||
PopOut_SetPanelHeight(panel, clientHeight - 2); | |||||
} | |||||
} | |||||
} | |||||
else { | |||||
if (position.indexOf("bottom") != -1) { | |||||
y += relCoordinates.height; | |||||
WebForm_SetElementY(panel, y); | |||||
} | |||||
overflow = y + panelParentCoordinates.y + panelHeight - bottomWindowBorder; | |||||
if (overflow > 0) { | |||||
y -= overflow; | |||||
WebForm_SetElementY(panel, y); | |||||
if (y < -panelParentCoordinates.y) { | |||||
y = 2 - panelParentCoordinates.y + scrollTop; | |||||
WebForm_SetElementY(panel, y); | |||||
clip = true; | |||||
PopOut_SetPanelHeight(panel, clientHeight - 2); | |||||
} | |||||
} | |||||
} | |||||
if (!clip) { | |||||
PopOut_SetPanelHeight(panel, panel.clippedHeight, true); | |||||
} | |||||
var panelParentOffsetY = 0; | |||||
if (panel.offsetParent) { | |||||
panelParentOffsetY = WebForm_GetElementPosition(panel.offsetParent).y; | |||||
} | |||||
var panelY = ((typeof(panel.originY) != "undefined") && (panel.originY != null)) ? | |||||
panel.originY : | |||||
y - panelParentOffsetY; | |||||
panel.originY = panelY; | |||||
if (!hideScrollers) { | |||||
PopOut_ShowScrollers(panel); | |||||
} | |||||
else { | |||||
PopOut_HideScrollers(panel); | |||||
} | |||||
var x = relCoordinates.x + parseInt(panel.x ? panel.x : 0) - panelParentCoordinates.x; | |||||
if (borderParent && borderParent.clientLeft) { | |||||
x += 2 * borderParent.clientLeft; | |||||
} | |||||
WebForm_SetElementX(panel, x); | |||||
if (position.indexOf("left") != -1) { | |||||
x -= panelCoordinates.width; | |||||
WebForm_SetElementX(panel, x); | |||||
if (x < -panelParentCoordinates.x) { | |||||
WebForm_SetElementX(panel, -panelParentCoordinates.x); | |||||
} | |||||
} | |||||
else { | |||||
if (position.indexOf("right") != -1) { | |||||
x += relCoordinates.width; | |||||
WebForm_SetElementX(panel, x); | |||||
} | |||||
overflow = x + panelParentCoordinates.x + panelCoordinates.width - rightWindowBorder; | |||||
if (overflow > 0) { | |||||
if (position.indexOf("bottom") == -1 && relCoordinates.x > panelCoordinates.width) { | |||||
x -= relCoordinates.width + panelCoordinates.width; | |||||
} | |||||
else { | |||||
x -= overflow; | |||||
} | |||||
WebForm_SetElementX(panel, x); | |||||
if (x < -panelParentCoordinates.x) { | |||||
WebForm_SetElementX(panel, -panelParentCoordinates.x); | |||||
} | |||||
} | |||||
} | |||||
} | |||||
function PopOut_Scroll(panel, offsetDelta) { | |||||
var table = WebForm_GetElementByTagName(panel, "TABLE"); | |||||
if (!table) return; | |||||
table.style.position = "relative"; | |||||
var tableY = (table.style.top ? parseInt(table.style.top) : 0); | |||||
panel.offset += offsetDelta; | |||||
WebForm_SetElementY(table, tableY - offsetDelta); | |||||
} | |||||
function PopOut_SetPanelHeight(element, height, doNotClip) { | |||||
if (element && element.style) { | |||||
var size = WebForm_GetElementPosition(element); | |||||
element.physicalWidth = size.width; | |||||
element.clippedHeight = height; | |||||
WebForm_SetElementHeight(element, height - (element.clientTop ? (2 * element.clientTop) : 0)); | |||||
if (doNotClip && element.style) { | |||||
element.style.clip = "rect(auto auto auto auto)"; | |||||
} | |||||
else { | |||||
PopOut_Clip(element, 0, height); | |||||
} | |||||
} | |||||
} | |||||
function PopOut_Show(panelId, hideScrollers, data) { | |||||
var panel = WebForm_GetElementById(panelId); | |||||
if (panel && panel.tagName.toLowerCase() == "div") { | |||||
panel.style.visibility = "visible"; | |||||
panel.style.display = "inline"; | |||||
if (!panel.offset || hideScrollers) { | |||||
panel.scrollTop = 0; | |||||
panel.offset = 0; | |||||
var table = WebForm_GetElementByTagName(panel, "TABLE"); | |||||
if (table) { | |||||
WebForm_SetElementY(table, 0); | |||||
} | |||||
} | |||||
PopOut_Position(panel, hideScrollers); | |||||
var z = 1; | |||||
var isIE = window.navigator && window.navigator.appName == "Microsoft Internet Explorer" && !window.opera; | |||||
if (isIE && data) { | |||||
var childFrameId = panel.id + "_MenuIFrame"; | |||||
var childFrame = WebForm_GetElementById(childFrameId); | |||||
var parent = panel.offsetParent; | |||||
if (!childFrame) { | |||||
childFrame = document.createElement("iframe"); | |||||
childFrame.id = childFrameId; | |||||
childFrame.src = (data.iframeUrl ? data.iframeUrl : "about:blank"); | |||||
childFrame.style.position = "absolute"; | |||||
childFrame.style.display = "none"; | |||||
childFrame.scrolling = "no"; | |||||
childFrame.frameBorder = "0"; | |||||
if (parent.tagName.toLowerCase() == "html") { | |||||
document.body.appendChild(childFrame); | |||||
} | |||||
else { | |||||
parent.appendChild(childFrame); | |||||
} | |||||
} | |||||
var pos = WebForm_GetElementPosition(panel); | |||||
var parentPos = WebForm_GetElementPosition(parent); | |||||
WebForm_SetElementX(childFrame, pos.x - parentPos.x); | |||||
WebForm_SetElementY(childFrame, pos.y - parentPos.y); | |||||
WebForm_SetElementWidth(childFrame, pos.width); | |||||
WebForm_SetElementHeight(childFrame, pos.height); | |||||
childFrame.style.display = "block"; | |||||
if (panel.currentStyle && panel.currentStyle.zIndex && panel.currentStyle.zIndex != "auto") { | |||||
z = panel.currentStyle.zIndex; | |||||
} | |||||
else if (panel.style.zIndex) { | |||||
z = panel.style.zIndex; | |||||
} | |||||
} | |||||
panel.style.zIndex = z; | |||||
} | |||||
} | |||||
function PopOut_ShowScrollers(panel) { | |||||
if (panel && panel.style) { | |||||
var up = WebForm_GetElementById(panel.id + "Up"); | |||||
var dn = WebForm_GetElementById(panel.id + "Dn"); | |||||
var cnt = 0; | |||||
if (up && dn) { | |||||
if (panel.offset && panel.offset > 0) { | |||||
up.style.visibility = "visible"; | |||||
up.style.display = "inline"; | |||||
cnt++; | |||||
if (panel.clientWidth) { | |||||
WebForm_SetElementWidth(up, panel.clientWidth | |||||
- (up.clientLeft ? (2 * up.clientLeft) : 0)); | |||||
} | |||||
WebForm_SetElementY(up, 0); | |||||
} | |||||
else { | |||||
up.style.visibility = "hidden"; | |||||
up.style.display = "none"; | |||||
} | |||||
if (panel.offset + panel.clippedHeight + 2 <= panel.physicalHeight) { | |||||
dn.style.visibility = "visible"; | |||||
dn.style.display = "inline"; | |||||
cnt++; | |||||
if (panel.clientWidth) { | |||||
WebForm_SetElementWidth(dn, panel.clientWidth | |||||
- (dn.clientLeft ? (2 * dn.clientLeft) : 0)); | |||||
} | |||||
WebForm_SetElementY(dn, panel.clippedHeight - WebForm_GetElementPosition(dn).height | |||||
- (panel.clientTop ? (2 * panel.clientTop) : 0)); | |||||
} | |||||
else { | |||||
dn.style.visibility = "hidden"; | |||||
dn.style.display = "none"; | |||||
} | |||||
if (cnt == 0) { | |||||
panel.style.clip = "rect(auto auto auto auto)"; | |||||
} | |||||
} | |||||
} | |||||
} | |||||
function PopOut_Stop() { | |||||
if (__scrollPanel && __scrollPanel.interval) { | |||||
window.clearInterval(__scrollPanel.interval); | |||||
} | |||||
Menu_RestoreInterval(); | |||||
} | |||||
function PopOut_Up(scroller) { | |||||
Menu_ClearInterval(); | |||||
var panel; | |||||
if (scroller) { | |||||
panel = scroller.parentNode | |||||
} | |||||
else { | |||||
panel = __scrollPanel; | |||||
} | |||||
if (panel && panel.offset && panel.offset > 0) { | |||||
PopOut_Scroll(panel, -2); | |||||
__scrollPanel = panel; | |||||
PopOut_ShowScrollers(panel); | |||||
PopOut_Stop(); | |||||
__scrollPanel.interval = window.setInterval("PopOut_Up()", 8); | |||||
} | |||||
} |
@ -1,697 +0,0 @@ | |||||
//CdnPath=http://ajax.aspnetcdn.com/ajax/4.5.1/1/MenuStandards.js | |||||
if (!window.Sys) { window.Sys = {}; } | |||||
if (!Sys.WebForms) { Sys.WebForms = {}; } | |||||
Sys.WebForms.Menu = function(options) { | |||||
this.items = []; | |||||
this.depth = options.depth || 1; | |||||
this.parentMenuItem = options.parentMenuItem; | |||||
this.element = Sys.WebForms.Menu._domHelper.getElement(options.element); | |||||
if (this.element.tagName === 'DIV') { | |||||
var containerElement = this.element; | |||||
this.element = Sys.WebForms.Menu._domHelper.firstChild(containerElement); | |||||
this.element.tabIndex = options.tabIndex || 0; | |||||
options.element = containerElement; | |||||
options.menu = this; | |||||
this.container = new Sys.WebForms._MenuContainer(options); | |||||
Sys.WebForms.Menu._domHelper.setFloat(this.element, this.container.rightToLeft ? "right" : "left"); | |||||
} | |||||
else { | |||||
this.container = options.container; | |||||
this.keyMap = options.keyMap; | |||||
} | |||||
Sys.WebForms.Menu._elementObjectMapper.map(this.element, this); | |||||
if (this.parentMenuItem && this.parentMenuItem.parentMenu) { | |||||
this.parentMenu = this.parentMenuItem.parentMenu; | |||||
this.rootMenu = this.parentMenu.rootMenu; | |||||
if (!this.element.id) { | |||||
this.element.id = (this.container.element.id || 'menu') + ':submenu:' + Sys.WebForms.Menu._elementObjectMapper._computedId; | |||||
} | |||||
if (this.depth > this.container.staticDisplayLevels) { | |||||
this.displayMode = "dynamic"; | |||||
this.element.style.display = "none"; | |||||
this.element.style.position = "absolute"; | |||||
if (this.rootMenu && this.container.orientation === 'horizontal' && this.parentMenu.isStatic()) { | |||||
this.element.style.top = "100%"; | |||||
if (this.container.rightToLeft) { | |||||
this.element.style.right = "0px"; | |||||
} | |||||
else { | |||||
this.element.style.left = "0px"; | |||||
} | |||||
} | |||||
else { | |||||
this.element.style.top = "0px"; | |||||
if (this.container.rightToLeft) { | |||||
this.element.style.right = "100%"; | |||||
} | |||||
else { | |||||
this.element.style.left = "100%"; | |||||
} | |||||
} | |||||
if (this.container.rightToLeft) { | |||||
this.keyMap = Sys.WebForms.Menu._keyboardMapping.verticalRtl; | |||||
} | |||||
else { | |||||
this.keyMap = Sys.WebForms.Menu._keyboardMapping.vertical; | |||||
} | |||||
} | |||||
else { | |||||
this.displayMode = "static"; | |||||
this.element.style.display = "block"; | |||||
if (this.container.orientation === 'horizontal') { | |||||
Sys.WebForms.Menu._domHelper.setFloat(this.element, this.container.rightToLeft ? "right" : "left"); | |||||
} | |||||
} | |||||
} | |||||
Sys.WebForms.Menu._domHelper.appendCssClass(this.element, this.displayMode); | |||||
var children = this.element.childNodes; | |||||
var count = children.length; | |||||
for (var i = 0; i < count; i++) { | |||||
var node = children[i]; | |||||
if (node.nodeType !== 1) { | |||||
continue; | |||||
} | |||||
var topLevelMenuItem = null; | |||||
if (this.parentMenuItem) { | |||||
topLevelMenuItem = this.parentMenuItem.topLevelMenuItem; | |||||
} | |||||
var menuItem = new Sys.WebForms.MenuItem(this, node, topLevelMenuItem); | |||||
var previousMenuItem = this.items[this.items.length - 1]; | |||||
if (previousMenuItem) { | |||||
menuItem.previousSibling = previousMenuItem; | |||||
previousMenuItem.nextSibling = menuItem; | |||||
} | |||||
this.items[this.items.length] = menuItem; | |||||
} | |||||
}; | |||||
Sys.WebForms.Menu.prototype = { | |||||
blur: function() { if (this.container) this.container.blur(); }, | |||||
collapse: function() { | |||||
this.each(function(menuItem) { | |||||
menuItem.hover(false); | |||||
menuItem.blur(); | |||||
var childMenu = menuItem.childMenu; | |||||
if (childMenu) { | |||||
childMenu.collapse(); | |||||
} | |||||
}); | |||||
this.hide(); | |||||
}, | |||||
doDispose: function() { this.each(function(item) { item.doDispose(); }); }, | |||||
each: function(fn) { | |||||
var count = this.items.length; | |||||
for (var i = 0; i < count; i++) { | |||||
fn(this.items[i]); | |||||
} | |||||
}, | |||||
firstChild: function() { return this.items[0]; }, | |||||
focus: function() { if (this.container) this.container.focus(); }, | |||||
get_displayed: function() { return this.element.style.display !== 'none'; }, | |||||
get_focused: function() { | |||||
if (this.container) { | |||||
return this.container.focused; | |||||
} | |||||
return false; | |||||
}, | |||||
handleKeyPress: function(keyCode) { | |||||
if (this.keyMap.contains(keyCode)) { | |||||
if (this.container.focusedMenuItem) { | |||||
this.container.focusedMenuItem.navigate(keyCode); | |||||
return; | |||||
} | |||||
var firstChild = this.firstChild(); | |||||
if (firstChild) { | |||||
this.container.navigateTo(firstChild); | |||||
} | |||||
} | |||||
}, | |||||
hide: function() { | |||||
if (!this.get_displayed()) { | |||||
return; | |||||
} | |||||
this.each(function(item) { | |||||
if (item.childMenu) { | |||||
item.childMenu.hide(); | |||||
} | |||||
}); | |||||
if (!this.isRoot()) { | |||||
if (this.get_focused()) { | |||||
this.container.navigateTo(this.parentMenuItem); | |||||
} | |||||
this.element.style.display = 'none'; | |||||
} | |||||
}, | |||||
isRoot: function() { return this.rootMenu === this; }, | |||||
isStatic: function() { return this.displayMode === 'static'; }, | |||||
lastChild: function() { return this.items[this.items.length - 1]; }, | |||||
show: function() { this.element.style.display = 'block'; } | |||||
}; | |||||
if (Sys.WebForms.Menu.registerClass) { | |||||
Sys.WebForms.Menu.registerClass('Sys.WebForms.Menu'); | |||||
} | |||||
Sys.WebForms.MenuItem = function(parentMenu, listElement, topLevelMenuItem) { | |||||
this.keyMap = parentMenu.keyMap; | |||||
this.parentMenu = parentMenu; | |||||
this.container = parentMenu.container; | |||||
this.element = listElement; | |||||
this.topLevelMenuItem = topLevelMenuItem || this; | |||||
this._anchor = Sys.WebForms.Menu._domHelper.firstChild(listElement); | |||||
while (this._anchor && this._anchor.tagName !== 'A') { | |||||
this._anchor = Sys.WebForms.Menu._domHelper.nextSibling(this._anchor); | |||||
} | |||||
if (this._anchor) { | |||||
this._anchor.tabIndex = -1; | |||||
var subMenu = this._anchor; | |||||
while (subMenu && subMenu.tagName !== 'UL') { | |||||
subMenu = Sys.WebForms.Menu._domHelper.nextSibling(subMenu); | |||||
} | |||||
if (subMenu) { | |||||
this.childMenu = new Sys.WebForms.Menu({ element: subMenu, parentMenuItem: this, depth: parentMenu.depth + 1, container: this.container, keyMap: this.keyMap }); | |||||
if (!this.childMenu.isStatic()) { | |||||
Sys.WebForms.Menu._domHelper.appendCssClass(this.element, 'has-popup'); | |||||
Sys.WebForms.Menu._domHelper.appendAttributeValue(this.element, 'aria-haspopup', this.childMenu.element.id); | |||||
} | |||||
} | |||||
} | |||||
Sys.WebForms.Menu._elementObjectMapper.map(listElement, this); | |||||
Sys.WebForms.Menu._domHelper.appendAttributeValue(listElement, 'role', 'menuitem'); | |||||
Sys.WebForms.Menu._domHelper.appendCssClass(listElement, parentMenu.displayMode); | |||||
if (this._anchor) { | |||||
Sys.WebForms.Menu._domHelper.appendCssClass(this._anchor, parentMenu.displayMode); | |||||
} | |||||
this.element.style.position = "relative"; | |||||
if (this.parentMenu.depth == 1 && this.container.orientation == 'horizontal') { | |||||
Sys.WebForms.Menu._domHelper.setFloat(this.element, this.container.rightToLeft ? "right" : "left"); | |||||
} | |||||
if (!this.container.disabled) { | |||||
Sys.WebForms.Menu._domHelper.addEvent(this.element, 'mouseover', Sys.WebForms.MenuItem._onmouseover); | |||||
Sys.WebForms.Menu._domHelper.addEvent(this.element, 'mouseout', Sys.WebForms.MenuItem._onmouseout); | |||||
} | |||||
}; | |||||
Sys.WebForms.MenuItem.prototype = { | |||||
applyUp: function(fn, condition) { | |||||
condition = condition || function(menuItem) { return menuItem; }; | |||||
var menuItem = this; | |||||
var lastMenuItem = null; | |||||
while (condition(menuItem)) { | |||||
fn(menuItem); | |||||
lastMenuItem = menuItem; | |||||
menuItem = menuItem.parentMenu.parentMenuItem; | |||||
} | |||||
return lastMenuItem; | |||||
}, | |||||
blur: function() { this.setTabIndex(-1); }, | |||||
doDispose: function() { | |||||
Sys.WebForms.Menu._domHelper.removeEvent(this.element, 'mouseover', Sys.WebForms.MenuItem._onmouseover); | |||||
Sys.WebForms.Menu._domHelper.removeEvent(this.element, 'mouseout', Sys.WebForms.MenuItem._onmouseout); | |||||
if (this.childMenu) { | |||||
this.childMenu.doDispose(); | |||||
} | |||||
}, | |||||
focus: function() { | |||||
if (!this.parentMenu.get_displayed()) { | |||||
this.parentMenu.show(); | |||||
} | |||||
this.setTabIndex(0); | |||||
this.container.focused = true; | |||||
this._anchor.focus(); | |||||
}, | |||||
get_highlighted: function() { return /(^|\s)highlighted(\s|$)/.test(this._anchor.className); }, | |||||
getTabIndex: function() { return this._anchor.tabIndex; }, | |||||
highlight: function(highlighting) { | |||||
if (highlighting) { | |||||
this.applyUp(function(menuItem) { | |||||
menuItem.parentMenu.parentMenuItem.highlight(true); | |||||
}, | |||||
function(menuItem) { | |||||
return !menuItem.parentMenu.isStatic() && menuItem.parentMenu.parentMenuItem; | |||||
} | |||||
); | |||||
Sys.WebForms.Menu._domHelper.appendCssClass(this._anchor, 'highlighted'); | |||||
} | |||||
else { | |||||
Sys.WebForms.Menu._domHelper.removeCssClass(this._anchor, 'highlighted'); | |||||
this.setTabIndex(-1); | |||||
} | |||||
}, | |||||
hover: function(hovering) { | |||||
if (hovering) { | |||||
var currentHoveredItem = this.container.hoveredMenuItem; | |||||
if (currentHoveredItem) { | |||||
currentHoveredItem.hover(false); | |||||
} | |||||
var currentFocusedItem = this.container.focusedMenuItem; | |||||
if (currentFocusedItem && currentFocusedItem !== this) { | |||||
currentFocusedItem.hover(false); | |||||
} | |||||
this.applyUp(function(menuItem) { | |||||
if (menuItem.childMenu && !menuItem.childMenu.get_displayed()) { | |||||
menuItem.childMenu.show(); | |||||
} | |||||
}); | |||||
this.container.hoveredMenuItem = this; | |||||
this.highlight(true); | |||||
} | |||||
else { | |||||
var menuItem = this; | |||||
while (menuItem) { | |||||
menuItem.highlight(false); | |||||
if (menuItem.childMenu) { | |||||
if (!menuItem.childMenu.isStatic()) { | |||||
menuItem.childMenu.hide(); | |||||
} | |||||
} | |||||
menuItem = menuItem.parentMenu.parentMenuItem; | |||||
} | |||||
} | |||||
}, | |||||
isSiblingOf: function(menuItem) { return menuItem.parentMenu === this.parentMenu; }, | |||||
mouseout: function() { | |||||
var menuItem = this, | |||||
id = this.container.pendingMouseoutId, | |||||
disappearAfter = this.container.disappearAfter; | |||||
if (id) { | |||||
window.clearTimeout(id); | |||||
} | |||||
if (disappearAfter > -1) { | |||||
this.container.pendingMouseoutId = | |||||
window.setTimeout(function() { menuItem.hover(false); }, disappearAfter); | |||||
} | |||||
}, | |||||
mouseover: function() { | |||||
var id = this.container.pendingMouseoutId; | |||||
if (id) { | |||||
window.clearTimeout(id); | |||||
this.container.pendingMouseoutId = null; | |||||
} | |||||
this.hover(true); | |||||
if (this.container.menu.get_focused()) { | |||||
this.container.navigateTo(this); | |||||
} | |||||
}, | |||||
navigate: function(keyCode) { | |||||
switch (this.keyMap[keyCode]) { | |||||
case this.keyMap.next: | |||||
this.navigateNext(); | |||||
break; | |||||
case this.keyMap.previous: | |||||
this.navigatePrevious(); | |||||
break; | |||||
case this.keyMap.child: | |||||
this.navigateChild(); | |||||
break; | |||||
case this.keyMap.parent: | |||||
this.navigateParent(); | |||||
break; | |||||
case this.keyMap.tab: | |||||
this.navigateOut(); | |||||
break; | |||||
} | |||||
}, | |||||
navigateChild: function() { | |||||
var subMenu = this.childMenu; | |||||
if (subMenu) { | |||||
var firstChild = subMenu.firstChild(); | |||||
if (firstChild) { | |||||
this.container.navigateTo(firstChild); | |||||
} | |||||
} | |||||
else { | |||||
if (this.container.orientation === 'horizontal') { | |||||
var nextItem = this.topLevelMenuItem.nextSibling || this.topLevelMenuItem.parentMenu.firstChild(); | |||||
if (nextItem == this.topLevelMenuItem) { | |||||
return; | |||||
} | |||||
this.topLevelMenuItem.childMenu.hide(); | |||||
this.container.navigateTo(nextItem); | |||||
if (nextItem.childMenu) { | |||||
this.container.navigateTo(nextItem.childMenu.firstChild()); | |||||
} | |||||
} | |||||
} | |||||
}, | |||||
navigateNext: function() { | |||||
if (this.childMenu) { | |||||
this.childMenu.hide(); | |||||
} | |||||
var nextMenuItem = this.nextSibling; | |||||
if (!nextMenuItem && this.parentMenu.isRoot()) { | |||||
nextMenuItem = this.parentMenu.parentMenuItem; | |||||
if (nextMenuItem) { | |||||
nextMenuItem = nextMenuItem.nextSibling; | |||||
} | |||||
} | |||||
if (!nextMenuItem) { | |||||
nextMenuItem = this.parentMenu.firstChild(); | |||||
} | |||||
if (nextMenuItem) { | |||||
this.container.navigateTo(nextMenuItem); | |||||
} | |||||
}, | |||||
navigateOut: function() { | |||||
this.parentMenu.blur(); | |||||
}, | |||||
navigateParent: function() { | |||||
var parentMenu = this.parentMenu, | |||||
horizontal = this.container.orientation === 'horizontal'; | |||||
if (!parentMenu) return; | |||||
if (horizontal && this.childMenu && parentMenu.isRoot()) { | |||||
this.navigateChild(); | |||||
return; | |||||
} | |||||
if (parentMenu.parentMenuItem && !parentMenu.isRoot()) { | |||||
if (horizontal && this.parentMenu.depth === 2) { | |||||
var previousItem = this.parentMenu.parentMenuItem.previousSibling; | |||||
if (!previousItem) { | |||||
previousItem = this.parentMenu.rootMenu.lastChild(); | |||||
} | |||||
this.topLevelMenuItem.childMenu.hide(); | |||||
this.container.navigateTo(previousItem); | |||||
if (previousItem.childMenu) { | |||||
this.container.navigateTo(previousItem.childMenu.firstChild()); | |||||
} | |||||
} | |||||
else { | |||||
this.parentMenu.hide(); | |||||
} | |||||
} | |||||
}, | |||||
navigatePrevious: function() { | |||||
if (this.childMenu) { | |||||
this.childMenu.hide(); | |||||
} | |||||
var previousMenuItem = this.previousSibling; | |||||
if (previousMenuItem) { | |||||
var childMenu = previousMenuItem.childMenu; | |||||
if (childMenu && childMenu.isRoot()) { | |||||
previousMenuItem = childMenu.lastChild(); | |||||
} | |||||
} | |||||
if (!previousMenuItem && this.parentMenu.isRoot()) { | |||||
previousMenuItem = this.parentMenu.parentMenuItem; | |||||
} | |||||
if (!previousMenuItem) { | |||||
previousMenuItem = this.parentMenu.lastChild(); | |||||
} | |||||
if (previousMenuItem) { | |||||
this.container.navigateTo(previousMenuItem); | |||||
} | |||||
}, | |||||
setTabIndex: function(index) { if (this._anchor) this._anchor.tabIndex = index; } | |||||
}; | |||||
Sys.WebForms.MenuItem._onmouseout = function(e) { | |||||
var menuItem = Sys.WebForms.Menu._elementObjectMapper.getMappedObject(this); | |||||
if (!menuItem) { | |||||
return; | |||||
} | |||||
menuItem.mouseout(); | |||||
Sys.WebForms.Menu._domHelper.cancelEvent(e); | |||||
}; | |||||
Sys.WebForms.MenuItem._onmouseover = function(e) { | |||||
var menuItem = Sys.WebForms.Menu._elementObjectMapper.getMappedObject(this); | |||||
if (!menuItem) { | |||||
return; | |||||
} | |||||
menuItem.mouseover(); | |||||
Sys.WebForms.Menu._domHelper.cancelEvent(e); | |||||
}; | |||||
Sys.WebForms.Menu._domHelper = { | |||||
addEvent: function(element, eventName, fn, useCapture) { | |||||
if (element.addEventListener) { | |||||
element.addEventListener(eventName, fn, !!useCapture); | |||||
} | |||||
else { | |||||
element['on' + eventName] = fn; | |||||
} | |||||
}, | |||||
appendAttributeValue: function(element, name, value) { | |||||
this.updateAttributeValue('append', element, name, value); | |||||
}, | |||||
appendCssClass: function(element, value) { | |||||
this.updateClassName('append', element, name, value); | |||||
}, | |||||
appendString: function(getString, setString, value) { | |||||
var currentValue = getString(); | |||||
if (!currentValue) { | |||||
setString(value); | |||||
return; | |||||
} | |||||
var regex = this._regexes.getRegex('(^| )' + value + '($| )'); | |||||
if (regex.test(currentValue)) { | |||||
return; | |||||
} | |||||
setString(currentValue + ' ' + value); | |||||
}, | |||||
cancelEvent: function(e) { | |||||
var event = e || window.event; | |||||
if (event) { | |||||
event.cancelBubble = true; | |||||
if (event.stopPropagation) { | |||||
event.stopPropagation(); | |||||
} | |||||
} | |||||
}, | |||||
contains: function(ancestor, descendant) { | |||||
for (; descendant && (descendant !== ancestor); descendant = descendant.parentNode) { } | |||||
return !!descendant; | |||||
}, | |||||
firstChild: function(element) { | |||||
var child = element.firstChild; | |||||
if (child && child.nodeType !== 1) { | |||||
child = this.nextSibling(child); | |||||
} | |||||
return child; | |||||
}, | |||||
getElement: function(elementOrId) { return typeof elementOrId === 'string' ? document.getElementById(elementOrId) : elementOrId; }, | |||||
getElementDirection: function(element) { | |||||
if (element) { | |||||
if (element.dir) { | |||||
return element.dir; | |||||
} | |||||
return this.getElementDirection(element.parentNode); | |||||
} | |||||
return "ltr"; | |||||
}, | |||||
getKeyCode: function(event) { return event.keyCode || event.charCode || 0; }, | |||||
insertAfter: function(element, elementToInsert) { | |||||
var next = element.nextSibling; | |||||
if (next) { | |||||
element.parentNode.insertBefore(elementToInsert, next); | |||||
} | |||||
else if (element.parentNode) { | |||||
element.parentNode.appendChild(elementToInsert); | |||||
} | |||||
}, | |||||
nextSibling: function(element) { | |||||
var sibling = element.nextSibling; | |||||
while (sibling) { | |||||
if (sibling.nodeType === 1) { | |||||
return sibling; | |||||
} | |||||
sibling = sibling.nextSibling; | |||||
} | |||||
}, | |||||
removeAttributeValue: function(element, name, value) { | |||||
this.updateAttributeValue('remove', element, name, value); | |||||
}, | |||||
removeCssClass: function(element, value) { | |||||
this.updateClassName('remove', element, name, value); | |||||
}, | |||||
removeEvent: function(element, eventName, fn, useCapture) { | |||||
if (element.removeEventListener) { | |||||
element.removeEventListener(eventName, fn, !!useCapture); | |||||
} | |||||
else if (element.detachEvent) { | |||||
element.detachEvent('on' + eventName, fn) | |||||
} | |||||
element['on' + eventName] = null; | |||||
}, | |||||
removeString: function(getString, setString, valueToRemove) { | |||||
var currentValue = getString(); | |||||
if (currentValue) { | |||||
var regex = this._regexes.getRegex('(\\s|\\b)' + valueToRemove + '$|\\b' + valueToRemove + '\\s+'); | |||||
setString(currentValue.replace(regex, '')); | |||||
} | |||||
}, | |||||
setFloat: function(element, direction) { | |||||
element.style.styleFloat = direction; | |||||
element.style.cssFloat = direction; | |||||
}, | |||||
updateAttributeValue: function(operation, element, name, value) { | |||||
this[operation + 'String']( | |||||
function() { | |||||
return element.getAttribute(name); | |||||
}, | |||||
function(newValue) { | |||||
element.setAttribute(name, newValue); | |||||
}, | |||||
value | |||||
); | |||||
}, | |||||
updateClassName: function(operation, element, name, value) { | |||||
this[operation + 'String']( | |||||
function() { | |||||
return element.className; | |||||
}, | |||||
function(newValue) { | |||||
element.className = newValue; | |||||
}, | |||||
value | |||||
); | |||||
}, | |||||
_regexes: { | |||||
getRegex: function(pattern) { | |||||
var regex = this[pattern]; | |||||
if (!regex) { | |||||
this[pattern] = regex = new RegExp(pattern); | |||||
} | |||||
return regex; | |||||
} | |||||
} | |||||
}; | |||||
Sys.WebForms.Menu._elementObjectMapper = { | |||||
_computedId: 0, | |||||
_mappings: {}, | |||||
_mappingIdName: 'Sys.WebForms.Menu.Mapping', | |||||
getMappedObject: function(element) { | |||||
var id = element[this._mappingIdName]; | |||||
if (id) { | |||||
return this._mappings[this._mappingIdName + ':' + id]; | |||||
} | |||||
}, | |||||
map: function(element, theObject) { | |||||
var mappedObject = element[this._mappingIdName]; | |||||
if (mappedObject === theObject) { | |||||
return; | |||||
} | |||||
var objectId = element[this._mappingIdName] || element.id || '%' + (++this._computedId); | |||||
element[this._mappingIdName] = objectId; | |||||
this._mappings[this._mappingIdName + ':' + objectId] = theObject; | |||||
theObject.mappingId = objectId; | |||||
} | |||||
}; | |||||
Sys.WebForms.Menu._keyboardMapping = new (function() { | |||||
var LEFT_ARROW = 37; | |||||
var UP_ARROW = 38; | |||||
var RIGHT_ARROW = 39; | |||||
var DOWN_ARROW = 40; | |||||
var TAB = 9; | |||||
var ESCAPE = 27; | |||||
this.vertical = { next: 0, previous: 1, child: 2, parent: 3, tab: 4 }; | |||||
this.vertical[DOWN_ARROW] = this.vertical.next; | |||||
this.vertical[UP_ARROW] = this.vertical.previous; | |||||
this.vertical[RIGHT_ARROW] = this.vertical.child; | |||||
this.vertical[LEFT_ARROW] = this.vertical.parent; | |||||
this.vertical[TAB] = this.vertical[ESCAPE] = this.vertical.tab; | |||||
this.verticalRtl = { next: 0, previous: 1, child: 2, parent: 3, tab: 4 }; | |||||
this.verticalRtl[DOWN_ARROW] = this.verticalRtl.next; | |||||
this.verticalRtl[UP_ARROW] = this.verticalRtl.previous; | |||||
this.verticalRtl[LEFT_ARROW] = this.verticalRtl.child; | |||||
this.verticalRtl[RIGHT_ARROW] = this.verticalRtl.parent; | |||||
this.verticalRtl[TAB] = this.verticalRtl[ESCAPE] = this.verticalRtl.tab; | |||||
this.horizontal = { next: 0, previous: 1, child: 2, parent: 3, tab: 4 }; | |||||
this.horizontal[RIGHT_ARROW] = this.horizontal.next; | |||||
this.horizontal[LEFT_ARROW] = this.horizontal.previous; | |||||
this.horizontal[DOWN_ARROW] = this.horizontal.child; | |||||
this.horizontal[UP_ARROW] = this.horizontal.parent; | |||||
this.horizontal[TAB] = this.horizontal[ESCAPE] = this.horizontal.tab; | |||||
this.horizontalRtl = { next: 0, previous: 1, child: 2, parent: 3, tab: 4 }; | |||||
this.horizontalRtl[RIGHT_ARROW] = this.horizontalRtl.previous; | |||||
this.horizontalRtl[LEFT_ARROW] = this.horizontalRtl.next; | |||||
this.horizontalRtl[DOWN_ARROW] = this.horizontalRtl.child; | |||||
this.horizontalRtl[UP_ARROW] = this.horizontalRtl.parent; | |||||
this.horizontalRtl[TAB] = this.horizontalRtl[ESCAPE] = this.horizontalRtl.tab; | |||||
this.horizontal.contains = this.horizontalRtl.contains = this.vertical.contains = this.verticalRtl.contains = function(keycode) { | |||||
return this[keycode] != null; | |||||
}; | |||||
})(); | |||||
Sys.WebForms._MenuContainer = function(options) { | |||||
this.focused = false; | |||||
this.disabled = options.disabled; | |||||
this.staticDisplayLevels = options.staticDisplayLevels || 1; | |||||
this.element = options.element; | |||||
this.orientation = options.orientation || 'vertical'; | |||||
this.disappearAfter = options.disappearAfter; | |||||
this.rightToLeft = Sys.WebForms.Menu._domHelper.getElementDirection(this.element) === 'rtl'; | |||||
Sys.WebForms.Menu._elementObjectMapper.map(this.element, this); | |||||
this.menu = options.menu; | |||||
this.menu.rootMenu = this.menu; | |||||
this.menu.displayMode = 'static'; | |||||
this.menu.element.style.position = 'relative'; | |||||
this.menu.element.style.width = 'auto'; | |||||
if (this.orientation === 'vertical') { | |||||
Sys.WebForms.Menu._domHelper.appendAttributeValue(this.menu.element, 'role', 'menu'); | |||||
if (this.rightToLeft) { | |||||
this.menu.keyMap = Sys.WebForms.Menu._keyboardMapping.verticalRtl; | |||||
} | |||||
else { | |||||
this.menu.keyMap = Sys.WebForms.Menu._keyboardMapping.vertical; | |||||
} | |||||
} | |||||
else { | |||||
Sys.WebForms.Menu._domHelper.appendAttributeValue(this.menu.element, 'role', 'menubar'); | |||||
if (this.rightToLeft) { | |||||
this.menu.keyMap = Sys.WebForms.Menu._keyboardMapping.horizontalRtl; | |||||
} | |||||
else { | |||||
this.menu.keyMap = Sys.WebForms.Menu._keyboardMapping.horizontal; | |||||
} | |||||
} | |||||
var floatBreak = document.createElement('div'); | |||||
floatBreak.style.clear = this.rightToLeft ? "right" : "left"; | |||||
this.element.appendChild(floatBreak); | |||||
Sys.WebForms.Menu._domHelper.setFloat(this.element, this.rightToLeft ? "right" : "left"); | |||||
Sys.WebForms.Menu._domHelper.insertAfter(this.element, floatBreak); | |||||
if (!this.disabled) { | |||||
Sys.WebForms.Menu._domHelper.addEvent(this.menu.element, 'focus', this._onfocus, true); | |||||
Sys.WebForms.Menu._domHelper.addEvent(this.menu.element, 'keydown', this._onkeydown); | |||||
var menuContainer = this; | |||||
this.element.dispose = function() { | |||||
if (menuContainer.element.dispose) { | |||||
menuContainer.element.dispose = null; | |||||
Sys.WebForms.Menu._domHelper.removeEvent(menuContainer.menu.element, 'focus', menuContainer._onfocus, true); | |||||
Sys.WebForms.Menu._domHelper.removeEvent(menuContainer.menu.element, 'keydown', menuContainer._onkeydown); | |||||
menuContainer.menu.doDispose(); | |||||
} | |||||
}; | |||||
Sys.WebForms.Menu._domHelper.addEvent(window, 'unload', function() { | |||||
if (menuContainer.element.dispose) { | |||||
menuContainer.element.dispose(); | |||||
} | |||||
}); | |||||
} | |||||
}; | |||||
Sys.WebForms._MenuContainer.prototype = { | |||||
blur: function() { | |||||
this.focused = false; | |||||
this.isBlurring = false; | |||||
this.menu.collapse(); | |||||
this.focusedMenuItem = null; | |||||
}, | |||||
focus: function(e) { this.focused = true; }, | |||||
navigateTo: function(menuItem) { | |||||
if (this.focusedMenuItem && this.focusedMenuItem !== this) { | |||||
this.focusedMenuItem.highlight(false); | |||||
} | |||||
menuItem.highlight(true); | |||||
menuItem.focus(); | |||||
this.focusedMenuItem = menuItem; | |||||
}, | |||||
_onfocus: function(e) { | |||||
var event = e || window.event; | |||||
if (event.srcElement && this) { | |||||
if (Sys.WebForms.Menu._domHelper.contains(this.element, event.srcElement)) { | |||||
if (!this.focused) { | |||||
this.focus(); | |||||
} | |||||
} | |||||
} | |||||
}, | |||||
_onkeydown: function(e) { | |||||
var thisMenu = Sys.WebForms.Menu._elementObjectMapper.getMappedObject(this); | |||||
var keyCode = Sys.WebForms.Menu._domHelper.getKeyCode(e || window.event); | |||||
if (thisMenu) { | |||||
thisMenu.handleKeyPress(keyCode); | |||||
} | |||||
} | |||||
}; |
@ -1,280 +0,0 @@ | |||||
//CdnPath=http://ajax.aspnetcdn.com/ajax/4.5.1/1/SmartNav.js | |||||
var snSrc; | |||||
if ((typeof(window.__smartNav) == "undefined") || (window.__smartNav == null)) | |||||
{ | |||||
window.__smartNav = new Object(); | |||||
window.__smartNav.update = function() | |||||
{ | |||||
var sn = window.__smartNav; | |||||
var fd; | |||||
document.detachEvent("onstop", sn.stopHif); | |||||
sn.inPost = false; | |||||
try { fd = frames["__hifSmartNav"].document; } catch (e) {return;} | |||||
var fdr = fd.getElementsByTagName("asp_smartnav_rdir"); | |||||
if (fdr.length > 0) | |||||
{ | |||||
if ((typeof(sn.sHif) == "undefined") || (sn.sHif == null)) | |||||
{ | |||||
sn.sHif = document.createElement("IFRAME"); | |||||
sn.sHif.name = "__hifSmartNav"; | |||||
sn.sHif.style.display = "none"; | |||||
sn.sHif.src = snSrc; | |||||
} | |||||
try {window.location = fdr[0].url;} catch (e) {}; | |||||
return; | |||||
} | |||||
var fdurl = fd.location.href; | |||||
var index = fdurl.indexOf(snSrc); | |||||
if ((index != -1 && index == fdurl.length-snSrc.length) | |||||
|| fdurl == "about:blank") | |||||
return; | |||||
var fdurlb = fdurl.split("?")[0]; | |||||
if (document.location.href.indexOf(fdurlb) < 0) | |||||
{ | |||||
document.location.href=fdurl; | |||||
return; | |||||
} | |||||
sn._savedOnLoad = window.onload; | |||||
window.onload = null; | |||||
window.__smartNav.updateHelper(); | |||||
} | |||||
window.__smartNav.updateHelper = function() | |||||
{ | |||||
if (document.readyState != "complete") | |||||
{ | |||||
window.setTimeout(window.__smartNav.updateHelper, 25); | |||||
return; | |||||
} | |||||
window.__smartNav.loadNewContent(); | |||||
} | |||||
window.__smartNav.loadNewContent = function() | |||||
{ | |||||
var sn = window.__smartNav; | |||||
var fd; | |||||
try { fd = frames["__hifSmartNav"].document; } catch (e) {return;} | |||||
if ((typeof(sn.sHif) != "undefined") && (sn.sHif != null)) | |||||
{ | |||||
sn.sHif.removeNode(true); | |||||
sn.sHif = null; | |||||
} | |||||
var hdm = document.getElementsByTagName("head")[0]; | |||||
var hk = hdm.childNodes; | |||||
var tt = null; | |||||
var i; | |||||
for (i = hk.length - 1; i>= 0; i--) | |||||
{ | |||||
if (hk[i].tagName == "TITLE") | |||||
{ | |||||
tt = hk[i].outerHTML; | |||||
continue; | |||||
} | |||||
if (hk[i].tagName != "BASEFONT" || hk[i].innerHTML.length == 0) | |||||
hdm.removeChild(hdm.childNodes[i]); | |||||
} | |||||
var kids = fd.getElementsByTagName("head")[0].childNodes; | |||||
for (i = 0; i < kids.length; i++) | |||||
{ | |||||
var tn = kids[i].tagName; | |||||
var k = document.createElement(tn); | |||||
k.id = kids[i].id; | |||||
k.mergeAttributes(kids[i]); | |||||
switch(tn) | |||||
{ | |||||
case "TITLE": | |||||
if (tt == kids[i].outerHTML) | |||||
continue; | |||||
k.innerText = kids[i].text; | |||||
hdm.insertAdjacentElement("afterbegin", k); | |||||
continue; | |||||
case "BASEFONT" : | |||||
if (kids[i].innerHTML.length > 0) | |||||
continue; | |||||
break; | |||||
default: | |||||
var o = document.createElement("BODY"); | |||||
o.innerHTML = "<BODY>" + kids[i].outerHTML + "</BODY>"; | |||||
k = o.firstChild; | |||||
break; | |||||
} | |||||
if((typeof(k) != "undefined") && (k != null)) | |||||
hdm.appendChild(k); | |||||
} | |||||
document.body.clearAttributes(); | |||||
document.body.id = fd.body.id; | |||||
document.body.mergeAttributes(fd.body); | |||||
var newBodyLoad = fd.body.onload; | |||||
if ((typeof(newBodyLoad) != "undefined") && (newBodyLoad != null)) | |||||
document.body.onload = newBodyLoad; | |||||
else | |||||
document.body.onload = sn._savedOnLoad; | |||||
var s = "<BODY>" + fd.body.innerHTML + "</BODY>"; | |||||
if ((typeof(sn.hif) != "undefined") && (sn.hif != null)) | |||||
{ | |||||
var hifP = sn.hif.parentElement; | |||||
if ((typeof(hifP) != "undefined") && (hifP != null)) | |||||
sn.sHif=hifP.removeChild(sn.hif); | |||||
} | |||||
document.body.innerHTML = s; | |||||
var sc = document.scripts; | |||||
for (i = 0; i < sc.length; i++) | |||||
{ | |||||
sc[i].text = sc[i].text; | |||||
} | |||||
sn.hif = document.all("__hifSmartNav"); | |||||
if ((typeof(sn.hif) != "undefined") && (sn.hif != null)) | |||||
{ | |||||
var hif = sn.hif; | |||||
sn.hifName = "__hifSmartNav" + (new Date()).getTime(); | |||||
frames["__hifSmartNav"].name = sn.hifName; | |||||
sn.hifDoc = hif.contentWindow.document; | |||||
if (sn.ie5) | |||||
hif.parentElement.removeChild(hif); | |||||
window.setTimeout(sn.restoreFocus,0); | |||||
} | |||||
if (typeof(window.onload) == "string") | |||||
{ | |||||
try { eval(window.onload) } catch (e) {}; | |||||
} | |||||
else if ((typeof(window.onload) != "undefined") && (window.onload != null)) | |||||
{ | |||||
try { window.onload() } catch (e) {}; | |||||
} | |||||
sn._savedOnLoad = null; | |||||
sn.attachForm(); | |||||
}; | |||||
window.__smartNav.restoreFocus = function() | |||||
{ | |||||
if (window.__smartNav.inPost == true) return; | |||||
var curAe = document.activeElement; | |||||
var sAeId = window.__smartNav.ae; | |||||
if (((typeof(sAeId) == "undefined") || (sAeId == null)) || | |||||
(typeof(curAe) != "undefined") && (curAe != null) && (curAe.id == sAeId || curAe.name == sAeId)) | |||||
return; | |||||
var ae = document.all(sAeId); | |||||
if ((typeof(ae) == "undefined") || (ae == null)) return; | |||||
try { ae.focus(); } catch(e){}; | |||||
} | |||||
window.__smartNav.saveHistory = function() | |||||
{ | |||||
if ((typeof(window.__smartNav.hif) != "undefined") && (window.__smartNav.hif != null)) | |||||
window.__smartNav.hif.removeNode(); | |||||
if ((typeof(window.__smartNav.sHif) != "undefined") && (window.__smartNav.sHif != null) | |||||
&& (typeof(document.all[window.__smartNav.siHif]) != "undefined") | |||||
&& (document.all[window.__smartNav.siHif] != null)) { | |||||
document.all[window.__smartNav.siHif].insertAdjacentElement( | |||||
"BeforeBegin", window.__smartNav.sHif); | |||||
} | |||||
} | |||||
window.__smartNav.stopHif = function() | |||||
{ | |||||
document.detachEvent("onstop", window.__smartNav.stopHif); | |||||
var sn = window.__smartNav; | |||||
if (((typeof(sn.hifDoc) == "undefined") || (sn.hifDoc == null)) && | |||||
(typeof(sn.hif) != "undefined") && (sn.hif != null)) | |||||
{ | |||||
try {sn.hifDoc = sn.hif.contentWindow.document;} | |||||
catch(e){sn.hifDoc=null} | |||||
} | |||||
if (sn.hifDoc != null) | |||||
{ | |||||
try {sn.hifDoc.execCommand("stop");} catch (e){} | |||||
} | |||||
} | |||||
window.__smartNav.init = function() | |||||
{ | |||||
var sn = window.__smartNav; | |||||
window.__smartNav.form.__smartNavPostBack.value = 'true'; | |||||
document.detachEvent("onstop", sn.stopHif); | |||||
document.attachEvent("onstop", sn.stopHif); | |||||
try { if (window.event.returnValue == false) return; } catch(e) {} | |||||
sn.inPost = true; | |||||
if ((typeof(document.activeElement) != "undefined") && (document.activeElement != null)) | |||||
{ | |||||
var ae = document.activeElement.id; | |||||
if (ae.length == 0) | |||||
ae = document.activeElement.name; | |||||
sn.ae = ae; | |||||
} | |||||
else | |||||
sn.ae = null; | |||||
try {document.selection.empty();} catch (e) {} | |||||
if ((typeof(sn.hif) == "undefined") || (sn.hif == null)) | |||||
{ | |||||
sn.hif = document.all("__hifSmartNav"); | |||||
sn.hifDoc = sn.hif.contentWindow.document; | |||||
} | |||||
if ((typeof(sn.hifDoc) != "undefined") && (sn.hifDoc != null)) | |||||
try {sn.hifDoc.designMode = "On";} catch(e){}; | |||||
if ((typeof(sn.hif.parentElement) == "undefined") || (sn.hif.parentElement == null)) | |||||
document.body.appendChild(sn.hif); | |||||
var hif = sn.hif; | |||||
hif.detachEvent("onload", sn.update); | |||||
hif.attachEvent("onload", sn.update); | |||||
window.__smartNav.fInit = true; | |||||
}; | |||||
window.__smartNav.submit = function() | |||||
{ | |||||
window.__smartNav.fInit = false; | |||||
try { window.__smartNav.init(); } catch(e) {} | |||||
if (window.__smartNav.fInit) { | |||||
window.__smartNav.form._submit(); | |||||
} | |||||
}; | |||||
window.__smartNav.attachForm = function() | |||||
{ | |||||
var cf = document.forms; | |||||
for (var i=0; i<cf.length; i++) | |||||
{ | |||||
if ((typeof(cf[i].__smartNavEnabled) != "undefined") && (cf[i].__smartNavEnabled != null)) | |||||
{ | |||||
window.__smartNav.form = cf[i]; | |||||
window.__smartNav.form.insertAdjacentHTML("beforeEnd", "<input type='hidden' name='__smartNavPostBack' value='false' />"); | |||||
break; | |||||
} | |||||
} | |||||
var snfm = window.__smartNav.form; | |||||
if ((typeof(snfm) == "undefined") || (snfm == null)) return false; | |||||
var sft = snfm.target; | |||||
if (sft.length != 0 && sft.indexOf("__hifSmartNav") != 0) return false; | |||||
var sfc = snfm.action.split("?")[0]; | |||||
var url = window.location.href.split("?")[0]; | |||||
if (url.charAt(url.length-1) != '/' && url.lastIndexOf(sfc) + sfc.length != url.length) return false; | |||||
if (snfm.__formAttached == true) return true; | |||||
snfm.__formAttached = true; | |||||
snfm.attachEvent("onsubmit", window.__smartNav.init); | |||||
snfm._submit = snfm.submit; | |||||
snfm.submit = window.__smartNav.submit; | |||||
snfm.target = window.__smartNav.hifName; | |||||
return true; | |||||
}; | |||||
window.__smartNav.hifName = "__hifSmartNav" + (new Date()).getTime(); | |||||
window.__smartNav.ie5 = navigator.appVersion.indexOf("MSIE 5") > 0; | |||||
var rc = window.__smartNav.attachForm(); | |||||
var hif = document.all("__hifSmartNav"); | |||||
if ((typeof(snSrc) == "undefined") || (snSrc == null)) { | |||||
if (typeof(window.dialogHeight) != "undefined") { | |||||
snSrc = "IEsmartnav1"; | |||||
hif.src = snSrc; | |||||
} else { | |||||
snSrc = hif.src; | |||||
} | |||||
} | |||||
if (rc) | |||||
{ | |||||
var fsn = frames["__hifSmartNav"]; | |||||
fsn.name = window.__smartNav.hifName; | |||||
window.__smartNav.siHif = hif.sourceIndex; | |||||
try { | |||||
if (fsn.document.location != snSrc) | |||||
{ | |||||
fsn.document.designMode = "On"; | |||||
hif.attachEvent("onload",window.__smartNav.update); | |||||
window.__smartNav.hif = hif; | |||||
} | |||||
} | |||||
catch (e) { window.__smartNav.hif = hif; } | |||||
window.attachEvent("onbeforeunload", window.__smartNav.saveHistory); | |||||
} | |||||
else | |||||
window.__smartNav = null; | |||||
} |
@ -1,220 +0,0 @@ | |||||
//CdnPath=http://ajax.aspnetcdn.com/ajax/4.5.1/1/TreeView.js | |||||
function TreeView_HoverNode(data, node) { | |||||
if (!data) { | |||||
return; | |||||
} | |||||
node.hoverClass = data.hoverClass; | |||||
WebForm_AppendToClassName(node, data.hoverClass); | |||||
if (__nonMSDOMBrowser) { | |||||
node = node.childNodes[node.childNodes.length - 1]; | |||||
} | |||||
else { | |||||
node = node.children[node.children.length - 1]; | |||||
} | |||||
node.hoverHyperLinkClass = data.hoverHyperLinkClass; | |||||
WebForm_AppendToClassName(node, data.hoverHyperLinkClass); | |||||
} | |||||
function TreeView_GetNodeText(node) { | |||||
var trNode = WebForm_GetParentByTagName(node, "TR"); | |||||
var outerNodes; | |||||
if (trNode.childNodes[trNode.childNodes.length - 1].getElementsByTagName) { | |||||
outerNodes = trNode.childNodes[trNode.childNodes.length - 1].getElementsByTagName("A"); | |||||
if (!outerNodes || outerNodes.length == 0) { | |||||
outerNodes = trNode.childNodes[trNode.childNodes.length - 1].getElementsByTagName("SPAN"); | |||||
} | |||||
} | |||||
var textNode = (outerNodes && outerNodes.length > 0) ? | |||||
outerNodes[0].childNodes[0] : | |||||
trNode.childNodes[trNode.childNodes.length - 1].childNodes[0]; | |||||
return (textNode && textNode.nodeValue) ? textNode.nodeValue : ""; | |||||
} | |||||
function TreeView_PopulateNode(data, index, node, selectNode, selectImageNode, lineType, text, path, databound, datapath, parentIsLast) { | |||||
if (!data) { | |||||
return; | |||||
} | |||||
var context = new Object(); | |||||
context.data = data; | |||||
context.node = node; | |||||
context.selectNode = selectNode; | |||||
context.selectImageNode = selectImageNode; | |||||
context.lineType = lineType; | |||||
context.index = index; | |||||
context.isChecked = "f"; | |||||
var tr = WebForm_GetParentByTagName(node, "TR"); | |||||
if (tr) { | |||||
var checkbox = tr.getElementsByTagName("INPUT"); | |||||
if (checkbox && (checkbox.length > 0)) { | |||||
for (var i = 0; i < checkbox.length; i++) { | |||||
if (checkbox[i].type.toLowerCase() == "checkbox") { | |||||
if (checkbox[i].checked) { | |||||
context.isChecked = "t"; | |||||
} | |||||
break; | |||||
} | |||||
} | |||||
} | |||||
} | |||||
var param = index + "|" + data.lastIndex + "|" + databound + context.isChecked + parentIsLast + "|" + | |||||
text.length + "|" + text + datapath.length + "|" + datapath + path; | |||||
TreeView_PopulateNodeDoCallBack(context, param); | |||||
} | |||||
function TreeView_ProcessNodeData(result, context) { | |||||
var treeNode = context.node; | |||||
if (result.length > 0) { | |||||
var ci = result.indexOf("|", 0); | |||||
context.data.lastIndex = result.substring(0, ci); | |||||
ci = result.indexOf("|", ci + 1); | |||||
var newExpandState = result.substring(context.data.lastIndex.length + 1, ci); | |||||
context.data.expandState.value += newExpandState; | |||||
var chunk = result.substr(ci + 1); | |||||
var newChildren, table; | |||||
if (__nonMSDOMBrowser) { | |||||
var newDiv = document.createElement("div"); | |||||
newDiv.innerHTML = chunk; | |||||
table = WebForm_GetParentByTagName(treeNode, "TABLE"); | |||||
newChildren = null; | |||||
if ((typeof(table.nextSibling) == "undefined") || (table.nextSibling == null)) { | |||||
table.parentNode.insertBefore(newDiv.firstChild, table.nextSibling); | |||||
newChildren = table.previousSibling; | |||||
} | |||||
else { | |||||
table = table.nextSibling; | |||||
table.parentNode.insertBefore(newDiv.firstChild, table); | |||||
newChildren = table.previousSibling; | |||||
} | |||||
newChildren = document.getElementById(treeNode.id + "Nodes"); | |||||
} | |||||
else { | |||||
table = WebForm_GetParentByTagName(treeNode, "TABLE"); | |||||
table.insertAdjacentHTML("afterEnd", chunk); | |||||
newChildren = document.all[treeNode.id + "Nodes"]; | |||||
} | |||||
if ((typeof(newChildren) != "undefined") && (newChildren != null)) { | |||||
TreeView_ToggleNode(context.data, context.index, treeNode, context.lineType, newChildren); | |||||
treeNode.href = document.getElementById ? | |||||
"javascript:TreeView_ToggleNode(" + context.data.name + "," + context.index + ",document.getElementById('" + treeNode.id + "'),'" + context.lineType + "',document.getElementById('" + newChildren.id + "'))" : | |||||
"javascript:TreeView_ToggleNode(" + context.data.name + "," + context.index + "," + treeNode.id + ",'" + context.lineType + "'," + newChildren.id + ")"; | |||||
if ((typeof(context.selectNode) != "undefined") && (context.selectNode != null) && context.selectNode.href && | |||||
(context.selectNode.href.indexOf("javascript:TreeView_PopulateNode", 0) == 0)) { | |||||
context.selectNode.href = treeNode.href; | |||||
} | |||||
if ((typeof(context.selectImageNode) != "undefined") && (context.selectImageNode != null) && context.selectNode.href && | |||||
(context.selectImageNode.href.indexOf("javascript:TreeView_PopulateNode", 0) == 0)) { | |||||
context.selectImageNode.href = treeNode.href; | |||||
} | |||||
} | |||||
context.data.populateLog.value += context.index + ","; | |||||
} | |||||
else { | |||||
var img = treeNode.childNodes ? treeNode.childNodes[0] : treeNode.children[0]; | |||||
if ((typeof(img) != "undefined") && (img != null)) { | |||||
var lineType = context.lineType; | |||||
if (lineType == "l") { | |||||
img.src = context.data.images[13]; | |||||
} | |||||
else if (lineType == "t") { | |||||
img.src = context.data.images[10]; | |||||
} | |||||
else if (lineType == "-") { | |||||
img.src = context.data.images[16]; | |||||
} | |||||
else { | |||||
img.src = context.data.images[3]; | |||||
} | |||||
var pe; | |||||
if (__nonMSDOMBrowser) { | |||||
pe = treeNode.parentNode; | |||||
pe.insertBefore(img, treeNode); | |||||
pe.removeChild(treeNode); | |||||
} | |||||
else { | |||||
pe = treeNode.parentElement; | |||||
treeNode.style.visibility="hidden"; | |||||
treeNode.style.display="none"; | |||||
pe.insertAdjacentElement("afterBegin", img); | |||||
} | |||||
} | |||||
} | |||||
} | |||||
function TreeView_SelectNode(data, node, nodeId) { | |||||
if (!data) { | |||||
return; | |||||
} | |||||
if ((typeof(data.selectedClass) != "undefined") && (data.selectedClass != null)) { | |||||
var id = data.selectedNodeID.value; | |||||
if (id.length > 0) { | |||||
var selectedNode = document.getElementById(id); | |||||
if ((typeof(selectedNode) != "undefined") && (selectedNode != null)) { | |||||
WebForm_RemoveClassName(selectedNode, data.selectedHyperLinkClass); | |||||
selectedNode = WebForm_GetParentByTagName(selectedNode, "TD"); | |||||
WebForm_RemoveClassName(selectedNode, data.selectedClass); | |||||
} | |||||
} | |||||
WebForm_AppendToClassName(node, data.selectedHyperLinkClass); | |||||
node = WebForm_GetParentByTagName(node, "TD"); | |||||
WebForm_AppendToClassName(node, data.selectedClass) | |||||
} | |||||
data.selectedNodeID.value = nodeId; | |||||
} | |||||
function TreeView_ToggleNode(data, index, node, lineType, children) { | |||||
if (!data) { | |||||
return; | |||||
} | |||||
var img = node.childNodes[0]; | |||||
var newExpandState; | |||||
try { | |||||
if (children.style.display == "none") { | |||||
children.style.display = "block"; | |||||
newExpandState = "e"; | |||||
if ((typeof(img) != "undefined") && (img != null)) { | |||||
if (lineType == "l") { | |||||
img.src = data.images[15]; | |||||
} | |||||
else if (lineType == "t") { | |||||
img.src = data.images[12]; | |||||
} | |||||
else if (lineType == "-") { | |||||
img.src = data.images[18]; | |||||
} | |||||
else { | |||||
img.src = data.images[5]; | |||||
} | |||||
img.alt = data.collapseToolTip.replace(/\{0\}/, TreeView_GetNodeText(node)); | |||||
} | |||||
} | |||||
else { | |||||
children.style.display = "none"; | |||||
newExpandState = "c"; | |||||
if ((typeof(img) != "undefined") && (img != null)) { | |||||
if (lineType == "l") { | |||||
img.src = data.images[14]; | |||||
} | |||||
else if (lineType == "t") { | |||||
img.src = data.images[11]; | |||||
} | |||||
else if (lineType == "-") { | |||||
img.src = data.images[17]; | |||||
} | |||||
else { | |||||
img.src = data.images[4]; | |||||
} | |||||
img.alt = data.expandToolTip.replace(/\{0\}/, TreeView_GetNodeText(node)); | |||||
} | |||||
} | |||||
} | |||||
catch(e) {} | |||||
data.expandState.value = data.expandState.value.substring(0, index) + newExpandState + data.expandState.value.slice(index + 1); | |||||
} | |||||
function TreeView_UnhoverNode(node) { | |||||
if (!node.hoverClass) { | |||||
return; | |||||
} | |||||
WebForm_RemoveClassName(node, node.hoverClass); | |||||
if (__nonMSDOMBrowser) { | |||||
node = node.childNodes[node.childNodes.length - 1]; | |||||
} | |||||
else { | |||||
node = node.children[node.children.length - 1]; | |||||
} | |||||
WebForm_RemoveClassName(node, node.hoverHyperLinkClass); | |||||
} |
@ -1,567 +0,0 @@ | |||||
//CdnPath=http://ajax.aspnetcdn.com/ajax/4.5.1/1/WebForms.js | |||||
function WebForm_PostBackOptions(eventTarget, eventArgument, validation, validationGroup, actionUrl, trackFocus, clientSubmit) { | |||||
this.eventTarget = eventTarget; | |||||
this.eventArgument = eventArgument; | |||||
this.validation = validation; | |||||
this.validationGroup = validationGroup; | |||||
this.actionUrl = actionUrl; | |||||
this.trackFocus = trackFocus; | |||||
this.clientSubmit = clientSubmit; | |||||
} | |||||
function WebForm_DoPostBackWithOptions(options) { | |||||
var validationResult = true; | |||||
if (options.validation) { | |||||
if (typeof(Page_ClientValidate) == 'function') { | |||||
validationResult = Page_ClientValidate(options.validationGroup); | |||||
} | |||||
} | |||||
if (validationResult) { | |||||
if ((typeof(options.actionUrl) != "undefined") && (options.actionUrl != null) && (options.actionUrl.length > 0)) { | |||||
theForm.action = options.actionUrl; | |||||
} | |||||
if (options.trackFocus) { | |||||
var lastFocus = theForm.elements["__LASTFOCUS"]; | |||||
if ((typeof(lastFocus) != "undefined") && (lastFocus != null)) { | |||||
if (typeof(document.activeElement) == "undefined") { | |||||
lastFocus.value = options.eventTarget; | |||||
} | |||||
else { | |||||
var active = document.activeElement; | |||||
if ((typeof(active) != "undefined") && (active != null)) { | |||||
if ((typeof(active.id) != "undefined") && (active.id != null) && (active.id.length > 0)) { | |||||
lastFocus.value = active.id; | |||||
} | |||||
else if (typeof(active.name) != "undefined") { | |||||
lastFocus.value = active.name; | |||||
} | |||||
} | |||||
} | |||||
} | |||||
} | |||||
} | |||||
if (options.clientSubmit) { | |||||
__doPostBack(options.eventTarget, options.eventArgument); | |||||
} | |||||
} | |||||
var __pendingCallbacks = new Array(); | |||||
var __synchronousCallBackIndex = -1; | |||||
function WebForm_DoCallback(eventTarget, eventArgument, eventCallback, context, errorCallback, useAsync) { | |||||
var postData = __theFormPostData + | |||||
"__CALLBACKID=" + WebForm_EncodeCallback(eventTarget) + | |||||
"&__CALLBACKPARAM=" + WebForm_EncodeCallback(eventArgument); | |||||
if (theForm["__EVENTVALIDATION"]) { | |||||
postData += "&__EVENTVALIDATION=" + WebForm_EncodeCallback(theForm["__EVENTVALIDATION"].value); | |||||
} | |||||
var xmlRequest,e; | |||||
try { | |||||
xmlRequest = new XMLHttpRequest(); | |||||
} | |||||
catch(e) { | |||||
try { | |||||
xmlRequest = new ActiveXObject("Microsoft.XMLHTTP"); | |||||
} | |||||
catch(e) { | |||||
} | |||||
} | |||||
var setRequestHeaderMethodExists = true; | |||||
try { | |||||
setRequestHeaderMethodExists = (xmlRequest && xmlRequest.setRequestHeader); | |||||
} | |||||
catch(e) {} | |||||
var callback = new Object(); | |||||
callback.eventCallback = eventCallback; | |||||
callback.context = context; | |||||
callback.errorCallback = errorCallback; | |||||
callback.async = useAsync; | |||||
var callbackIndex = WebForm_FillFirstAvailableSlot(__pendingCallbacks, callback); | |||||
if (!useAsync) { | |||||
if (__synchronousCallBackIndex != -1) { | |||||
__pendingCallbacks[__synchronousCallBackIndex] = null; | |||||
} | |||||
__synchronousCallBackIndex = callbackIndex; | |||||
} | |||||
if (setRequestHeaderMethodExists) { | |||||
xmlRequest.onreadystatechange = WebForm_CallbackComplete; | |||||
callback.xmlRequest = xmlRequest; | |||||
// e.g. http: | |||||
var action = theForm.action || document.location.pathname, fragmentIndex = action.indexOf('#'); | |||||
if (fragmentIndex !== -1) { | |||||
action = action.substr(0, fragmentIndex); | |||||
} | |||||
if (!__nonMSDOMBrowser) { | |||||
var queryIndex = action.indexOf('?'); | |||||
if (queryIndex !== -1) { | |||||
var path = action.substr(0, queryIndex); | |||||
if (path.indexOf("%") === -1) { | |||||
action = encodeURI(path) + action.substr(queryIndex); | |||||
} | |||||
} | |||||
else if (action.indexOf("%") === -1) { | |||||
action = encodeURI(action); | |||||
} | |||||
} | |||||
xmlRequest.open("POST", action, true); | |||||
xmlRequest.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=utf-8"); | |||||
xmlRequest.send(postData); | |||||
return; | |||||
} | |||||
callback.xmlRequest = new Object(); | |||||
var callbackFrameID = "__CALLBACKFRAME" + callbackIndex; | |||||
var xmlRequestFrame = document.frames[callbackFrameID]; | |||||
if (!xmlRequestFrame) { | |||||
xmlRequestFrame = document.createElement("IFRAME"); | |||||
xmlRequestFrame.width = "1"; | |||||
xmlRequestFrame.height = "1"; | |||||
xmlRequestFrame.frameBorder = "0"; | |||||
xmlRequestFrame.id = callbackFrameID; | |||||
xmlRequestFrame.name = callbackFrameID; | |||||
xmlRequestFrame.style.position = "absolute"; | |||||
xmlRequestFrame.style.top = "-100px" | |||||
xmlRequestFrame.style.left = "-100px"; | |||||
try { | |||||
if (callBackFrameUrl) { | |||||
xmlRequestFrame.src = callBackFrameUrl; | |||||
} | |||||
} | |||||
catch(e) {} | |||||
document.body.appendChild(xmlRequestFrame); | |||||
} | |||||
var interval = window.setInterval(function() { | |||||
xmlRequestFrame = document.frames[callbackFrameID]; | |||||
if (xmlRequestFrame && xmlRequestFrame.document) { | |||||
window.clearInterval(interval); | |||||
xmlRequestFrame.document.write(""); | |||||
xmlRequestFrame.document.close(); | |||||
xmlRequestFrame.document.write('<html><body><form method="post"><input type="hidden" name="__CALLBACKLOADSCRIPT" value="t"></form></body></html>'); | |||||
xmlRequestFrame.document.close(); | |||||
xmlRequestFrame.document.forms[0].action = theForm.action; | |||||
var count = __theFormPostCollection.length; | |||||
var element; | |||||
for (var i = 0; i < count; i++) { | |||||
element = __theFormPostCollection[i]; | |||||
if (element) { | |||||
var fieldElement = xmlRequestFrame.document.createElement("INPUT"); | |||||
fieldElement.type = "hidden"; | |||||
fieldElement.name = element.name; | |||||
fieldElement.value = element.value; | |||||
xmlRequestFrame.document.forms[0].appendChild(fieldElement); | |||||
} | |||||
} | |||||
var callbackIdFieldElement = xmlRequestFrame.document.createElement("INPUT"); | |||||
callbackIdFieldElement.type = "hidden"; | |||||
callbackIdFieldElement.name = "__CALLBACKID"; | |||||
callbackIdFieldElement.value = eventTarget; | |||||
xmlRequestFrame.document.forms[0].appendChild(callbackIdFieldElement); | |||||
var callbackParamFieldElement = xmlRequestFrame.document.createElement("INPUT"); | |||||
callbackParamFieldElement.type = "hidden"; | |||||
callbackParamFieldElement.name = "__CALLBACKPARAM"; | |||||
callbackParamFieldElement.value = eventArgument; | |||||
xmlRequestFrame.document.forms[0].appendChild(callbackParamFieldElement); | |||||
if (theForm["__EVENTVALIDATION"]) { | |||||
var callbackValidationFieldElement = xmlRequestFrame.document.createElement("INPUT"); | |||||
callbackValidationFieldElement.type = "hidden"; | |||||
callbackValidationFieldElement.name = "__EVENTVALIDATION"; | |||||
callbackValidationFieldElement.value = theForm["__EVENTVALIDATION"].value; | |||||
xmlRequestFrame.document.forms[0].appendChild(callbackValidationFieldElement); | |||||
} | |||||
var callbackIndexFieldElement = xmlRequestFrame.document.createElement("INPUT"); | |||||
callbackIndexFieldElement.type = "hidden"; | |||||
callbackIndexFieldElement.name = "__CALLBACKINDEX"; | |||||
callbackIndexFieldElement.value = callbackIndex; | |||||
xmlRequestFrame.document.forms[0].appendChild(callbackIndexFieldElement); | |||||
xmlRequestFrame.document.forms[0].submit(); | |||||
} | |||||
}, 10); | |||||
} | |||||
function WebForm_CallbackComplete() { | |||||
for (var i = 0; i < __pendingCallbacks.length; i++) { | |||||
callbackObject = __pendingCallbacks[i]; | |||||
if (callbackObject && callbackObject.xmlRequest && (callbackObject.xmlRequest.readyState == 4)) { | |||||
if (!__pendingCallbacks[i].async) { | |||||
__synchronousCallBackIndex = -1; | |||||
} | |||||
__pendingCallbacks[i] = null; | |||||
var callbackFrameID = "__CALLBACKFRAME" + i; | |||||
var xmlRequestFrame = document.getElementById(callbackFrameID); | |||||
if (xmlRequestFrame) { | |||||
xmlRequestFrame.parentNode.removeChild(xmlRequestFrame); | |||||
} | |||||
WebForm_ExecuteCallback(callbackObject); | |||||
} | |||||
} | |||||
} | |||||
function WebForm_ExecuteCallback(callbackObject) { | |||||
var response = callbackObject.xmlRequest.responseText; | |||||
if (response.charAt(0) == "s") { | |||||
if ((typeof(callbackObject.eventCallback) != "undefined") && (callbackObject.eventCallback != null)) { | |||||
callbackObject.eventCallback(response.substring(1), callbackObject.context); | |||||
} | |||||
} | |||||
else if (response.charAt(0) == "e") { | |||||
if ((typeof(callbackObject.errorCallback) != "undefined") && (callbackObject.errorCallback != null)) { | |||||
callbackObject.errorCallback(response.substring(1), callbackObject.context); | |||||
} | |||||
} | |||||
else { | |||||
var separatorIndex = response.indexOf("|"); | |||||
if (separatorIndex != -1) { | |||||
var validationFieldLength = parseInt(response.substring(0, separatorIndex)); | |||||
if (!isNaN(validationFieldLength)) { | |||||
var validationField = response.substring(separatorIndex + 1, separatorIndex + validationFieldLength + 1); | |||||
if (validationField != "") { | |||||
var validationFieldElement = theForm["__EVENTVALIDATION"]; | |||||
if (!validationFieldElement) { | |||||
validationFieldElement = document.createElement("INPUT"); | |||||
validationFieldElement.type = "hidden"; | |||||
validationFieldElement.name = "__EVENTVALIDATION"; | |||||
theForm.appendChild(validationFieldElement); | |||||
} | |||||
validationFieldElement.value = validationField; | |||||
} | |||||
if ((typeof(callbackObject.eventCallback) != "undefined") && (callbackObject.eventCallback != null)) { | |||||
callbackObject.eventCallback(response.substring(separatorIndex + validationFieldLength + 1), callbackObject.context); | |||||
} | |||||
} | |||||
} | |||||
} | |||||
} | |||||
function WebForm_FillFirstAvailableSlot(array, element) { | |||||
var i; | |||||
for (i = 0; i < array.length; i++) { | |||||
if (!array[i]) break; | |||||
} | |||||
array[i] = element; | |||||
return i; | |||||
} | |||||
var __nonMSDOMBrowser = (window.navigator.appName.toLowerCase().indexOf('explorer') == -1); | |||||
var __theFormPostData = ""; | |||||
var __theFormPostCollection = new Array(); | |||||
var __callbackTextTypes = /^(text|password|hidden|search|tel|url|email|number|range|color|datetime|date|month|week|time|datetime-local)$/i; | |||||
function WebForm_InitCallback() { | |||||
var formElements = theForm.elements, | |||||
count = formElements.length, | |||||
element; | |||||
for (var i = 0; i < count; i++) { | |||||
element = formElements[i]; | |||||
var tagName = element.tagName.toLowerCase(); | |||||
if (tagName == "input") { | |||||
var type = element.type; | |||||
if ((__callbackTextTypes.test(type) || ((type == "checkbox" || type == "radio") && element.checked)) | |||||
&& (element.id != "__EVENTVALIDATION")) { | |||||
WebForm_InitCallbackAddField(element.name, element.value); | |||||
} | |||||
} | |||||
else if (tagName == "select") { | |||||
var selectCount = element.options.length; | |||||
for (var j = 0; j < selectCount; j++) { | |||||
var selectChild = element.options[j]; | |||||
if (selectChild.selected == true) { | |||||
WebForm_InitCallbackAddField(element.name, element.value); | |||||
} | |||||
} | |||||
} | |||||
else if (tagName == "textarea") { | |||||
WebForm_InitCallbackAddField(element.name, element.value); | |||||
} | |||||
} | |||||
} | |||||
function WebForm_InitCallbackAddField(name, value) { | |||||
var nameValue = new Object(); | |||||
nameValue.name = name; | |||||
nameValue.value = value; | |||||
__theFormPostCollection[__theFormPostCollection.length] = nameValue; | |||||
__theFormPostData += WebForm_EncodeCallback(name) + "=" + WebForm_EncodeCallback(value) + "&"; | |||||
} | |||||
function WebForm_EncodeCallback(parameter) { | |||||
if (encodeURIComponent) { | |||||
return encodeURIComponent(parameter); | |||||
} | |||||
else { | |||||
return escape(parameter); | |||||
} | |||||
} | |||||
var __disabledControlArray = new Array(); | |||||
function WebForm_ReEnableControls() { | |||||
if (typeof(__enabledControlArray) == 'undefined') { | |||||
return false; | |||||
} | |||||
var disabledIndex = 0; | |||||
for (var i = 0; i < __enabledControlArray.length; i++) { | |||||
var c; | |||||
if (__nonMSDOMBrowser) { | |||||
c = document.getElementById(__enabledControlArray[i]); | |||||
} | |||||
else { | |||||
c = document.all[__enabledControlArray[i]]; | |||||
} | |||||
if ((typeof(c) != "undefined") && (c != null) && (c.disabled == true)) { | |||||
c.disabled = false; | |||||
__disabledControlArray[disabledIndex++] = c; | |||||
} | |||||
} | |||||
setTimeout("WebForm_ReDisableControls()", 0); | |||||
return true; | |||||
} | |||||
function WebForm_ReDisableControls() { | |||||
for (var i = 0; i < __disabledControlArray.length; i++) { | |||||
__disabledControlArray[i].disabled = true; | |||||
} | |||||
} | |||||
function WebForm_SimulateClick(element, event) { | |||||
var clickEvent; | |||||
if (element) { | |||||
if (element.click) { | |||||
element.click(); | |||||
} else { | |||||
clickEvent = document.createEvent("MouseEvents"); | |||||
clickEvent.initMouseEvent("click", true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null); | |||||
if (!element.dispatchEvent(clickEvent)) { | |||||
return true; | |||||
} | |||||
} | |||||
event.cancelBubble = true; | |||||
if (event.stopPropagation) { | |||||
event.stopPropagation(); | |||||
} | |||||
return false; | |||||
} | |||||
return true; | |||||
} | |||||
function WebForm_FireDefaultButton(event, target) { | |||||
if (event.keyCode == 13) { | |||||
var src = event.srcElement || event.target; | |||||
if (src && | |||||
((src.tagName.toLowerCase() == "input") && | |||||
(src.type.toLowerCase() == "submit" || src.type.toLowerCase() == "button")) || | |||||
((src.tagName.toLowerCase() == "a") && | |||||
(src.href != null) && (src.href != "")) || | |||||
(src.tagName.toLowerCase() == "textarea")) { | |||||
return true; | |||||
} | |||||
var defaultButton; | |||||
if (__nonMSDOMBrowser) { | |||||
defaultButton = document.getElementById(target); | |||||
} | |||||
else { | |||||
defaultButton = document.all[target]; | |||||
} | |||||
if (defaultButton) { | |||||
return WebForm_SimulateClick(defaultButton, event); | |||||
} | |||||
} | |||||
return true; | |||||
} | |||||
function WebForm_GetScrollX() { | |||||
if (__nonMSDOMBrowser) { | |||||
return window.pageXOffset; | |||||
} | |||||
else { | |||||
if (document.documentElement && document.documentElement.scrollLeft) { | |||||
return document.documentElement.scrollLeft; | |||||
} | |||||
else if (document.body) { | |||||
return document.body.scrollLeft; | |||||
} | |||||
} | |||||
return 0; | |||||
} | |||||
function WebForm_GetScrollY() { | |||||
if (__nonMSDOMBrowser) { | |||||
return window.pageYOffset; | |||||
} | |||||
else { | |||||
if (document.documentElement && document.documentElement.scrollTop) { | |||||
return document.documentElement.scrollTop; | |||||
} | |||||
else if (document.body) { | |||||
return document.body.scrollTop; | |||||
} | |||||
} | |||||
return 0; | |||||
} | |||||
function WebForm_SaveScrollPositionSubmit() { | |||||
if (__nonMSDOMBrowser) { | |||||
theForm.elements['__SCROLLPOSITIONY'].value = window.pageYOffset; | |||||
theForm.elements['__SCROLLPOSITIONX'].value = window.pageXOffset; | |||||
} | |||||
else { | |||||
theForm.__SCROLLPOSITIONX.value = WebForm_GetScrollX(); | |||||
theForm.__SCROLLPOSITIONY.value = WebForm_GetScrollY(); | |||||
} | |||||
if ((typeof(this.oldSubmit) != "undefined") && (this.oldSubmit != null)) { | |||||
return this.oldSubmit(); | |||||
} | |||||
return true; | |||||
} | |||||
function WebForm_SaveScrollPositionOnSubmit() { | |||||
theForm.__SCROLLPOSITIONX.value = WebForm_GetScrollX(); | |||||
theForm.__SCROLLPOSITIONY.value = WebForm_GetScrollY(); | |||||
if ((typeof(this.oldOnSubmit) != "undefined") && (this.oldOnSubmit != null)) { | |||||
return this.oldOnSubmit(); | |||||
} | |||||
return true; | |||||
} | |||||
function WebForm_RestoreScrollPosition() { | |||||
if (__nonMSDOMBrowser) { | |||||
window.scrollTo(theForm.elements['__SCROLLPOSITIONX'].value, theForm.elements['__SCROLLPOSITIONY'].value); | |||||
} | |||||
else { | |||||
window.scrollTo(theForm.__SCROLLPOSITIONX.value, theForm.__SCROLLPOSITIONY.value); | |||||
} | |||||
if ((typeof(theForm.oldOnLoad) != "undefined") && (theForm.oldOnLoad != null)) { | |||||
return theForm.oldOnLoad(); | |||||
} | |||||
return true; | |||||
} | |||||
function WebForm_TextBoxKeyHandler(event) { | |||||
if (event.keyCode == 13) { | |||||
var target; | |||||
if (__nonMSDOMBrowser) { | |||||
target = event.target; | |||||
} | |||||
else { | |||||
target = event.srcElement; | |||||
} | |||||
if ((typeof(target) != "undefined") && (target != null)) { | |||||
if (typeof(target.onchange) != "undefined") { | |||||
target.onchange(); | |||||
event.cancelBubble = true; | |||||
if (event.stopPropagation) event.stopPropagation(); | |||||
return false; | |||||
} | |||||
} | |||||
} | |||||
return true; | |||||
} | |||||
function WebForm_TrimString(value) { | |||||
return value.replace(/^\s+|\s+$/g, '') | |||||
} | |||||
function WebForm_AppendToClassName(element, className) { | |||||
var currentClassName = ' ' + WebForm_TrimString(element.className) + ' '; | |||||
className = WebForm_TrimString(className); | |||||
var index = currentClassName.indexOf(' ' + className + ' '); | |||||
if (index === -1) { | |||||
element.className = (element.className === '') ? className : element.className + ' ' + className; | |||||
} | |||||
} | |||||
function WebForm_RemoveClassName(element, className) { | |||||
var currentClassName = ' ' + WebForm_TrimString(element.className) + ' '; | |||||
className = WebForm_TrimString(className); | |||||
var index = currentClassName.indexOf(' ' + className + ' '); | |||||
if (index >= 0) { | |||||
element.className = WebForm_TrimString(currentClassName.substring(0, index) + ' ' + | |||||
currentClassName.substring(index + className.length + 1, currentClassName.length)); | |||||
} | |||||
} | |||||
function WebForm_GetElementById(elementId) { | |||||
if (document.getElementById) { | |||||
return document.getElementById(elementId); | |||||
} | |||||
else if (document.all) { | |||||
return document.all[elementId]; | |||||
} | |||||
else return null; | |||||
} | |||||
function WebForm_GetElementByTagName(element, tagName) { | |||||
var elements = WebForm_GetElementsByTagName(element, tagName); | |||||
if (elements && elements.length > 0) { | |||||
return elements[0]; | |||||
} | |||||
else return null; | |||||
} | |||||
function WebForm_GetElementsByTagName(element, tagName) { | |||||
if (element && tagName) { | |||||
if (element.getElementsByTagName) { | |||||
return element.getElementsByTagName(tagName); | |||||
} | |||||
if (element.all && element.all.tags) { | |||||
return element.all.tags(tagName); | |||||
} | |||||
} | |||||
return null; | |||||
} | |||||
function WebForm_GetElementDir(element) { | |||||
if (element) { | |||||
if (element.dir) { | |||||
return element.dir; | |||||
} | |||||
return WebForm_GetElementDir(element.parentNode); | |||||
} | |||||
return "ltr"; | |||||
} | |||||
function WebForm_GetElementPosition(element) { | |||||
var result = new Object(); | |||||
result.x = 0; | |||||
result.y = 0; | |||||
result.width = 0; | |||||
result.height = 0; | |||||
if (element.offsetParent) { | |||||
result.x = element.offsetLeft; | |||||
result.y = element.offsetTop; | |||||
var parent = element.offsetParent; | |||||
while (parent) { | |||||
result.x += parent.offsetLeft; | |||||
result.y += parent.offsetTop; | |||||
var parentTagName = parent.tagName.toLowerCase(); | |||||
if (parentTagName != "table" && | |||||
parentTagName != "body" && | |||||
parentTagName != "html" && | |||||
parentTagName != "div" && | |||||
parent.clientTop && | |||||
parent.clientLeft) { | |||||
result.x += parent.clientLeft; | |||||
result.y += parent.clientTop; | |||||
} | |||||
parent = parent.offsetParent; | |||||
} | |||||
} | |||||
else if (element.left && element.top) { | |||||
result.x = element.left; | |||||
result.y = element.top; | |||||
} | |||||
else { | |||||
if (element.x) { | |||||
result.x = element.x; | |||||
} | |||||
if (element.y) { | |||||
result.y = element.y; | |||||
} | |||||
} | |||||
if (element.offsetWidth && element.offsetHeight) { | |||||
result.width = element.offsetWidth; | |||||
result.height = element.offsetHeight; | |||||
} | |||||
else if (element.style && element.style.pixelWidth && element.style.pixelHeight) { | |||||
result.width = element.style.pixelWidth; | |||||
result.height = element.style.pixelHeight; | |||||
} | |||||
return result; | |||||
} | |||||
function WebForm_GetParentByTagName(element, tagName) { | |||||
var parent = element.parentNode; | |||||
var upperTagName = tagName.toUpperCase(); | |||||
while (parent && (parent.tagName.toUpperCase() != upperTagName)) { | |||||
parent = parent.parentNode ? parent.parentNode : parent.parentElement; | |||||
} | |||||
return parent; | |||||
} | |||||
function WebForm_SetElementHeight(element, height) { | |||||
if (element && element.style) { | |||||
element.style.height = height + "px"; | |||||
} | |||||
} | |||||
function WebForm_SetElementWidth(element, width) { | |||||
if (element && element.style) { | |||||
element.style.width = width + "px"; | |||||
} | |||||
} | |||||
function WebForm_SetElementX(element, x) { | |||||
if (element && element.style) { | |||||
element.style.left = x + "px"; | |||||
} | |||||
} | |||||
function WebForm_SetElementY(element, y) { | |||||
if (element && element.style) { | |||||
element.style.top = y + "px"; | |||||
} | |||||
} |
@ -1,647 +0,0 @@ | |||||
//CdnPath=http://ajax.aspnetcdn.com/ajax/4.5.1/1/WebParts.js | |||||
var __wpm = null; | |||||
function Point(x, y) { | |||||
this.x = x; | |||||
this.y = y; | |||||
} | |||||
function __wpTranslateOffset(x, y, offsetElement, relativeToElement, includeScroll) { | |||||
while ((typeof(offsetElement) != "undefined") && (offsetElement != null) && (offsetElement != relativeToElement)) { | |||||
x += offsetElement.offsetLeft; | |||||
y += offsetElement.offsetTop; | |||||
var tagName = offsetElement.tagName; | |||||
if ((tagName != "TABLE") && (tagName != "BODY")) { | |||||
x += offsetElement.clientLeft; | |||||
y += offsetElement.clientTop; | |||||
} | |||||
if (includeScroll && (tagName != "BODY")) { | |||||
x -= offsetElement.scrollLeft; | |||||
y -= offsetElement.scrollTop; | |||||
} | |||||
offsetElement = offsetElement.offsetParent; | |||||
} | |||||
return new Point(x, y); | |||||
} | |||||
function __wpGetPageEventLocation(event, includeScroll) { | |||||
if ((typeof(event) == "undefined") || (event == null)) { | |||||
event = window.event; | |||||
} | |||||
return __wpTranslateOffset(event.offsetX, event.offsetY, event.srcElement, null, includeScroll); | |||||
} | |||||
function __wpClearSelection() { | |||||
document.selection.empty(); | |||||
} | |||||
function WebPart(webPartElement, webPartTitleElement, zone, zoneIndex, allowZoneChange) { | |||||
this.webPartElement = webPartElement; | |||||
this.allowZoneChange = allowZoneChange; | |||||
this.zone = zone; | |||||
this.zoneIndex = zoneIndex; | |||||
this.title = ((typeof(webPartTitleElement) != "undefined") && (webPartTitleElement != null)) ? | |||||
webPartTitleElement.innerText : ""; | |||||
webPartElement.__webPart = this; | |||||
if ((typeof(webPartTitleElement) != "undefined") && (webPartTitleElement != null)) { | |||||
webPartTitleElement.style.cursor = "move"; | |||||
webPartTitleElement.attachEvent("onmousedown", WebPart_OnMouseDown); | |||||
webPartElement.attachEvent("ondragstart", WebPart_OnDragStart); | |||||
webPartElement.attachEvent("ondrag", WebPart_OnDrag); | |||||
webPartElement.attachEvent("ondragend", WebPart_OnDragEnd); | |||||
} | |||||
this.UpdatePosition = WebPart_UpdatePosition; | |||||
this.Dispose = WebPart_Dispose; | |||||
} | |||||
function WebPart_Dispose() { | |||||
this.webPartElement.__webPart = null | |||||
} | |||||
function WebPart_OnMouseDown() { | |||||
var currentEvent = window.event; | |||||
var draggedWebPart = WebPart_GetParentWebPartElement(currentEvent.srcElement); | |||||
if ((typeof(draggedWebPart) == "undefined") || (draggedWebPart == null)) { | |||||
return; | |||||
} | |||||
document.selection.empty(); | |||||
try { | |||||
__wpm.draggedWebPart = draggedWebPart; | |||||
__wpm.DragDrop(); | |||||
} | |||||
catch (e) { | |||||
__wpm.draggedWebPart = draggedWebPart; | |||||
window.setTimeout("__wpm.DragDrop()", 0); | |||||
} | |||||
currentEvent.returnValue = false; | |||||
currentEvent.cancelBubble = true; | |||||
} | |||||
function WebPart_OnDragStart() { | |||||
var currentEvent = window.event; | |||||
var webPartElement = currentEvent.srcElement; | |||||
if ((typeof(webPartElement.__webPart) == "undefined") || (webPartElement.__webPart == null)) { | |||||
currentEvent.returnValue = false; | |||||
currentEvent.cancelBubble = true; | |||||
return; | |||||
} | |||||
var dataObject = currentEvent.dataTransfer; | |||||
dataObject.effectAllowed = __wpm.InitiateWebPartDragDrop(webPartElement); | |||||
} | |||||
function WebPart_OnDrag() { | |||||
__wpm.ContinueWebPartDragDrop(); | |||||
} | |||||
function WebPart_OnDragEnd() { | |||||
__wpm.CompleteWebPartDragDrop(); | |||||
} | |||||
function WebPart_GetParentWebPartElement(containedElement) { | |||||
var elem = containedElement; | |||||
while ((typeof(elem.__webPart) == "undefined") || (elem.__webPart == null)) { | |||||
elem = elem.parentElement; | |||||
if ((typeof(elem) == "undefined") || (elem == null)) { | |||||
break; | |||||
} | |||||
} | |||||
return elem; | |||||
} | |||||
function WebPart_UpdatePosition() { | |||||
var location = __wpTranslateOffset(0, 0, this.webPartElement, null, false); | |||||
this.middleX = location.x + this.webPartElement.offsetWidth / 2; | |||||
this.middleY = location.y + this.webPartElement.offsetHeight / 2; | |||||
} | |||||
function Zone(zoneElement, zoneIndex, uniqueID, isVertical, allowLayoutChange, highlightColor) { | |||||
var webPartTable = null; | |||||
if (zoneElement.rows.length == 1) { | |||||
webPartTableContainer = zoneElement.rows[0].cells[0]; | |||||
} | |||||
else { | |||||
webPartTableContainer = zoneElement.rows[1].cells[0]; | |||||
} | |||||
var i; | |||||
for (i = 0; i < webPartTableContainer.childNodes.length; i++) { | |||||
var node = webPartTableContainer.childNodes[i]; | |||||
if (node.tagName == "TABLE") { | |||||
webPartTable = node; | |||||
break; | |||||
} | |||||
} | |||||
this.zoneElement = zoneElement; | |||||
this.zoneIndex = zoneIndex; | |||||
this.webParts = new Array(); | |||||
this.uniqueID = uniqueID; | |||||
this.isVertical = isVertical; | |||||
this.allowLayoutChange = allowLayoutChange; | |||||
this.allowDrop = false; | |||||
this.webPartTable = webPartTable; | |||||
this.highlightColor = highlightColor; | |||||
this.savedBorderColor = (webPartTable != null) ? webPartTable.style.borderColor : null; | |||||
this.dropCueElements = new Array(); | |||||
if (webPartTable != null) { | |||||
if (isVertical) { | |||||
for (i = 0; i < webPartTable.rows.length; i += 2) { | |||||
this.dropCueElements[i / 2] = webPartTable.rows[i].cells[0].childNodes[0]; | |||||
} | |||||
} | |||||
else { | |||||
for (i = 0; i < webPartTable.rows[0].cells.length; i += 2) { | |||||
this.dropCueElements[i / 2] = webPartTable.rows[0].cells[i].childNodes[0]; | |||||
} | |||||
} | |||||
} | |||||
this.AddWebPart = Zone_AddWebPart; | |||||
this.GetWebPartIndex = Zone_GetWebPartIndex; | |||||
this.ToggleDropCues = Zone_ToggleDropCues; | |||||
this.UpdatePosition = Zone_UpdatePosition; | |||||
this.Dispose = Zone_Dispose; | |||||
webPartTable.__zone = this; | |||||
webPartTable.attachEvent("ondragenter", Zone_OnDragEnter); | |||||
webPartTable.attachEvent("ondrop", Zone_OnDrop); | |||||
} | |||||
function Zone_Dispose() { | |||||
for (var i = 0; i < this.webParts.length; i++) { | |||||
this.webParts[i].Dispose(); | |||||
} | |||||
this.webPartTable.__zone = null; | |||||
} | |||||
function Zone_OnDragEnter() { | |||||
var handled = __wpm.ProcessWebPartDragEnter(); | |||||
var currentEvent = window.event; | |||||
if (handled) { | |||||
currentEvent.returnValue = false; | |||||
currentEvent.cancelBubble = true; | |||||
} | |||||
} | |||||
function Zone_OnDragOver() { | |||||
var handled = __wpm.ProcessWebPartDragOver(); | |||||
var currentEvent = window.event; | |||||
if (handled) { | |||||
currentEvent.returnValue = false; | |||||
currentEvent.cancelBubble = true; | |||||
} | |||||
} | |||||
function Zone_OnDrop() { | |||||
var handled = __wpm.ProcessWebPartDrop(); | |||||
var currentEvent = window.event; | |||||
if (handled) { | |||||
currentEvent.returnValue = false; | |||||
currentEvent.cancelBubble = true; | |||||
} | |||||
} | |||||
function Zone_GetParentZoneElement(containedElement) { | |||||
var elem = containedElement; | |||||
while ((typeof(elem.__zone) == "undefined") || (elem.__zone == null)) { | |||||
elem = elem.parentElement; | |||||
if ((typeof(elem) == "undefined") || (elem == null)) { | |||||
break; | |||||
} | |||||
} | |||||
return elem; | |||||
} | |||||
function Zone_AddWebPart(webPartElement, webPartTitleElement, allowZoneChange) { | |||||
var webPart = null; | |||||
var zoneIndex = this.webParts.length; | |||||
if (this.allowLayoutChange && __wpm.IsDragDropEnabled()) { | |||||
webPart = new WebPart(webPartElement, webPartTitleElement, this, zoneIndex, allowZoneChange); | |||||
} | |||||
else { | |||||
webPart = new WebPart(webPartElement, null, this, zoneIndex, allowZoneChange); | |||||
} | |||||
this.webParts[zoneIndex] = webPart; | |||||
return webPart; | |||||
} | |||||
function Zone_ToggleDropCues(show, index, ignoreOutline) { | |||||
if (ignoreOutline == false) { | |||||
this.webPartTable.style.borderColor = (show ? this.highlightColor : this.savedBorderColor); | |||||
} | |||||
if (index == -1) { | |||||
return; | |||||
} | |||||
var dropCue = this.dropCueElements[index]; | |||||
if (dropCue && dropCue.style) { | |||||
if (dropCue.style.height == "100%" && !dropCue.webPartZoneHorizontalCueResized) { | |||||
var oldParentHeight = dropCue.parentElement.clientHeight; | |||||
var realHeight = oldParentHeight - 10; | |||||
dropCue.style.height = realHeight + "px"; | |||||
var dropCueVerticalBar = dropCue.getElementsByTagName("DIV")[0]; | |||||
if (dropCueVerticalBar && dropCueVerticalBar.style) { | |||||
dropCueVerticalBar.style.height = dropCue.style.height; | |||||
var heightDiff = (dropCue.parentElement.clientHeight - oldParentHeight); | |||||
if (heightDiff) { | |||||
dropCue.style.height = (realHeight - heightDiff) + "px"; | |||||
dropCueVerticalBar.style.height = dropCue.style.height; | |||||
} | |||||
} | |||||
dropCue.webPartZoneHorizontalCueResized = true; | |||||
} | |||||
dropCue.style.visibility = (show ? "visible" : "hidden"); | |||||
} | |||||
} | |||||
function Zone_GetWebPartIndex(location) { | |||||
var x = location.x; | |||||
var y = location.y; | |||||
if ((x < this.webPartTableLeft) || (x > this.webPartTableRight) || | |||||
(y < this.webPartTableTop) || (y > this.webPartTableBottom)) { | |||||
return -1; | |||||
} | |||||
var vertical = this.isVertical; | |||||
var webParts = this.webParts; | |||||
var webPartsCount = webParts.length; | |||||
for (var i = 0; i < webPartsCount; i++) { | |||||
var webPart = webParts[i]; | |||||
if (vertical) { | |||||
if (y < webPart.middleY) { | |||||
return i; | |||||
} | |||||
} | |||||
else { | |||||
if (x < webPart.middleX) { | |||||
return i; | |||||
} | |||||
} | |||||
} | |||||
return webPartsCount; | |||||
} | |||||
function Zone_UpdatePosition() { | |||||
var topLeft = __wpTranslateOffset(0, 0, this.webPartTable, null, false); | |||||
this.webPartTableLeft = topLeft.x; | |||||
this.webPartTableTop = topLeft.y; | |||||
this.webPartTableRight = (this.webPartTable != null) ? topLeft.x + this.webPartTable.offsetWidth : topLeft.x; | |||||
this.webPartTableBottom = (this.webPartTable != null) ? topLeft.y + this.webPartTable.offsetHeight : topLeft.y; | |||||
for (var i = 0; i < this.webParts.length; i++) { | |||||
this.webParts[i].UpdatePosition(); | |||||
} | |||||
} | |||||
function WebPartDragState(webPartElement, effect) { | |||||
this.webPartElement = webPartElement; | |||||
this.dropZoneElement = null; | |||||
this.dropIndex = -1; | |||||
this.effect = effect; | |||||
this.dropped = false; | |||||
} | |||||
function WebPartMenu(menuLabelElement, menuDropDownElement, menuElement) { | |||||
this.menuLabelElement = menuLabelElement; | |||||
this.menuDropDownElement = menuDropDownElement; | |||||
this.menuElement = menuElement; | |||||
this.menuLabelElement.__menu = this; | |||||
this.menuLabelElement.attachEvent('onclick', WebPartMenu_OnClick); | |||||
this.menuLabelElement.attachEvent('onkeypress', WebPartMenu_OnKeyPress); | |||||
this.menuLabelElement.attachEvent('onmouseenter', WebPartMenu_OnMouseEnter); | |||||
this.menuLabelElement.attachEvent('onmouseleave', WebPartMenu_OnMouseLeave); | |||||
if ((typeof(this.menuDropDownElement) != "undefined") && (this.menuDropDownElement != null)) { | |||||
this.menuDropDownElement.__menu = this; | |||||
} | |||||
this.menuItemStyle = ""; | |||||
this.menuItemHoverStyle = ""; | |||||
this.popup = null; | |||||
this.hoverClassName = ""; | |||||
this.hoverColor = ""; | |||||
this.oldColor = this.menuLabelElement.style.color; | |||||
this.oldTextDecoration = this.menuLabelElement.style.textDecoration; | |||||
this.oldClassName = this.menuLabelElement.className; | |||||
this.Show = WebPartMenu_Show; | |||||
this.Hide = WebPartMenu_Hide; | |||||
this.Hover = WebPartMenu_Hover; | |||||
this.Unhover = WebPartMenu_Unhover; | |||||
this.Dispose = WebPartMenu_Dispose; | |||||
var menu = this; | |||||
this.disposeDelegate = function() { menu.Dispose(); }; | |||||
window.attachEvent('onunload', this.disposeDelegate); | |||||
} | |||||
function WebPartMenu_Dispose() { | |||||
this.menuLabelElement.__menu = null; | |||||
this.menuDropDownElement.__menu = null; | |||||
window.detachEvent('onunload', this.disposeDelegate); | |||||
} | |||||
function WebPartMenu_Show() { | |||||
if ((typeof(__wpm.menu) != "undefined") && (__wpm.menu != null)) { | |||||
__wpm.menu.Hide(); | |||||
} | |||||
var menuHTML = | |||||
"<html><head><style>" + | |||||
"a.menuItem, a.menuItem:Link { display: block; padding: 1px; text-decoration: none; " + this.itemStyle + " }" + | |||||
"a.menuItem:Hover { " + this.itemHoverStyle + " }" + | |||||
"</style><body scroll=\"no\" style=\"border: none; margin: 0; padding: 0;\" ondragstart=\"window.event.returnValue=false;\" onclick=\"popup.hide()\">" + | |||||
this.menuElement.innerHTML + | |||||
"</body></html>"; | |||||
var width = 16; | |||||
var height = 16; | |||||
this.popup = window.createPopup(); | |||||
__wpm.menu = this; | |||||
var popupDocument = this.popup.document; | |||||
popupDocument.write(menuHTML); | |||||
this.popup.show(0, 0, width, height); | |||||
var popupBody = popupDocument.body; | |||||
width = popupBody.scrollWidth; | |||||
height = popupBody.scrollHeight; | |||||
if (width < this.menuLabelElement.offsetWidth) { | |||||
width = this.menuLabelElement.offsetWidth + 16; | |||||
} | |||||
if (this.menuElement.innerHTML.indexOf("progid:DXImageTransform.Microsoft.Shadow") != -1) { | |||||
popupBody.style.paddingRight = "4px"; | |||||
} | |||||
popupBody.__wpm = __wpm; | |||||
popupBody.__wpmDeleteWarning = __wpmDeleteWarning; | |||||
popupBody.__wpmCloseProviderWarning = __wpmCloseProviderWarning; | |||||
popupBody.popup = this.popup; | |||||
this.popup.hide(); | |||||
this.popup.show(0, this.menuLabelElement.offsetHeight, width, height, this.menuLabelElement); | |||||
} | |||||
function WebPartMenu_Hide() { | |||||
if (__wpm.menu == this) { | |||||
__wpm.menu = null; | |||||
if ((typeof(this.popup) != "undefined") && (this.popup != null)) { | |||||
this.popup.hide(); | |||||
this.popup = null; | |||||
} | |||||
} | |||||
} | |||||
function WebPartMenu_Hover() { | |||||
if (this.labelHoverClassName != "") { | |||||
this.menuLabelElement.className = this.menuLabelElement.className + " " + this.labelHoverClassName; | |||||
} | |||||
if (this.labelHoverColor != "") { | |||||
this.menuLabelElement.style.color = this.labelHoverColor; | |||||
} | |||||
} | |||||
function WebPartMenu_Unhover() { | |||||
if (this.labelHoverClassName != "") { | |||||
this.menuLabelElement.style.textDecoration = this.oldTextDecoration; | |||||
this.menuLabelElement.className = this.oldClassName; | |||||
} | |||||
if (this.labelHoverColor != "") { | |||||
this.menuLabelElement.style.color = this.oldColor; | |||||
} | |||||
} | |||||
function WebPartMenu_OnClick() { | |||||
var menu = window.event.srcElement.__menu; | |||||
if ((typeof(menu) != "undefined") && (menu != null)) { | |||||
window.event.returnValue = false; | |||||
window.event.cancelBubble = true; | |||||
menu.Show(); | |||||
} | |||||
} | |||||
function WebPartMenu_OnKeyPress() { | |||||
if (window.event.keyCode == 13) { | |||||
var menu = window.event.srcElement.__menu; | |||||
if ((typeof(menu) != "undefined") && (menu != null)) { | |||||
window.event.returnValue = false; | |||||
window.event.cancelBubble = true; | |||||
menu.Show(); | |||||
} | |||||
} | |||||
} | |||||
function WebPartMenu_OnMouseEnter() { | |||||
var menu = window.event.srcElement.__menu; | |||||
if ((typeof(menu) != "undefined") && (menu != null)) { | |||||
menu.Hover(); | |||||
} | |||||
} | |||||
function WebPartMenu_OnMouseLeave() { | |||||
var menu = window.event.srcElement.__menu; | |||||
if ((typeof(menu) != "undefined") && (menu != null)) { | |||||
menu.Unhover(); | |||||
} | |||||
} | |||||
function WebPartManager() { | |||||
this.overlayContainerElement = null; | |||||
this.zones = new Array(); | |||||
this.dragState = null; | |||||
this.menu = null; | |||||
this.draggedWebPart = null; | |||||
this.AddZone = WebPartManager_AddZone; | |||||
this.IsDragDropEnabled = WebPartManager_IsDragDropEnabled; | |||||
this.DragDrop = WebPartManager_DragDrop; | |||||
this.InitiateWebPartDragDrop = WebPartManager_InitiateWebPartDragDrop; | |||||
this.CompleteWebPartDragDrop = WebPartManager_CompleteWebPartDragDrop; | |||||
this.ContinueWebPartDragDrop = WebPartManager_ContinueWebPartDragDrop; | |||||
this.ProcessWebPartDragEnter = WebPartManager_ProcessWebPartDragEnter; | |||||
this.ProcessWebPartDragOver = WebPartManager_ProcessWebPartDragOver; | |||||
this.ProcessWebPartDrop = WebPartManager_ProcessWebPartDrop; | |||||
this.ShowHelp = WebPartManager_ShowHelp; | |||||
this.ExportWebPart = WebPartManager_ExportWebPart; | |||||
this.Execute = WebPartManager_Execute; | |||||
this.SubmitPage = WebPartManager_SubmitPage; | |||||
this.UpdatePositions = WebPartManager_UpdatePositions; | |||||
window.attachEvent("onunload", WebPartManager_Dispose); | |||||
} | |||||
function WebPartManager_Dispose() { | |||||
for (var i = 0; i < __wpm.zones.length; i++) { | |||||
__wpm.zones[i].Dispose(); | |||||
} | |||||
window.detachEvent("onunload", WebPartManager_Dispose); | |||||
} | |||||
function WebPartManager_AddZone(zoneElement, uniqueID, isVertical, allowLayoutChange, highlightColor) { | |||||
var zoneIndex = this.zones.length; | |||||
var zone = new Zone(zoneElement, zoneIndex, uniqueID, isVertical, allowLayoutChange, highlightColor); | |||||
this.zones[zoneIndex] = zone; | |||||
return zone; | |||||
} | |||||
function WebPartManager_IsDragDropEnabled() { | |||||
return ((typeof(this.overlayContainerElement) != "undefined") && (this.overlayContainerElement != null)); | |||||
} | |||||
function WebPartManager_DragDrop() { | |||||
if ((typeof(this.draggedWebPart) != "undefined") && (this.draggedWebPart != null)) { | |||||
var tempWebPart = this.draggedWebPart; | |||||
this.draggedWebPart = null; | |||||
tempWebPart.dragDrop(); | |||||
window.setTimeout("__wpClearSelection()", 0); | |||||
} | |||||
} | |||||
function WebPartManager_InitiateWebPartDragDrop(webPartElement) { | |||||
var webPart = webPartElement.__webPart; | |||||
this.UpdatePositions(); | |||||
this.dragState = new WebPartDragState(webPartElement, "move"); | |||||
var location = __wpGetPageEventLocation(window.event, true); | |||||
var overlayContainerElement = this.overlayContainerElement; | |||||
overlayContainerElement.style.left = location.x - webPartElement.offsetWidth / 2; | |||||
overlayContainerElement.style.top = location.y + 4 + (webPartElement.clientTop ? webPartElement.clientTop : 0); | |||||
overlayContainerElement.style.display = "block"; | |||||
overlayContainerElement.style.width = webPartElement.offsetWidth; | |||||
overlayContainerElement.style.height = webPartElement.offsetHeight; | |||||
overlayContainerElement.appendChild(webPartElement.cloneNode(true)); | |||||
if (webPart.allowZoneChange == false) { | |||||
webPart.zone.allowDrop = true; | |||||
} | |||||
else { | |||||
for (var i = 0; i < __wpm.zones.length; i++) { | |||||
var zone = __wpm.zones[i]; | |||||
if (zone.allowLayoutChange) { | |||||
zone.allowDrop = true; | |||||
} | |||||
} | |||||
} | |||||
document.body.attachEvent("ondragover", Zone_OnDragOver); | |||||
return "move"; | |||||
} | |||||
function WebPartManager_CompleteWebPartDragDrop() { | |||||
var dragState = this.dragState; | |||||
this.dragState = null; | |||||
if ((typeof(dragState.dropZoneElement) != "undefined") && (dragState.dropZoneElement != null)) { | |||||
dragState.dropZoneElement.__zone.ToggleDropCues(false, dragState.dropIndex, false); | |||||
} | |||||
document.body.detachEvent("ondragover", Zone_OnDragOver); | |||||
for (var i = 0; i < __wpm.zones.length; i++) { | |||||
__wpm.zones[i].allowDrop = false; | |||||
} | |||||
this.overlayContainerElement.removeChild(this.overlayContainerElement.firstChild); | |||||
this.overlayContainerElement.style.display = "none"; | |||||
if ((typeof(dragState) != "undefined") && (dragState != null) && (dragState.dropped == true)) { | |||||
var currentZone = dragState.webPartElement.__webPart.zone; | |||||
var currentZoneIndex = dragState.webPartElement.__webPart.zoneIndex; | |||||
if ((currentZone != dragState.dropZoneElement.__zone) || | |||||
((currentZoneIndex != dragState.dropIndex) && | |||||
(currentZoneIndex != (dragState.dropIndex - 1)))) { | |||||
var eventTarget = dragState.dropZoneElement.__zone.uniqueID; | |||||
var eventArgument = "Drag:" + dragState.webPartElement.id + ":" + dragState.dropIndex; | |||||
this.SubmitPage(eventTarget, eventArgument); | |||||
} | |||||
} | |||||
} | |||||
function WebPartManager_ContinueWebPartDragDrop() { | |||||
var dragState = this.dragState; | |||||
if ((typeof(dragState) != "undefined") && (dragState != null)) { | |||||
var style = this.overlayContainerElement.style; | |||||
var location = __wpGetPageEventLocation(window.event, true); | |||||
style.left = location.x - dragState.webPartElement.offsetWidth / 2; | |||||
style.top = location.y + 4 + (dragState.webPartElement.clientTop ? dragState.webPartElement.clientTop : 0); | |||||
} | |||||
} | |||||
function WebPartManager_Execute(script) { | |||||
if (this.menu) { | |||||
this.menu.Hide(); | |||||
} | |||||
var scriptReference = new Function(script); | |||||
return (scriptReference() != false); | |||||
} | |||||
function WebPartManager_ProcessWebPartDragEnter() { | |||||
var dragState = __wpm.dragState; | |||||
if ((typeof(dragState) != "undefined") && (dragState != null)) { | |||||
var currentEvent = window.event; | |||||
var newDropZoneElement = Zone_GetParentZoneElement(currentEvent.srcElement); | |||||
if ((typeof(newDropZoneElement.__zone) == "undefined") || (newDropZoneElement.__zone == null) || | |||||
(newDropZoneElement.__zone.allowDrop == false)) { | |||||
newDropZoneElement = null; | |||||
} | |||||
var newDropIndex = -1; | |||||
if ((typeof(newDropZoneElement) != "undefined") && (newDropZoneElement != null)) { | |||||
newDropIndex = newDropZoneElement.__zone.GetWebPartIndex(__wpGetPageEventLocation(currentEvent, false)); | |||||
if (newDropIndex == -1) { | |||||
newDropZoneElement = null; | |||||
} | |||||
} | |||||
if (dragState.dropZoneElement != newDropZoneElement) { | |||||
if ((typeof(dragState.dropZoneElement) != "undefined") && (dragState.dropZoneElement != null)) { | |||||
dragState.dropZoneElement.__zone.ToggleDropCues(false, dragState.dropIndex, false); | |||||
} | |||||
dragState.dropZoneElement = newDropZoneElement; | |||||
dragState.dropIndex = newDropIndex; | |||||
if ((typeof(newDropZoneElement) != "undefined") && (newDropZoneElement != null)) { | |||||
newDropZoneElement.__zone.ToggleDropCues(true, newDropIndex, false); | |||||
} | |||||
} | |||||
else if (dragState.dropIndex != newDropIndex) { | |||||
if (dragState.dropIndex != -1) { | |||||
dragState.dropZoneElement.__zone.ToggleDropCues(false, dragState.dropIndex, false); | |||||
} | |||||
dragState.dropIndex = newDropIndex; | |||||
if ((typeof(newDropZoneElement) != "undefined") && (newDropZoneElement != null)) { | |||||
newDropZoneElement.__zone.ToggleDropCues(true, newDropIndex, false); | |||||
} | |||||
} | |||||
if ((typeof(dragState.dropZoneElement) != "undefined") && (dragState.dropZoneElement != null)) { | |||||
currentEvent.dataTransfer.effectAllowed = dragState.effect; | |||||
} | |||||
return true; | |||||
} | |||||
return false; | |||||
} | |||||
function WebPartManager_ProcessWebPartDragOver() { | |||||
var dragState = __wpm.dragState; | |||||
var currentEvent = window.event; | |||||
var handled = false; | |||||
if ((typeof(dragState) != "undefined") && (dragState != null) && | |||||
(typeof(dragState.dropZoneElement) != "undefined") && (dragState.dropZoneElement != null)) { | |||||
var dropZoneElement = Zone_GetParentZoneElement(currentEvent.srcElement); | |||||
if ((typeof(dropZoneElement) != "undefined") && (dropZoneElement != null) && (dropZoneElement.__zone.allowDrop == false)) { | |||||
dropZoneElement = null; | |||||
} | |||||
if (((typeof(dropZoneElement) == "undefined") || (dropZoneElement == null)) && | |||||
(typeof(dragState.dropZoneElement) != "undefined") && (dragState.dropZoneElement != null)) { | |||||
dragState.dropZoneElement.__zone.ToggleDropCues(false, __wpm.dragState.dropIndex, false); | |||||
dragState.dropZoneElement = null; | |||||
dragState.dropIndex = -1; | |||||
} | |||||
else if ((typeof(dropZoneElement) != "undefined") && (dropZoneElement != null)) { | |||||
var location = __wpGetPageEventLocation(currentEvent, false); | |||||
var newDropIndex = dropZoneElement.__zone.GetWebPartIndex(location); | |||||
if (newDropIndex == -1) { | |||||
dropZoneElement = null; | |||||
} | |||||
if (dragState.dropZoneElement != dropZoneElement) { | |||||
if ((dragState.dropIndex != -1) || (typeof(dropZoneElement) == "undefined") || (dropZoneElement == null)) { | |||||
dragState.dropZoneElement.__zone.ToggleDropCues(false, __wpm.dragState.dropIndex, false); | |||||
} | |||||
dragState.dropZoneElement = dropZoneElement; | |||||
} | |||||
else { | |||||
dragState.dropZoneElement.__zone.ToggleDropCues(false, dragState.dropIndex, true); | |||||
} | |||||
dragState.dropIndex = newDropIndex; | |||||
if ((typeof(dropZoneElement) != "undefined") && (dropZoneElement != null)) { | |||||
dropZoneElement.__zone.ToggleDropCues(true, newDropIndex, false); | |||||
} | |||||
} | |||||
handled = true; | |||||
} | |||||
if ((typeof(dragState) == "undefined") || (dragState == null) || | |||||
(typeof(dragState.dropZoneElement) == "undefined") || (dragState.dropZoneElement == null)) { | |||||
currentEvent.dataTransfer.effectAllowed = "none"; | |||||
} | |||||
return handled; | |||||
} | |||||
function WebPartManager_ProcessWebPartDrop() { | |||||
var dragState = this.dragState; | |||||
if ((typeof(dragState) != "undefined") && (dragState != null)) { | |||||
var currentEvent = window.event; | |||||
var dropZoneElement = Zone_GetParentZoneElement(currentEvent.srcElement); | |||||
if ((typeof(dropZoneElement) != "undefined") && (dropZoneElement != null) && (dropZoneElement.__zone.allowDrop == false)) { | |||||
dropZoneElement = null; | |||||
} | |||||
if ((typeof(dropZoneElement) != "undefined") && (dropZoneElement != null) && (dragState.dropZoneElement == dropZoneElement)) { | |||||
dragState.dropped = true; | |||||
} | |||||
return true; | |||||
} | |||||
return false; | |||||
} | |||||
function WebPartManager_ShowHelp(helpUrl, helpMode) { | |||||
if ((typeof(this.menu) != "undefined") && (this.menu != null)) { | |||||
this.menu.Hide(); | |||||
} | |||||
if (helpMode == 0 || helpMode == 1) { | |||||
if (helpMode == 0) { | |||||
var dialogInfo = "edge: Sunken; center: yes; help: no; resizable: yes; status: no"; | |||||
window.showModalDialog(helpUrl, null, dialogInfo); | |||||
} | |||||
else { | |||||
window.open(helpUrl, null, "scrollbars=yes,resizable=yes,status=no,toolbar=no,menubar=no,location=no"); | |||||
} | |||||
} | |||||
else if (helpMode == 2) { | |||||
window.location = helpUrl; | |||||
} | |||||
} | |||||
function WebPartManager_ExportWebPart(exportUrl, warn, confirmOnly) { | |||||
if (warn == true && __wpmExportWarning.length > 0 && this.personalizationScopeShared != true) { | |||||
if (confirm(__wpmExportWarning) == false) { | |||||
return false; | |||||
} | |||||
} | |||||
if (confirmOnly == false) { | |||||
window.location = exportUrl; | |||||
} | |||||
return true; | |||||
} | |||||
function WebPartManager_UpdatePositions() { | |||||
for (var i = 0; i < this.zones.length; i++) { | |||||
this.zones[i].UpdatePosition(); | |||||
} | |||||
} | |||||
function WebPartManager_SubmitPage(eventTarget, eventArgument) { | |||||
if ((typeof(this.menu) != "undefined") && (this.menu != null)) { | |||||
this.menu.Hide(); | |||||
} | |||||
__doPostBack(eventTarget, eventArgument); | |||||
} |
@ -1,684 +0,0 @@ | |||||
//CdnPath=http://ajax.aspnetcdn.com/ajax/4.5.1/1/WebUIValidation.js | |||||
var Page_ValidationVer = "125"; | |||||
var Page_IsValid = true; | |||||
var Page_BlockSubmit = false; | |||||
var Page_InvalidControlToBeFocused = null; | |||||
var Page_TextTypes = /^(text|password|file|search|tel|url|email|number|range|color|datetime|date|month|week|time|datetime-local)$/i; | |||||
function ValidatorUpdateDisplay(val) { | |||||
if (typeof(val.display) == "string") { | |||||
if (val.display == "None") { | |||||
return; | |||||
} | |||||
if (val.display == "Dynamic") { | |||||
val.style.display = val.isvalid ? "none" : "inline"; | |||||
return; | |||||
} | |||||
} | |||||
if ((navigator.userAgent.indexOf("Mac") > -1) && | |||||
(navigator.userAgent.indexOf("MSIE") > -1)) { | |||||
val.style.display = "inline"; | |||||
} | |||||
val.style.visibility = val.isvalid ? "hidden" : "visible"; | |||||
} | |||||
function ValidatorUpdateIsValid() { | |||||
Page_IsValid = AllValidatorsValid(Page_Validators); | |||||
} | |||||
function AllValidatorsValid(validators) { | |||||
if ((typeof(validators) != "undefined") && (validators != null)) { | |||||
var i; | |||||
for (i = 0; i < validators.length; i++) { | |||||
if (!validators[i].isvalid) { | |||||
return false; | |||||
} | |||||
} | |||||
} | |||||
return true; | |||||
} | |||||
function ValidatorHookupControlID(controlID, val) { | |||||
if (typeof(controlID) != "string") { | |||||
return; | |||||
} | |||||
var ctrl = document.getElementById(controlID); | |||||
if ((typeof(ctrl) != "undefined") && (ctrl != null)) { | |||||
ValidatorHookupControl(ctrl, val); | |||||
} | |||||
else { | |||||
val.isvalid = true; | |||||
val.enabled = false; | |||||
} | |||||
} | |||||
function ValidatorHookupControl(control, val) { | |||||
if (typeof(control.tagName) != "string") { | |||||
return; | |||||
} | |||||
if (control.tagName != "INPUT" && control.tagName != "TEXTAREA" && control.tagName != "SELECT") { | |||||
var i; | |||||
for (i = 0; i < control.childNodes.length; i++) { | |||||
ValidatorHookupControl(control.childNodes[i], val); | |||||
} | |||||
return; | |||||
} | |||||
else { | |||||
if (typeof(control.Validators) == "undefined") { | |||||
control.Validators = new Array; | |||||
var eventType; | |||||
if (control.type == "radio") { | |||||
eventType = "onclick"; | |||||
} else { | |||||
eventType = "onchange"; | |||||
if (typeof(val.focusOnError) == "string" && val.focusOnError == "t") { | |||||
ValidatorHookupEvent(control, "onblur", "ValidatedControlOnBlur(event); "); | |||||
} | |||||
} | |||||
ValidatorHookupEvent(control, eventType, "ValidatorOnChange(event); "); | |||||
if (Page_TextTypes.test(control.type)) { | |||||
ValidatorHookupEvent(control, "onkeypress", | |||||
"event = event || window.event; if (!ValidatedTextBoxOnKeyPress(event)) { event.cancelBubble = true; if (event.stopPropagation) event.stopPropagation(); return false; } "); | |||||
} | |||||
} | |||||
control.Validators[control.Validators.length] = val; | |||||
} | |||||
} | |||||
function ValidatorHookupEvent(control, eventType, functionPrefix) { | |||||
var ev = control[eventType]; | |||||
if (typeof(ev) == "function") { | |||||
ev = ev.toString(); | |||||
ev = ev.substring(ev.indexOf("{") + 1, ev.lastIndexOf("}")); | |||||
} | |||||
else { | |||||
ev = ""; | |||||
} | |||||
control[eventType] = new Function("event", functionPrefix + " " + ev); | |||||
} | |||||
function ValidatorGetValue(id) { | |||||
var control; | |||||
control = document.getElementById(id); | |||||
if (typeof(control.value) == "string") { | |||||
return control.value; | |||||
} | |||||
return ValidatorGetValueRecursive(control); | |||||
} | |||||
function ValidatorGetValueRecursive(control) | |||||
{ | |||||
if (typeof(control.value) == "string" && (control.type != "radio" || control.checked == true)) { | |||||
return control.value; | |||||
} | |||||
var i, val; | |||||
for (i = 0; i<control.childNodes.length; i++) { | |||||
val = ValidatorGetValueRecursive(control.childNodes[i]); | |||||
if (val != "") return val; | |||||
} | |||||
return ""; | |||||
} | |||||
function Page_ClientValidate(validationGroup) { | |||||
Page_InvalidControlToBeFocused = null; | |||||
if (typeof(Page_Validators) == "undefined") { | |||||
return true; | |||||
} | |||||
var i; | |||||
for (i = 0; i < Page_Validators.length; i++) { | |||||
ValidatorValidate(Page_Validators[i], validationGroup, null); | |||||
} | |||||
ValidatorUpdateIsValid(); | |||||
ValidationSummaryOnSubmit(validationGroup); | |||||
Page_BlockSubmit = !Page_IsValid; | |||||
return Page_IsValid; | |||||
} | |||||
function ValidatorCommonOnSubmit() { | |||||
Page_InvalidControlToBeFocused = null; | |||||
var result = !Page_BlockSubmit; | |||||
if ((typeof(window.event) != "undefined") && (window.event != null)) { | |||||
window.event.returnValue = result; | |||||
} | |||||
Page_BlockSubmit = false; | |||||
return result; | |||||
} | |||||
function ValidatorEnable(val, enable) { | |||||
val.enabled = (enable != false); | |||||
ValidatorValidate(val); | |||||
ValidatorUpdateIsValid(); | |||||
} | |||||
function ValidatorOnChange(event) { | |||||
event = event || window.event; | |||||
Page_InvalidControlToBeFocused = null; | |||||
var targetedControl; | |||||
if ((typeof(event.srcElement) != "undefined") && (event.srcElement != null)) { | |||||
targetedControl = event.srcElement; | |||||
} | |||||
else { | |||||
targetedControl = event.target; | |||||
} | |||||
var vals; | |||||
if (typeof(targetedControl.Validators) != "undefined") { | |||||
vals = targetedControl.Validators; | |||||
} | |||||
else { | |||||
if (targetedControl.tagName.toLowerCase() == "label") { | |||||
targetedControl = document.getElementById(targetedControl.htmlFor); | |||||
vals = targetedControl.Validators; | |||||
} | |||||
} | |||||
if (vals) { | |||||
for (var i = 0; i < vals.length; i++) { | |||||
ValidatorValidate(vals[i], null, event); | |||||
} | |||||
} | |||||
ValidatorUpdateIsValid(); | |||||
} | |||||
function ValidatedTextBoxOnKeyPress(event) { | |||||
event = event || window.event; | |||||
if (event.keyCode == 13) { | |||||
ValidatorOnChange(event); | |||||
var vals; | |||||
if ((typeof(event.srcElement) != "undefined") && (event.srcElement != null)) { | |||||
vals = event.srcElement.Validators; | |||||
} | |||||
else { | |||||
vals = event.target.Validators; | |||||
} | |||||
return AllValidatorsValid(vals); | |||||
} | |||||
return true; | |||||
} | |||||
function ValidatedControlOnBlur(event) { | |||||
event = event || window.event; | |||||
var control; | |||||
if ((typeof(event.srcElement) != "undefined") && (event.srcElement != null)) { | |||||
control = event.srcElement; | |||||
} | |||||
else { | |||||
control = event.target; | |||||
} | |||||
if ((typeof(control) != "undefined") && (control != null) && (Page_InvalidControlToBeFocused == control)) { | |||||
control.focus(); | |||||
Page_InvalidControlToBeFocused = null; | |||||
} | |||||
} | |||||
function ValidatorValidate(val, validationGroup, event) { | |||||
val.isvalid = true; | |||||
if ((typeof(val.enabled) == "undefined" || val.enabled != false) && IsValidationGroupMatch(val, validationGroup)) { | |||||
if (typeof(val.evaluationfunction) == "function") { | |||||
val.isvalid = val.evaluationfunction(val); | |||||
if (!val.isvalid && Page_InvalidControlToBeFocused == null && | |||||
typeof(val.focusOnError) == "string" && val.focusOnError == "t") { | |||||
ValidatorSetFocus(val, event); | |||||
} | |||||
} | |||||
} | |||||
ValidatorUpdateDisplay(val); | |||||
} | |||||
function ValidatorSetFocus(val, event) { | |||||
var ctrl; | |||||
if (typeof(val.controlhookup) == "string") { | |||||
var eventCtrl; | |||||
if ((typeof(event) != "undefined") && (event != null)) { | |||||
if ((typeof(event.srcElement) != "undefined") && (event.srcElement != null)) { | |||||
eventCtrl = event.srcElement; | |||||
} | |||||
else { | |||||
eventCtrl = event.target; | |||||
} | |||||
} | |||||
if ((typeof(eventCtrl) != "undefined") && (eventCtrl != null) && | |||||
(typeof(eventCtrl.id) == "string") && | |||||
(eventCtrl.id == val.controlhookup)) { | |||||
ctrl = eventCtrl; | |||||
} | |||||
} | |||||
if ((typeof(ctrl) == "undefined") || (ctrl == null)) { | |||||
ctrl = document.getElementById(val.controltovalidate); | |||||
} | |||||
if ((typeof(ctrl) != "undefined") && (ctrl != null) && | |||||
(ctrl.tagName.toLowerCase() != "table" || (typeof(event) == "undefined") || (event == null)) && | |||||
((ctrl.tagName.toLowerCase() != "input") || (ctrl.type.toLowerCase() != "hidden")) && | |||||
(typeof(ctrl.disabled) == "undefined" || ctrl.disabled == null || ctrl.disabled == false) && | |||||
(typeof(ctrl.visible) == "undefined" || ctrl.visible == null || ctrl.visible != false) && | |||||
(IsInVisibleContainer(ctrl))) { | |||||
if ((ctrl.tagName.toLowerCase() == "table" && (typeof(__nonMSDOMBrowser) == "undefined" || __nonMSDOMBrowser)) || | |||||
(ctrl.tagName.toLowerCase() == "span")) { | |||||
var inputElements = ctrl.getElementsByTagName("input"); | |||||
var lastInputElement = inputElements[inputElements.length -1]; | |||||
if (lastInputElement != null) { | |||||
ctrl = lastInputElement; | |||||
} | |||||
} | |||||
if (typeof(ctrl.focus) != "undefined" && ctrl.focus != null) { | |||||
ctrl.focus(); | |||||
Page_InvalidControlToBeFocused = ctrl; | |||||
} | |||||
} | |||||
} | |||||
function IsInVisibleContainer(ctrl) { | |||||
if (typeof(ctrl.style) != "undefined" && | |||||
( ( typeof(ctrl.style.display) != "undefined" && | |||||
ctrl.style.display == "none") || | |||||
( typeof(ctrl.style.visibility) != "undefined" && | |||||
ctrl.style.visibility == "hidden") ) ) { | |||||
return false; | |||||
} | |||||
else if (typeof(ctrl.parentNode) != "undefined" && | |||||
ctrl.parentNode != null && | |||||
ctrl.parentNode != ctrl) { | |||||
return IsInVisibleContainer(ctrl.parentNode); | |||||
} | |||||
return true; | |||||
} | |||||
function IsValidationGroupMatch(control, validationGroup) { | |||||
if ((typeof(validationGroup) == "undefined") || (validationGroup == null)) { | |||||
return true; | |||||
} | |||||
var controlGroup = ""; | |||||
if (typeof(control.validationGroup) == "string") { | |||||
controlGroup = control.validationGroup; | |||||
} | |||||
return (controlGroup == validationGroup); | |||||
} | |||||
function ValidatorOnLoad() { | |||||
if (typeof(Page_Validators) == "undefined") | |||||
return; | |||||
var i, val; | |||||
for (i = 0; i < Page_Validators.length; i++) { | |||||
val = Page_Validators[i]; | |||||
if (typeof(val.evaluationfunction) == "string") { | |||||
eval("val.evaluationfunction = " + val.evaluationfunction + ";"); | |||||
} | |||||
if (typeof(val.isvalid) == "string") { | |||||
if (val.isvalid == "False") { | |||||
val.isvalid = false; | |||||
Page_IsValid = false; | |||||
} | |||||
else { | |||||
val.isvalid = true; | |||||
} | |||||
} else { | |||||
val.isvalid = true; | |||||
} | |||||
if (typeof(val.enabled) == "string") { | |||||
val.enabled = (val.enabled != "False"); | |||||
} | |||||
if (typeof(val.controltovalidate) == "string") { | |||||
ValidatorHookupControlID(val.controltovalidate, val); | |||||
} | |||||
if (typeof(val.controlhookup) == "string") { | |||||
ValidatorHookupControlID(val.controlhookup, val); | |||||
} | |||||
} | |||||
Page_ValidationActive = true; | |||||
} | |||||
function ValidatorConvert(op, dataType, val) { | |||||
function GetFullYear(year) { | |||||
var twoDigitCutoffYear = val.cutoffyear % 100; | |||||
var cutoffYearCentury = val.cutoffyear - twoDigitCutoffYear; | |||||
return ((year > twoDigitCutoffYear) ? (cutoffYearCentury - 100 + year) : (cutoffYearCentury + year)); | |||||
} | |||||
var num, cleanInput, m, exp; | |||||
if (dataType == "Integer") { | |||||
exp = /^\s*[-\+]?\d+\s*$/; | |||||
if (op.match(exp) == null) | |||||
return null; | |||||
num = parseInt(op, 10); | |||||
return (isNaN(num) ? null : num); | |||||
} | |||||
else if(dataType == "Double") { | |||||
exp = new RegExp("^\\s*([-\\+])?(\\d*)\\" + val.decimalchar + "?(\\d*)\\s*$"); | |||||
m = op.match(exp); | |||||
if (m == null) | |||||
return null; | |||||
if (m[2].length == 0 && m[3].length == 0) | |||||
return null; | |||||
cleanInput = (m[1] != null ? m[1] : "") + (m[2].length>0 ? m[2] : "0") + (m[3].length>0 ? "." + m[3] : ""); | |||||
num = parseFloat(cleanInput); | |||||
return (isNaN(num) ? null : num); | |||||
} | |||||
else if (dataType == "Currency") { | |||||
var hasDigits = (val.digits > 0); | |||||
var beginGroupSize, subsequentGroupSize; | |||||
var groupSizeNum = parseInt(val.groupsize, 10); | |||||
if (!isNaN(groupSizeNum) && groupSizeNum > 0) { | |||||
beginGroupSize = "{1," + groupSizeNum + "}"; | |||||
subsequentGroupSize = "{" + groupSizeNum + "}"; | |||||
} | |||||
else { | |||||
beginGroupSize = subsequentGroupSize = "+"; | |||||
} | |||||
exp = new RegExp("^\\s*([-\\+])?((\\d" + beginGroupSize + "(\\" + val.groupchar + "\\d" + subsequentGroupSize + ")+)|\\d*)" | |||||
+ (hasDigits ? "\\" + val.decimalchar + "?(\\d{0," + val.digits + "})" : "") | |||||
+ "\\s*$"); | |||||
m = op.match(exp); | |||||
if (m == null) | |||||
return null; | |||||
if (m[2].length == 0 && hasDigits && m[5].length == 0) | |||||
return null; | |||||
cleanInput = (m[1] != null ? m[1] : "") + m[2].replace(new RegExp("(\\" + val.groupchar + ")", "g"), "") + ((hasDigits && m[5].length > 0) ? "." + m[5] : ""); | |||||
num = parseFloat(cleanInput); | |||||
return (isNaN(num) ? null : num); | |||||
} | |||||
else if (dataType == "Date") { | |||||
var yearFirstExp = new RegExp("^\\s*((\\d{4})|(\\d{2}))([-/]|\\. ?)(\\d{1,2})\\4(\\d{1,2})\\.?\\s*$"); | |||||
m = op.match(yearFirstExp); | |||||
var day, month, year; | |||||
if (m != null && (((typeof(m[2]) != "undefined") && (m[2].length == 4)) || val.dateorder == "ymd")) { | |||||
day = m[6]; | |||||
month = m[5]; | |||||
year = (m[2].length == 4) ? m[2] : GetFullYear(parseInt(m[3], 10)); | |||||
} | |||||
else { | |||||
if (val.dateorder == "ymd"){ | |||||
return null; | |||||
} | |||||
var yearLastExp = new RegExp("^\\s*(\\d{1,2})([-/]|\\. ?)(\\d{1,2})(?:\\s|\\2)((\\d{4})|(\\d{2}))(?:\\s\u0433\\.|\\.)?\\s*$"); | |||||
m = op.match(yearLastExp); | |||||
if (m == null) { | |||||
return null; | |||||
} | |||||
if (val.dateorder == "mdy") { | |||||
day = m[3]; | |||||
month = m[1]; | |||||
} | |||||
else { | |||||
day = m[1]; | |||||
month = m[3]; | |||||
} | |||||
year = ((typeof(m[5]) != "undefined") && (m[5].length == 4)) ? m[5] : GetFullYear(parseInt(m[6], 10)); | |||||
} | |||||
month -= 1; | |||||
var date = new Date(year, month, day); | |||||
if (year < 100) { | |||||
date.setFullYear(year); | |||||
} | |||||
return (typeof(date) == "object" && year == date.getFullYear() && month == date.getMonth() && day == date.getDate()) ? date.valueOf() : null; | |||||
} | |||||
else { | |||||
return op.toString(); | |||||
} | |||||
} | |||||
function ValidatorCompare(operand1, operand2, operator, val) { | |||||
var dataType = val.type; | |||||
var op1, op2; | |||||
if ((op1 = ValidatorConvert(operand1, dataType, val)) == null) | |||||
return false; | |||||
if (operator == "DataTypeCheck") | |||||
return true; | |||||
if ((op2 = ValidatorConvert(operand2, dataType, val)) == null) | |||||
return true; | |||||
switch (operator) { | |||||
case "NotEqual": | |||||
return (op1 != op2); | |||||
case "GreaterThan": | |||||
return (op1 > op2); | |||||
case "GreaterThanEqual": | |||||
return (op1 >= op2); | |||||
case "LessThan": | |||||
return (op1 < op2); | |||||
case "LessThanEqual": | |||||
return (op1 <= op2); | |||||
default: | |||||
return (op1 == op2); | |||||
} | |||||
} | |||||
function CompareValidatorEvaluateIsValid(val) { | |||||
var value = ValidatorGetValue(val.controltovalidate); | |||||
if (ValidatorTrim(value).length == 0) | |||||
return true; | |||||
var compareTo = ""; | |||||
if ((typeof(val.controltocompare) != "string") || | |||||
(typeof(document.getElementById(val.controltocompare)) == "undefined") || | |||||
(null == document.getElementById(val.controltocompare))) { | |||||
if (typeof(val.valuetocompare) == "string") { | |||||
compareTo = val.valuetocompare; | |||||
} | |||||
} | |||||
else { | |||||
compareTo = ValidatorGetValue(val.controltocompare); | |||||
} | |||||
var operator = "Equal"; | |||||
if (typeof(val.operator) == "string") { | |||||
operator = val.operator; | |||||
} | |||||
return ValidatorCompare(value, compareTo, operator, val); | |||||
} | |||||
function CustomValidatorEvaluateIsValid(val) { | |||||
var value = ""; | |||||
if (typeof(val.controltovalidate) == "string") { | |||||
value = ValidatorGetValue(val.controltovalidate); | |||||
if ((ValidatorTrim(value).length == 0) && | |||||
((typeof(val.validateemptytext) != "string") || (val.validateemptytext != "true"))) { | |||||
return true; | |||||
} | |||||
} | |||||
var args = { Value:value, IsValid:true }; | |||||
if (typeof(val.clientvalidationfunction) == "string") { | |||||
eval(val.clientvalidationfunction + "(val, args) ;"); | |||||
} | |||||
return args.IsValid; | |||||
} | |||||
function RegularExpressionValidatorEvaluateIsValid(val) { | |||||
var value = ValidatorGetValue(val.controltovalidate); | |||||
if (ValidatorTrim(value).length == 0) | |||||
return true; | |||||
var rx = new RegExp(val.validationexpression); | |||||
var matches = rx.exec(value); | |||||
return (matches != null && value == matches[0]); | |||||
} | |||||
function ValidatorTrim(s) { | |||||
var m = s.match(/^\s*(\S+(\s+\S+)*)\s*$/); | |||||
return (m == null) ? "" : m[1]; | |||||
} | |||||
function RequiredFieldValidatorEvaluateIsValid(val) { | |||||
return (ValidatorTrim(ValidatorGetValue(val.controltovalidate)) != ValidatorTrim(val.initialvalue)) | |||||
} | |||||
function RangeValidatorEvaluateIsValid(val) { | |||||
var value = ValidatorGetValue(val.controltovalidate); | |||||
if (ValidatorTrim(value).length == 0) | |||||
return true; | |||||
return (ValidatorCompare(value, val.minimumvalue, "GreaterThanEqual", val) && | |||||
ValidatorCompare(value, val.maximumvalue, "LessThanEqual", val)); | |||||
} | |||||
function ValidationSummaryOnSubmit(validationGroup) { | |||||
if (typeof(Page_ValidationSummaries) == "undefined") | |||||
return; | |||||
var summary, sums, s; | |||||
var headerSep, first, pre, post, end; | |||||
for (sums = 0; sums < Page_ValidationSummaries.length; sums++) { | |||||
summary = Page_ValidationSummaries[sums]; | |||||
if (!summary) continue; | |||||
summary.style.display = "none"; | |||||
if (!Page_IsValid && IsValidationGroupMatch(summary, validationGroup)) { | |||||
var i; | |||||
if (summary.showsummary != "False") { | |||||
summary.style.display = ""; | |||||
if (typeof(summary.displaymode) != "string") { | |||||
summary.displaymode = "BulletList"; | |||||
} | |||||
switch (summary.displaymode) { | |||||
case "List": | |||||
headerSep = "<br>"; | |||||
first = ""; | |||||
pre = ""; | |||||
post = "<br>"; | |||||
end = ""; | |||||
break; | |||||
case "BulletList": | |||||
default: | |||||
headerSep = ""; | |||||
first = "<ul>"; | |||||
pre = "<li>"; | |||||
post = "</li>"; | |||||
end = "</ul>"; | |||||
break; | |||||
case "SingleParagraph": | |||||
headerSep = " "; | |||||
first = ""; | |||||
pre = ""; | |||||
post = " "; | |||||
end = "<br>"; | |||||
break; | |||||
} | |||||
s = ""; | |||||
if (typeof(summary.headertext) == "string") { | |||||
s += summary.headertext + headerSep; | |||||
} | |||||
s += first; | |||||
for (i=0; i<Page_Validators.length; i++) { | |||||
if (!Page_Validators[i].isvalid && typeof(Page_Validators[i].errormessage) == "string") { | |||||
s += pre + Page_Validators[i].errormessage + post; | |||||
} | |||||
} | |||||
s += end; | |||||
summary.innerHTML = s; | |||||
window.scrollTo(0,0); | |||||
} | |||||
if (summary.showmessagebox == "True") { | |||||
s = ""; | |||||
if (typeof(summary.headertext) == "string") { | |||||
s += summary.headertext + "\r\n"; | |||||
} | |||||
var lastValIndex = Page_Validators.length - 1; | |||||
for (i=0; i<=lastValIndex; i++) { | |||||
if (!Page_Validators[i].isvalid && typeof(Page_Validators[i].errormessage) == "string") { | |||||
switch (summary.displaymode) { | |||||
case "List": | |||||
s += Page_Validators[i].errormessage; | |||||
if (i < lastValIndex) { | |||||
s += "\r\n"; | |||||
} | |||||
break; | |||||
case "BulletList": | |||||
default: | |||||
s += "- " + Page_Validators[i].errormessage; | |||||
if (i < lastValIndex) { | |||||
s += "\r\n"; | |||||
} | |||||
break; | |||||
case "SingleParagraph": | |||||
s += Page_Validators[i].errormessage + " "; | |||||
break; | |||||
} | |||||
} | |||||
} | |||||
alert(s); | |||||
} | |||||
} | |||||
} | |||||
} | |||||
if (window.jQuery) { | |||||
(function ($) { | |||||
var dataValidationAttribute = "data-val", | |||||
dataValidationSummaryAttribute = "data-valsummary", | |||||
normalizedAttributes = { validationgroup: "validationGroup", focusonerror: "focusOnError" }; | |||||
function getAttributesWithPrefix(element, prefix) { | |||||
var i, | |||||
attribute, | |||||
list = {}, | |||||
attributes = element.attributes, | |||||
length = attributes.length, | |||||
prefixLength = prefix.length; | |||||
prefix = prefix.toLowerCase(); | |||||
for (i = 0; i < length; i++) { | |||||
attribute = attributes[i]; | |||||
if (attribute.specified && attribute.name.substr(0, prefixLength).toLowerCase() === prefix) { | |||||
list[attribute.name.substr(prefixLength)] = attribute.value; | |||||
} | |||||
} | |||||
return list; | |||||
} | |||||
function normalizeKey(key) { | |||||
key = key.toLowerCase(); | |||||
return normalizedAttributes[key] === undefined ? key : normalizedAttributes[key]; | |||||
} | |||||
function addValidationExpando(element) { | |||||
var attributes = getAttributesWithPrefix(element, dataValidationAttribute + "-"); | |||||
$.each(attributes, function (key, value) { | |||||
element[normalizeKey(key)] = value; | |||||
}); | |||||
} | |||||
function dispose(element) { | |||||
var index = $.inArray(element, Page_Validators); | |||||
if (index >= 0) { | |||||
Page_Validators.splice(index, 1); | |||||
} | |||||
} | |||||
function addNormalizedAttribute(name, normalizedName) { | |||||
normalizedAttributes[name.toLowerCase()] = normalizedName; | |||||
} | |||||
function parseSpecificAttribute(selector, attribute, validatorsArray) { | |||||
return $(selector).find("[" + attribute + "='true']").each(function (index, element) { | |||||
addValidationExpando(element); | |||||
element.dispose = function () { dispose(element); element.dispose = null; }; | |||||
if ($.inArray(element, validatorsArray) === -1) { | |||||
validatorsArray.push(element); | |||||
} | |||||
}).length; | |||||
} | |||||
function parse(selector) { | |||||
var length = parseSpecificAttribute(selector, dataValidationAttribute, Page_Validators); | |||||
length += parseSpecificAttribute(selector, dataValidationSummaryAttribute, Page_ValidationSummaries); | |||||
return length; | |||||
} | |||||
function loadValidators() { | |||||
if (typeof (ValidatorOnLoad) === "function") { | |||||
ValidatorOnLoad(); | |||||
} | |||||
if (typeof (ValidatorOnSubmit) === "undefined") { | |||||
window.ValidatorOnSubmit = function () { | |||||
return Page_ValidationActive ? ValidatorCommonOnSubmit() : true; | |||||
}; | |||||
} | |||||
} | |||||
function registerUpdatePanel() { | |||||
if (window.Sys && Sys.WebForms && Sys.WebForms.PageRequestManager) { | |||||
var prm = Sys.WebForms.PageRequestManager.getInstance(), | |||||
postBackElement, endRequestHandler; | |||||
if (prm.get_isInAsyncPostBack()) { | |||||
endRequestHandler = function (sender, args) { | |||||
if (parse(document)) { | |||||
loadValidators(); | |||||
} | |||||
prm.remove_endRequest(endRequestHandler); | |||||
endRequestHandler = null; | |||||
}; | |||||
prm.add_endRequest(endRequestHandler); | |||||
} | |||||
prm.add_beginRequest(function (sender, args) { | |||||
postBackElement = args.get_postBackElement(); | |||||
}); | |||||
prm.add_pageLoaded(function (sender, args) { | |||||
var i, panels, valFound = 0; | |||||
if (typeof (postBackElement) === "undefined") { | |||||
return; | |||||
} | |||||
panels = args.get_panelsUpdated(); | |||||
for (i = 0; i < panels.length; i++) { | |||||
valFound += parse(panels[i]); | |||||
} | |||||
panels = args.get_panelsCreated(); | |||||
for (i = 0; i < panels.length; i++) { | |||||
valFound += parse(panels[i]); | |||||
} | |||||
if (valFound) { | |||||
loadValidators(); | |||||
} | |||||
}); | |||||
} | |||||
} | |||||
$(function () { | |||||
if (typeof (Page_Validators) === "undefined") { | |||||
window.Page_Validators = []; | |||||
} | |||||
if (typeof (Page_ValidationSummaries) === "undefined") { | |||||
window.Page_ValidationSummaries = []; | |||||
} | |||||
if (typeof (Page_ValidationActive) === "undefined") { | |||||
window.Page_ValidationActive = false; | |||||
} | |||||
$.WebFormValidator = { | |||||
addNormalizedAttribute: addNormalizedAttribute, | |||||
parse: parse | |||||
}; | |||||
if (parse(document)) { | |||||
loadValidators(); | |||||
} | |||||
registerUpdatePanel(); | |||||
}); | |||||
} (jQuery)); | |||||
} |
@ -1,340 +0,0 @@ | |||||
/* NUGET: BEGIN LICENSE TEXT | |||||
* | |||||
* Microsoft grants you the right to use these script files for the sole | |||||
* purpose of either: (i) interacting through your browser with the Microsoft | |||||
* website or online service, subject to the applicable licensing or use | |||||
* terms; or (ii) using the files as included with a Microsoft product subject | |||||
* to that product's license terms. Microsoft reserves all other rights to the | |||||
* files not expressly granted by Microsoft, whether by implication, estoppel | |||||
* or otherwise. Insofar as a script file is dual licensed under GPL, | |||||
* Microsoft neither took the code under GPL nor distributes it thereunder but | |||||
* under the terms set out in this paragraph. All notices and licenses | |||||
* below are for informational purposes only. | |||||
* | |||||
* NUGET: END LICENSE TEXT */ | |||||
/*! matchMedia() polyfill - Test a CSS media type/query in JS. Authors & copyright (c) 2012: Scott Jehl, Paul Irish, Nicholas Zakas. Dual MIT/BSD license */ | |||||
/*! NOTE: If you're already including a window.matchMedia polyfill via Modernizr or otherwise, you don't need this part */ | |||||
window.matchMedia = window.matchMedia || (function(doc, undefined){ | |||||
var bool, | |||||
docElem = doc.documentElement, | |||||
refNode = docElem.firstElementChild || docElem.firstChild, | |||||
// fakeBody required for <FF4 when executed in <head> | |||||
fakeBody = doc.createElement('body'), | |||||
div = doc.createElement('div'); | |||||
div.id = 'mq-test-1'; | |||||
div.style.cssText = "position:absolute;top:-100em"; | |||||
fakeBody.style.background = "none"; | |||||
fakeBody.appendChild(div); | |||||
return function(q){ | |||||
div.innerHTML = '­<style media="'+q+'"> #mq-test-1 { width: 42px; }</style>'; | |||||
docElem.insertBefore(fakeBody, refNode); | |||||
bool = div.offsetWidth == 42; | |||||
docElem.removeChild(fakeBody); | |||||
return { matches: bool, media: q }; | |||||
}; | |||||
})(document); | |||||
/*! Respond.js v1.2.0: min/max-width media query polyfill. (c) Scott Jehl. MIT/GPLv2 Lic. j.mp/respondjs */ | |||||
(function( win ){ | |||||
//exposed namespace | |||||
win.respond = {}; | |||||
//define update even in native-mq-supporting browsers, to avoid errors | |||||
respond.update = function(){}; | |||||
//expose media query support flag for external use | |||||
respond.mediaQueriesSupported = win.matchMedia && win.matchMedia( "only all" ).matches; | |||||
//if media queries are supported, exit here | |||||
if( respond.mediaQueriesSupported ){ return; } | |||||
//define vars | |||||
var doc = win.document, | |||||
docElem = doc.documentElement, | |||||
mediastyles = [], | |||||
rules = [], | |||||
appendedEls = [], | |||||
parsedSheets = {}, | |||||
resizeThrottle = 30, | |||||
head = doc.getElementsByTagName( "head" )[0] || docElem, | |||||
base = doc.getElementsByTagName( "base" )[0], | |||||
links = head.getElementsByTagName( "link" ), | |||||
requestQueue = [], | |||||
//loop stylesheets, send text content to translate | |||||
ripCSS = function(){ | |||||
var sheets = links, | |||||
sl = sheets.length, | |||||
i = 0, | |||||
//vars for loop: | |||||
sheet, href, media, isCSS; | |||||
for( ; i < sl; i++ ){ | |||||
sheet = sheets[ i ], | |||||
href = sheet.href, | |||||
media = sheet.media, | |||||
isCSS = sheet.rel && sheet.rel.toLowerCase() === "stylesheet"; | |||||
//only links plz and prevent re-parsing | |||||
if( !!href && isCSS && !parsedSheets[ href ] ){ | |||||
// selectivizr exposes css through the rawCssText expando | |||||
if (sheet.styleSheet && sheet.styleSheet.rawCssText) { | |||||
translate( sheet.styleSheet.rawCssText, href, media ); | |||||
parsedSheets[ href ] = true; | |||||
} else { | |||||
if( (!/^([a-zA-Z:]*\/\/)/.test( href ) && !base) | |||||
|| href.replace( RegExp.$1, "" ).split( "/" )[0] === win.location.host ){ | |||||
requestQueue.push( { | |||||
href: href, | |||||
media: media | |||||
} ); | |||||
} | |||||
} | |||||
} | |||||
} | |||||
makeRequests(); | |||||
}, | |||||
//recurse through request queue, get css text | |||||
makeRequests = function(){ | |||||
if( requestQueue.length ){ | |||||
var thisRequest = requestQueue.shift(); | |||||
ajax( thisRequest.href, function( styles ){ | |||||
translate( styles, thisRequest.href, thisRequest.media ); | |||||
parsedSheets[ thisRequest.href ] = true; | |||||
makeRequests(); | |||||
} ); | |||||
} | |||||
}, | |||||
//find media blocks in css text, convert to style blocks | |||||
translate = function( styles, href, media ){ | |||||
var qs = styles.match( /@media[^\{]+\{([^\{\}]*\{[^\}\{]*\})+/gi ), | |||||
ql = qs && qs.length || 0, | |||||
//try to get CSS path | |||||
href = href.substring( 0, href.lastIndexOf( "/" )), | |||||
repUrls = function( css ){ | |||||
return css.replace( /(url\()['"]?([^\/\)'"][^:\)'"]+)['"]?(\))/g, "$1" + href + "$2$3" ); | |||||
}, | |||||
useMedia = !ql && media, | |||||
//vars used in loop | |||||
i = 0, | |||||
j, fullq, thisq, eachq, eql; | |||||
//if path exists, tack on trailing slash | |||||
if( href.length ){ href += "/"; } | |||||
//if no internal queries exist, but media attr does, use that | |||||
//note: this currently lacks support for situations where a media attr is specified on a link AND | |||||
//its associated stylesheet has internal CSS media queries. | |||||
//In those cases, the media attribute will currently be ignored. | |||||
if( useMedia ){ | |||||
ql = 1; | |||||
} | |||||
for( ; i < ql; i++ ){ | |||||
j = 0; | |||||
//media attr | |||||
if( useMedia ){ | |||||
fullq = media; | |||||
rules.push( repUrls( styles ) ); | |||||
} | |||||
//parse for styles | |||||
else{ | |||||
fullq = qs[ i ].match( /@media *([^\{]+)\{([\S\s]+?)$/ ) && RegExp.$1; | |||||
rules.push( RegExp.$2 && repUrls( RegExp.$2 ) ); | |||||
} | |||||
eachq = fullq.split( "," ); | |||||
eql = eachq.length; | |||||
for( ; j < eql; j++ ){ | |||||
thisq = eachq[ j ]; | |||||
mediastyles.push( { | |||||
media : thisq.split( "(" )[ 0 ].match( /(only\s+)?([a-zA-Z]+)\s?/ ) && RegExp.$2 || "all", | |||||
rules : rules.length - 1, | |||||
hasquery: thisq.indexOf("(") > -1, | |||||
minw : thisq.match( /\(min\-width:[\s]*([\s]*[0-9\.]+)(px|em)[\s]*\)/ ) && parseFloat( RegExp.$1 ) + ( RegExp.$2 || "" ), | |||||
maxw : thisq.match( /\(max\-width:[\s]*([\s]*[0-9\.]+)(px|em)[\s]*\)/ ) && parseFloat( RegExp.$1 ) + ( RegExp.$2 || "" ) | |||||
} ); | |||||
} | |||||
} | |||||
applyMedia(); | |||||
}, | |||||
lastCall, | |||||
resizeDefer, | |||||
// returns the value of 1em in pixels | |||||
getEmValue = function() { | |||||
var ret, | |||||
div = doc.createElement('div'), | |||||
body = doc.body, | |||||
fakeUsed = false; | |||||
div.style.cssText = "position:absolute;font-size:1em;width:1em"; | |||||
if( !body ){ | |||||
body = fakeUsed = doc.createElement( "body" ); | |||||
body.style.background = "none"; | |||||
} | |||||
body.appendChild( div ); | |||||
docElem.insertBefore( body, docElem.firstChild ); | |||||
ret = div.offsetWidth; | |||||
if( fakeUsed ){ | |||||
docElem.removeChild( body ); | |||||
} | |||||
else { | |||||
body.removeChild( div ); | |||||
} | |||||
//also update eminpx before returning | |||||
ret = eminpx = parseFloat(ret); | |||||
return ret; | |||||
}, | |||||
//cached container for 1em value, populated the first time it's needed | |||||
eminpx, | |||||
//enable/disable styles | |||||
applyMedia = function( fromResize ){ | |||||
var name = "clientWidth", | |||||
docElemProp = docElem[ name ], | |||||
currWidth = doc.compatMode === "CSS1Compat" && docElemProp || doc.body[ name ] || docElemProp, | |||||
styleBlocks = {}, | |||||
lastLink = links[ links.length-1 ], | |||||
now = (new Date()).getTime(); | |||||
//throttle resize calls | |||||
if( fromResize && lastCall && now - lastCall < resizeThrottle ){ | |||||
clearTimeout( resizeDefer ); | |||||
resizeDefer = setTimeout( applyMedia, resizeThrottle ); | |||||
return; | |||||
} | |||||
else { | |||||
lastCall = now; | |||||
} | |||||
for( var i in mediastyles ){ | |||||
var thisstyle = mediastyles[ i ], | |||||
min = thisstyle.minw, | |||||
max = thisstyle.maxw, | |||||
minnull = min === null, | |||||
maxnull = max === null, | |||||
em = "em"; | |||||
if( !!min ){ | |||||
min = parseFloat( min ) * ( min.indexOf( em ) > -1 ? ( eminpx || getEmValue() ) : 1 ); | |||||
} | |||||
if( !!max ){ | |||||
max = parseFloat( max ) * ( max.indexOf( em ) > -1 ? ( eminpx || getEmValue() ) : 1 ); | |||||
} | |||||
// if there's no media query at all (the () part), or min or max is not null, and if either is present, they're true | |||||
if( !thisstyle.hasquery || ( !minnull || !maxnull ) && ( minnull || currWidth >= min ) && ( maxnull || currWidth <= max ) ){ | |||||
if( !styleBlocks[ thisstyle.media ] ){ | |||||
styleBlocks[ thisstyle.media ] = []; | |||||
} | |||||
styleBlocks[ thisstyle.media ].push( rules[ thisstyle.rules ] ); | |||||
} | |||||
} | |||||
//remove any existing respond style element(s) | |||||
for( var i in appendedEls ){ | |||||
if( appendedEls[ i ] && appendedEls[ i ].parentNode === head ){ | |||||
head.removeChild( appendedEls[ i ] ); | |||||
} | |||||
} | |||||
//inject active styles, grouped by media type | |||||
for( var i in styleBlocks ){ | |||||
var ss = doc.createElement( "style" ), | |||||
css = styleBlocks[ i ].join( "\n" ); | |||||
ss.type = "text/css"; | |||||
ss.media = i; | |||||
//originally, ss was appended to a documentFragment and sheets were appended in bulk. | |||||
//this caused crashes in IE in a number of circumstances, such as when the HTML element had a bg image set, so appending beforehand seems best. Thanks to @dvelyk for the initial research on this one! | |||||
head.insertBefore( ss, lastLink.nextSibling ); | |||||
if ( ss.styleSheet ){ | |||||
ss.styleSheet.cssText = css; | |||||
} | |||||
else { | |||||
ss.appendChild( doc.createTextNode( css ) ); | |||||
} | |||||
//push to appendedEls to track for later removal | |||||
appendedEls.push( ss ); | |||||
} | |||||
}, | |||||
//tweaked Ajax functions from Quirksmode | |||||
ajax = function( url, callback ) { | |||||
var req = xmlHttp(); | |||||
if (!req){ | |||||
return; | |||||
} | |||||
req.open( "GET", url, true ); | |||||
req.onreadystatechange = function () { | |||||
if ( req.readyState != 4 || req.status != 200 && req.status != 304 ){ | |||||
return; | |||||
} | |||||
callback( req.responseText ); | |||||
} | |||||
if ( req.readyState == 4 ){ | |||||
return; | |||||
} | |||||
req.send( null ); | |||||
}, | |||||
//define ajax obj | |||||
xmlHttp = (function() { | |||||
var xmlhttpmethod = false; | |||||
try { | |||||
xmlhttpmethod = new XMLHttpRequest(); | |||||
} | |||||
catch( e ){ | |||||
xmlhttpmethod = new ActiveXObject( "Microsoft.XMLHTTP" ); | |||||
} | |||||
return function(){ | |||||
return xmlhttpmethod; | |||||
}; | |||||
})(); | |||||
//translate CSS | |||||
ripCSS(); | |||||
//expose update for re-running respond later on | |||||
respond.update = ripCSS; | |||||
//adjust on resize | |||||
function callMedia(){ | |||||
applyMedia( true ); | |||||
} | |||||
if( win.addEventListener ){ | |||||
win.addEventListener( "resize", callMedia, false ); | |||||
} | |||||
else if( win.attachEvent ){ | |||||
win.attachEvent( "onresize", callMedia ); | |||||
} | |||||
})(this); |
@ -1,20 +0,0 @@ | |||||
/* NUGET: BEGIN LICENSE TEXT | |||||
* | |||||
* Microsoft grants you the right to use these script files for the sole | |||||
* purpose of either: (i) interacting through your browser with the Microsoft | |||||
* website or online service, subject to the applicable licensing or use | |||||
* terms; or (ii) using the files as included with a Microsoft product subject | |||||
* to that product's license terms. Microsoft reserves all other rights to the | |||||
* files not expressly granted by Microsoft, whether by implication, estoppel | |||||
* or otherwise. Insofar as a script file is dual licensed under GPL, | |||||
* Microsoft neither took the code under GPL nor distributes it thereunder but | |||||
* under the terms set out in this paragraph. All notices and licenses | |||||
* below are for informational purposes only. | |||||
* | |||||
* NUGET: END LICENSE TEXT */ | |||||
/*! matchMedia() polyfill - Test a CSS media type/query in JS. Authors & copyright (c) 2012: Scott Jehl, Paul Irish, Nicholas Zakas. Dual MIT/BSD license */ | |||||
/*! NOTE: If you're already including a window.matchMedia polyfill via Modernizr or otherwise, you don't need this part */ | |||||
window.matchMedia=window.matchMedia||(function(e,f){var c,a=e.documentElement,b=a.firstElementChild||a.firstChild,d=e.createElement("body"),g=e.createElement("div");g.id="mq-test-1";g.style.cssText="position:absolute;top:-100em";d.style.background="none";d.appendChild(g);return function(h){g.innerHTML='­<style media="'+h+'"> #mq-test-1 { width: 42px; }</style>';a.insertBefore(d,b);c=g.offsetWidth==42;a.removeChild(d);return{matches:c,media:h}}})(document); | |||||
/*! Respond.js v1.2.0: min/max-width media query polyfill. (c) Scott Jehl. MIT/GPLv2 Lic. j.mp/respondjs */ | |||||
(function(e){e.respond={};respond.update=function(){};respond.mediaQueriesSupported=e.matchMedia&&e.matchMedia("only all").matches;if(respond.mediaQueriesSupported){return}var w=e.document,s=w.documentElement,i=[],k=[],q=[],o={},h=30,f=w.getElementsByTagName("head")[0]||s,g=w.getElementsByTagName("base")[0],b=f.getElementsByTagName("link"),d=[],a=function(){var D=b,y=D.length,B=0,A,z,C,x;for(;B<y;B++){A=D[B],z=A.href,C=A.media,x=A.rel&&A.rel.toLowerCase()==="stylesheet";if(!!z&&x&&!o[z]){if(A.styleSheet&&A.styleSheet.rawCssText){m(A.styleSheet.rawCssText,z,C);o[z]=true}else{if((!/^([a-zA-Z:]*\/\/)/.test(z)&&!g)||z.replace(RegExp.$1,"").split("/")[0]===e.location.host){d.push({href:z,media:C})}}}}u()},u=function(){if(d.length){var x=d.shift();n(x.href,function(y){m(y,x.href,x.media);o[x.href]=true;u()})}},m=function(I,x,z){var G=I.match(/@media[^\{]+\{([^\{\}]*\{[^\}\{]*\})+/gi),J=G&&G.length||0,x=x.substring(0,x.lastIndexOf("/")),y=function(K){return K.replace(/(url\()['"]?([^\/\)'"][^:\)'"]+)['"]?(\))/g,"$1"+x+"$2$3")},A=!J&&z,D=0,C,E,F,B,H;if(x.length){x+="/"}if(A){J=1}for(;D<J;D++){C=0;if(A){E=z;k.push(y(I))}else{E=G[D].match(/@media *([^\{]+)\{([\S\s]+?)$/)&&RegExp.$1;k.push(RegExp.$2&&y(RegExp.$2))}B=E.split(",");H=B.length;for(;C<H;C++){F=B[C];i.push({media:F.split("(")[0].match(/(only\s+)?([a-zA-Z]+)\s?/)&&RegExp.$2||"all",rules:k.length-1,hasquery:F.indexOf("(")>-1,minw:F.match(/\(min\-width:[\s]*([\s]*[0-9\.]+)(px|em)[\s]*\)/)&&parseFloat(RegExp.$1)+(RegExp.$2||""),maxw:F.match(/\(max\-width:[\s]*([\s]*[0-9\.]+)(px|em)[\s]*\)/)&&parseFloat(RegExp.$1)+(RegExp.$2||"")})}}j()},l,r,v=function(){var z,A=w.createElement("div"),x=w.body,y=false;A.style.cssText="position:absolute;font-size:1em;width:1em";if(!x){x=y=w.createElement("body");x.style.background="none"}x.appendChild(A);s.insertBefore(x,s.firstChild);z=A.offsetWidth;if(y){s.removeChild(x)}else{x.removeChild(A)}z=p=parseFloat(z);return z},p,j=function(I){var x="clientWidth",B=s[x],H=w.compatMode==="CSS1Compat"&&B||w.body[x]||B,D={},G=b[b.length-1],z=(new Date()).getTime();if(I&&l&&z-l<h){clearTimeout(r);r=setTimeout(j,h);return}else{l=z}for(var E in i){var K=i[E],C=K.minw,J=K.maxw,A=C===null,L=J===null,y="em";if(!!C){C=parseFloat(C)*(C.indexOf(y)>-1?(p||v()):1)}if(!!J){J=parseFloat(J)*(J.indexOf(y)>-1?(p||v()):1)}if(!K.hasquery||(!A||!L)&&(A||H>=C)&&(L||H<=J)){if(!D[K.media]){D[K.media]=[]}D[K.media].push(k[K.rules])}}for(var E in q){if(q[E]&&q[E].parentNode===f){f.removeChild(q[E])}}for(var E in D){var M=w.createElement("style"),F=D[E].join("\n");M.type="text/css";M.media=E;f.insertBefore(M,G.nextSibling);if(M.styleSheet){M.styleSheet.cssText=F}else{M.appendChild(w.createTextNode(F))}q.push(M)}},n=function(x,z){var y=c();if(!y){return}y.open("GET",x,true);y.onreadystatechange=function(){if(y.readyState!=4||y.status!=200&&y.status!=304){return}z(y.responseText)};if(y.readyState==4){return}y.send(null)},c=(function(){var x=false;try{x=new XMLHttpRequest()}catch(y){x=new ActiveXObject("Microsoft.XMLHTTP")}return function(){return x}})();a();respond.update=a;function t(){j(true)}if(e.addEventListener){e.addEventListener("resize",t,false)}else{if(e.attachEvent){e.attachEvent("onresize",t)}}})(this); |
@ -1,75 +0,0 @@ | |||||
using eShopOnContainers.Core.Extensions; | |||||
using eShopOnContainers.Core.Models.Catalog; | |||||
using System; | |||||
using System.Collections.ObjectModel; | |||||
using System.Linq; | |||||
using System.Threading.Tasks; | |||||
namespace eShopOnContainers.Core.Services.Catalog | |||||
{ | |||||
// From https://github.com/dotnet/eShopOnContainers/blob/vs2017/src/Mobile/eShopOnContainers/eShopOnContainers.Core/Services/Catalog/CatalogMockService.cs | |||||
// Issue: How to make this DRY, while preserving the story for a monolithic application. | |||||
// Note: Device specific conditionals have been removed. | |||||
public class CatalogMockService : ICatalogService | |||||
{ | |||||
private ObservableCollection<CatalogBrand> MockCatalogBrand = new ObservableCollection<CatalogBrand> | |||||
{ | |||||
new CatalogBrand { Id = 1, Brand = "Azure" }, | |||||
new CatalogBrand { Id = 2, Brand = "Visual Studio" } | |||||
}; | |||||
private ObservableCollection<CatalogType> MockCatalogType = new ObservableCollection<CatalogType> | |||||
{ | |||||
new CatalogType { Id = 1, Type = "Mug" }, | |||||
new CatalogType { Id = 2, Type = "T-Shirt" } | |||||
}; | |||||
private ObservableCollection<CatalogItem> MockCatalog = new ObservableCollection<CatalogItem> | |||||
{ | |||||
new CatalogItem { Id = Common.Common.MockCatalogItemId01, PictureUri = "Content/fake_product_01.png", Name = ".NET Bot Blue Sweatshirt (M)", Price = 19.50M, CatalogBrandId = 2, CatalogBrand = "Visual Studio", CatalogTypeId = 2, CatalogType = "T-Shirt" }, | |||||
new CatalogItem { Id = Common.Common.MockCatalogItemId02, PictureUri = "Content/fake_product_02.png", Name = ".NET Bot Purple Sweatshirt (M)", Price = 19.50M, CatalogBrandId = 2, CatalogBrand = "Visual Studio", CatalogTypeId = 2, CatalogType = "T-Shirt" }, | |||||
new CatalogItem { Id = Common.Common.MockCatalogItemId03, PictureUri = "Content/fake_product_03.png", Name = ".NET Bot Black Sweatshirt (M)", Price = 19.95M, CatalogBrandId = 2, CatalogBrand = "Visual Studio", CatalogTypeId = 2, CatalogType = "T-Shirt" }, | |||||
new CatalogItem { Id = Common.Common.MockCatalogItemId04, PictureUri = "Content/fake_product_04.png", Name = ".NET Black Cupt", Price = 17.00M, CatalogBrandId = 2, CatalogBrand = "Visual Studio", CatalogTypeId = 1, CatalogType = "Mug" }, | |||||
new CatalogItem { Id = Common.Common.MockCatalogItemId05, PictureUri = "Content/fake_product_05.png", Name = "Azure Black Sweatshirt (M)", Price = 19.50M, CatalogBrandId = 1, CatalogBrand = "Azure", CatalogTypeId = 2, CatalogType = "T-Shirt" } | |||||
}; | |||||
public async Task<ObservableCollection<CatalogItem>> GetCatalogAsync() | |||||
{ | |||||
await Task.Delay(500); | |||||
return MockCatalog; | |||||
} | |||||
public async Task<ObservableCollection<CatalogItem>> FilterAsync(int catalogBrandId, int catalogTypeId) | |||||
{ | |||||
await Task.Delay(500); | |||||
return MockCatalog | |||||
.Where(c => c.CatalogBrandId == catalogBrandId && | |||||
c.CatalogTypeId == catalogTypeId) | |||||
.ToObservableCollection(); | |||||
} | |||||
public async Task<ObservableCollection<CatalogBrand>> GetCatalogBrandAsync() | |||||
{ | |||||
await Task.Delay(500); | |||||
return MockCatalogBrand; | |||||
} | |||||
public async Task<ObservableCollection<CatalogType>> GetCatalogTypeAsync() | |||||
{ | |||||
await Task.Delay(500); | |||||
return MockCatalogType; | |||||
} | |||||
public async Task<CatalogItem> GetCatalogItemAsync(string id) | |||||
{ | |||||
await Task.Delay(500); | |||||
return MockCatalog.FirstOrDefault(c => c.Id == id); | |||||
} | |||||
} | |||||
} |
@ -1,111 +0,0 @@ | |||||
using System; | |||||
using System.Collections.ObjectModel; | |||||
using System.Threading.Tasks; | |||||
using eShopOnContainers.Core.Models.Catalog; | |||||
using eShopOnContainers.Core.Services.RequestProvider; | |||||
using eShopOnContainers.Core.Extensions; | |||||
using System.Collections.Generic; | |||||
// from https://github.com/dotnet/eShopOnContainers/blob/vs2017/src/Mobile/eShopOnContainers/eShopOnContainers.Core/Services/Catalog/CatalogService.cs | |||||
// TODO: DRY this stuff. | |||||
namespace eShopOnContainers.Core.Services.Catalog | |||||
{ | |||||
public class CatalogService : ICatalogService | |||||
{ | |||||
private readonly IRequestProvider _requestProvider; | |||||
public CatalogService(IRequestProvider requestProvider) | |||||
{ | |||||
_requestProvider = requestProvider; | |||||
} | |||||
public async Task<ObservableCollection<CatalogItem>> FilterAsync(int catalogBrandId, int catalogTypeId) | |||||
{ | |||||
// TODO: | |||||
UriBuilder builder = new UriBuilder("" /* GlobalSetting.Instance.CatalogEndpoint */); | |||||
builder.Path = string.Format("api/v1/catalog/items/type/{0}/brand/{1}", catalogTypeId, catalogBrandId); | |||||
string uri = builder.ToString(); | |||||
CatalogRoot catalog = | |||||
await _requestProvider.GetAsync<CatalogRoot>(uri); | |||||
if (catalog?.Data != null) | |||||
return catalog?.Data.ToObservableCollection(); | |||||
else | |||||
return new ObservableCollection<CatalogItem>(); | |||||
} | |||||
public async Task<ObservableCollection<CatalogItem>> GetCatalogAsync() | |||||
{ | |||||
// TODO: | |||||
UriBuilder builder = new UriBuilder("" /* GlobalSetting.Instance.CatalogEndpoint */); | |||||
builder.Path = "api/v1/catalog/items"; | |||||
string uri = builder.ToString(); | |||||
CatalogRoot catalog = | |||||
await _requestProvider.GetAsync<CatalogRoot>(uri); | |||||
if (catalog?.Data != null) | |||||
{ | |||||
// TODO: ServicesHelper.FixCatalogItemPictureUri(catalog?.Data); | |||||
return catalog?.Data.ToObservableCollection(); | |||||
} | |||||
else | |||||
return new ObservableCollection<CatalogItem>(); | |||||
} | |||||
public Task<CatalogItem> GetCatalogItemAsync(string id) | |||||
{ | |||||
throw new NotImplementedException(); | |||||
} | |||||
public async Task<ObservableCollection<CatalogBrand>> GetCatalogBrandAsync() | |||||
{ | |||||
// TODO: | |||||
UriBuilder builder = new UriBuilder("" /* GlobalSetting.Instance.CatalogEndpoint */); | |||||
builder.Path = "api/v1/catalog/catalogbrands"; | |||||
string uri = builder.ToString(); | |||||
IEnumerable<CatalogBrand> brands = | |||||
await _requestProvider.GetAsync<IEnumerable<CatalogBrand>>(uri); | |||||
if (brands != null) | |||||
return brands?.ToObservableCollection(); | |||||
else | |||||
return new ObservableCollection<CatalogBrand>(); | |||||
} | |||||
public async Task<ObservableCollection<CatalogType>> GetCatalogTypeAsync() | |||||
{ | |||||
// TODO: | |||||
UriBuilder builder = new UriBuilder("" /* GlobalSetting.Instance.CatalogEndpoint */); | |||||
builder.Path = "api/v1/catalog/catalogtypes"; | |||||
string uri = builder.ToString(); | |||||
IEnumerable<CatalogType> types = | |||||
await _requestProvider.GetAsync<IEnumerable<CatalogType>>(uri); | |||||
if (types != null) | |||||
return types.ToObservableCollection(); | |||||
else | |||||
return new ObservableCollection<CatalogType>(); | |||||
} | |||||
} | |||||
} |
@ -1,11 +0,0 @@ | |||||
namespace eShopOnContainers.Core.Services.Common | |||||
{ | |||||
public static class Common | |||||
{ | |||||
public static string MockCatalogItemId01 = "1"; | |||||
public static string MockCatalogItemId02 = "2"; | |||||
public static string MockCatalogItemId03 = "3"; | |||||
public static string MockCatalogItemId04 = "4"; | |||||
public static string MockCatalogItemId05 = "5"; | |||||
} | |||||
} |
@ -1,18 +0,0 @@ | |||||
using eShopOnContainers.Core.Models.Catalog; | |||||
using System.Collections.ObjectModel; | |||||
using System.Threading.Tasks; | |||||
// Taken from https://github.com/dotnet/eShopOnContainers/blob/vs2017/src/Mobile/eShopOnContainers/eShopOnContainers.Core/Services/Catalog/ICatalogService.cs | |||||
// Open Issue: How do we make this application DRY and still support the story | |||||
// of a 'monolithic' app for a 'Lift and Shift' scenario? | |||||
namespace eShopOnContainers.Core.Services.Catalog | |||||
{ | |||||
public interface ICatalogService | |||||
{ | |||||
Task<ObservableCollection<CatalogBrand>> GetCatalogBrandAsync(); | |||||
Task<ObservableCollection<CatalogItem>> FilterAsync(int catalogBrandId, int catalogTypeId); | |||||
Task<ObservableCollection<CatalogType>> GetCatalogTypeAsync(); | |||||
Task<ObservableCollection<CatalogItem>> GetCatalogAsync(); | |||||
Task<CatalogItem> GetCatalogItemAsync(string id); | |||||
} | |||||
} |
@ -1,19 +0,0 @@ | |||||
using System.Threading.Tasks; | |||||
namespace eShopOnContainers.Core.Services.RequestProvider | |||||
{ | |||||
public interface IRequestProvider | |||||
{ | |||||
Task<TResult> GetAsync<TResult>(string uri, string token = ""); | |||||
Task<TResult> PostAsync<TResult>(string uri, TResult data, string token = ""); | |||||
Task<TResult> PostAsync<TRequest, TResult>(string uri, TRequest data, string token = ""); | |||||
Task<TResult> PutAsync<TResult>(string uri, TResult data, string token = ""); | |||||
Task<TResult> PutAsync<TRequest, TResult>(string uri, TRequest data, string token = ""); | |||||
Task DeleteAsync(string uri, string token = ""); | |||||
} | |||||
} |
@ -1,72 +0,0 @@ | |||||
<%@ Master Language="C#" AutoEventWireup="true" CodeBehind="Site.master.cs" Inherits="Microsoft.eShopOnContainers.Catalog.WebForms.SiteMaster" %> | |||||
<!DOCTYPE html> | |||||
<html lang="en"> | |||||
<head runat="server"> | |||||
<meta charset="utf-8" /> | |||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" /> | |||||
<title><%: Page.Title %> - My ASP.NET Application</title> | |||||
<asp:PlaceHolder runat="server"> | |||||
<%: Scripts.Render("~/bundles/modernizr") %> | |||||
</asp:PlaceHolder> | |||||
<webopt:bundlereference runat="server" path="~/Content/css" /> | |||||
<link href="~/favicon.ico" rel="shortcut icon" type="image/x-icon" /> | |||||
</head> | |||||
<body> | |||||
<form runat="server"> | |||||
<asp:ScriptManager runat="server"> | |||||
<Scripts> | |||||
<%--To learn more about bundling scripts in ScriptManager see https://go.microsoft.com/fwlink/?LinkID=301884 --%> | |||||
<%--Framework Scripts--%> | |||||
<asp:ScriptReference Name="MsAjaxBundle" /> | |||||
<asp:ScriptReference Name="jquery" /> | |||||
<asp:ScriptReference Name="bootstrap" /> | |||||
<asp:ScriptReference Name="respond" /> | |||||
<asp:ScriptReference Name="WebForms.js" Assembly="System.Web" Path="~/Scripts/WebForms/WebForms.js" /> | |||||
<asp:ScriptReference Name="WebUIValidation.js" Assembly="System.Web" Path="~/Scripts/WebForms/WebUIValidation.js" /> | |||||
<asp:ScriptReference Name="MenuStandards.js" Assembly="System.Web" Path="~/Scripts/WebForms/MenuStandards.js" /> | |||||
<asp:ScriptReference Name="GridView.js" Assembly="System.Web" Path="~/Scripts/WebForms/GridView.js" /> | |||||
<asp:ScriptReference Name="DetailsView.js" Assembly="System.Web" Path="~/Scripts/WebForms/DetailsView.js" /> | |||||
<asp:ScriptReference Name="TreeView.js" Assembly="System.Web" Path="~/Scripts/WebForms/TreeView.js" /> | |||||
<asp:ScriptReference Name="WebParts.js" Assembly="System.Web" Path="~/Scripts/WebForms/WebParts.js" /> | |||||
<asp:ScriptReference Name="Focus.js" Assembly="System.Web" Path="~/Scripts/WebForms/Focus.js" /> | |||||
<asp:ScriptReference Name="WebFormsBundle" /> | |||||
<%--Site Scripts--%> | |||||
</Scripts> | |||||
</asp:ScriptManager> | |||||
<div class="navbar navbar-inverse navbar-fixed-top"> | |||||
<div class="container"> | |||||
<div class="navbar-header"> | |||||
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse"> | |||||
<span class="icon-bar"></span> | |||||
<span class="icon-bar"></span> | |||||
<span class="icon-bar"></span> | |||||
</button> | |||||
<a class="navbar-brand" runat="server" href="~/">Application name</a> | |||||
</div> | |||||
<div class="navbar-collapse collapse"> | |||||
<ul class="nav navbar-nav"> | |||||
<li><a runat="server" href="~/">Home</a></li> | |||||
<li><a runat="server" href="~/About">About</a></li> | |||||
<li><a runat="server" href="~/Contact">Contact</a></li> | |||||
</ul> | |||||
</div> | |||||
</div> | |||||
</div> | |||||
<div class="container body-content"> | |||||
<asp:ContentPlaceHolder ID="MainContent" runat="server"> | |||||
</asp:ContentPlaceHolder> | |||||
<hr /> | |||||
<footer> | |||||
<p>© <%: DateTime.Now.Year %> - My ASP.NET Application</p> | |||||
</footer> | |||||
</div> | |||||
</form> | |||||
</body> | |||||
</html> |
@ -1,17 +0,0 @@ | |||||
using System; | |||||
using System.Collections.Generic; | |||||
using System.Linq; | |||||
using System.Web; | |||||
using System.Web.UI; | |||||
using System.Web.UI.WebControls; | |||||
namespace Microsoft.eShopOnContainers.Catalog.WebForms | |||||
{ | |||||
public partial class SiteMaster : MasterPage | |||||
{ | |||||
protected void Page_Load(object sender, EventArgs e) | |||||
{ | |||||
} | |||||
} | |||||
} |
@ -1,24 +0,0 @@ | |||||
//------------------------------------------------------------------------------ | |||||
// <auto-generated> | |||||
// This code was generated by a tool. | |||||
// | |||||
// Changes to this file may cause incorrect behavior and will be lost if | |||||
// the code is regenerated. | |||||
// </auto-generated> | |||||
//------------------------------------------------------------------------------ | |||||
namespace Microsoft.eShopOnContainers.Catalog.WebForms { | |||||
public partial class SiteMaster { | |||||
/// <summary> | |||||
/// MainContent control. | |||||
/// </summary> | |||||
/// <remarks> | |||||
/// Auto-generated field. | |||||
/// To modify move field declaration from designer file to code-behind file. | |||||
/// </remarks> | |||||
protected global::System.Web.UI.WebControls.ContentPlaceHolder MainContent; | |||||
} | |||||
} |
@ -1,23 +0,0 @@ | |||||
<%@ Master Language="C#" AutoEventWireup="true" CodeBehind="Site.Mobile.master.cs" Inherits="Microsoft.eShopOnContainers.Catalog.WebForms.Site_Mobile" %> | |||||
<%@ Register Src="~/ViewSwitcher.ascx" TagPrefix="friendlyUrls" TagName="ViewSwitcher" %> | |||||
<!DOCTYPE html> | |||||
<html xmlns="http://www.w3.org/1999/xhtml"> | |||||
<head runat="server"> | |||||
<meta name="viewport" content="width=device-width" /> | |||||
<title></title> | |||||
<asp:ContentPlaceHolder runat="server" ID="HeadContent" /> | |||||
</head> | |||||
<body> | |||||
<form id="form1" runat="server"> | |||||
<div> | |||||
<h1>Mobile Master Page</h1> | |||||
<asp:ContentPlaceHolder runat="server" ID="FeaturedContent" /> | |||||
<section class="content-wrapper main-content clear-fix"> | |||||
<asp:ContentPlaceHolder runat="server" ID="MainContent" /> | |||||
</section> | |||||
<friendlyUrls:ViewSwitcher runat="server" /> | |||||
</div> | |||||
</form> | |||||
</body> | |||||
</html> |
@ -1,17 +0,0 @@ | |||||
using System; | |||||
using System.Collections.Generic; | |||||
using System.Linq; | |||||
using System.Web; | |||||
using System.Web.UI; | |||||
using System.Web.UI.WebControls; | |||||
namespace Microsoft.eShopOnContainers.Catalog.WebForms | |||||
{ | |||||
public partial class Site_Mobile : System.Web.UI.MasterPage | |||||
{ | |||||
protected void Page_Load(object sender, EventArgs e) | |||||
{ | |||||
} | |||||
} | |||||
} |
@ -1,51 +0,0 @@ | |||||
//------------------------------------------------------------------------------ | |||||
// <auto-generated> | |||||
// This code was generated by a tool. | |||||
// | |||||
// Changes to this file may cause incorrect behavior and will be lost if | |||||
// the code is regenerated. | |||||
// </auto-generated> | |||||
//------------------------------------------------------------------------------ | |||||
namespace Microsoft.eShopOnContainers.Catalog.WebForms { | |||||
public partial class Site_Mobile { | |||||
/// <summary> | |||||
/// HeadContent control. | |||||
/// </summary> | |||||
/// <remarks> | |||||
/// Auto-generated field. | |||||
/// To modify move field declaration from designer file to code-behind file. | |||||
/// </remarks> | |||||
protected global::System.Web.UI.WebControls.ContentPlaceHolder HeadContent; | |||||
/// <summary> | |||||
/// form1 control. | |||||
/// </summary> | |||||
/// <remarks> | |||||
/// Auto-generated field. | |||||
/// To modify move field declaration from designer file to code-behind file. | |||||
/// </remarks> | |||||
protected global::System.Web.UI.HtmlControls.HtmlForm form1; | |||||
/// <summary> | |||||
/// FeaturedContent control. | |||||
/// </summary> | |||||
/// <remarks> | |||||
/// Auto-generated field. | |||||
/// To modify move field declaration from designer file to code-behind file. | |||||
/// </remarks> | |||||
protected global::System.Web.UI.WebControls.ContentPlaceHolder FeaturedContent; | |||||
/// <summary> | |||||
/// MainContent control. | |||||
/// </summary> | |||||
/// <remarks> | |||||
/// Auto-generated field. | |||||
/// To modify move field declaration from designer file to code-behind file. | |||||
/// </remarks> | |||||
protected global::System.Web.UI.WebControls.ContentPlaceHolder MainContent; | |||||
} | |||||
} |
@ -1,4 +0,0 @@ | |||||
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="ViewSwitcher.ascx.cs" Inherits="Microsoft.eShopOnContainers.Catalog.WebForms.ViewSwitcher" %> | |||||
<div id="viewSwitcher"> | |||||
<%: CurrentView %> view | <a href="<%: SwitchUrl %>" data-ajax="false">Switch to <%: AlternateView %></a> | |||||
</div> |
@ -1,43 +0,0 @@ | |||||
using System; | |||||
using System.Collections.Generic; | |||||
using System.Linq; | |||||
using System.Web; | |||||
using System.Web.Routing; | |||||
using System.Web.UI; | |||||
using System.Web.UI.WebControls; | |||||
using Microsoft.AspNet.FriendlyUrls.Resolvers; | |||||
namespace Microsoft.eShopOnContainers.Catalog.WebForms | |||||
{ | |||||
public partial class ViewSwitcher : System.Web.UI.UserControl | |||||
{ | |||||
protected string CurrentView { get; private set; } | |||||
protected string AlternateView { get; private set; } | |||||
protected string SwitchUrl { get; private set; } | |||||
protected void Page_Load(object sender, EventArgs e) | |||||
{ | |||||
// Determine current view | |||||
var isMobile = WebFormsFriendlyUrlResolver.IsMobileView(new HttpContextWrapper(Context)); | |||||
CurrentView = isMobile ? "Mobile" : "Desktop"; | |||||
// Determine alternate view | |||||
AlternateView = isMobile ? "Desktop" : "Mobile"; | |||||
// Create switch URL from the route, e.g. ~/__FriendlyUrls_SwitchView/Mobile?ReturnUrl=/Page | |||||
var switchViewRouteName = "AspNet.FriendlyUrls.SwitchView"; | |||||
var switchViewRoute = RouteTable.Routes[switchViewRouteName]; | |||||
if (switchViewRoute == null) | |||||
{ | |||||
// Friendly URLs is not enabled or the name of the switch view route is out of sync | |||||
this.Visible = false; | |||||
return; | |||||
} | |||||
var url = GetRouteUrl(switchViewRouteName, new { view = AlternateView, __FriendlyUrls_SwitchViews = true }); | |||||
url += "?ReturnUrl=" + HttpUtility.UrlEncode(Request.RawUrl); | |||||
SwitchUrl = url; | |||||
} | |||||
} | |||||
} |
@ -1,15 +0,0 @@ | |||||
//------------------------------------------------------------------------------ | |||||
// <auto-generated> | |||||
// This code was generated by a tool. | |||||
// | |||||
// Changes to this file may cause incorrect behavior and will be lost if | |||||
// the code is regenerated. | |||||
// </auto-generated> | |||||
//------------------------------------------------------------------------------ | |||||
namespace Microsoft.eShopOnContainers.Catalog.WebForms { | |||||
public partial class ViewSwitcher { | |||||
} | |||||
} |
@ -1,30 +0,0 @@ | |||||
<?xml version="1.0" encoding="utf-8"?> | |||||
<!-- For more information on using web.config transformation visit https://go.microsoft.com/fwlink/?LinkId=125889 --> | |||||
<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform"> | |||||
<!-- | |||||
In the example below, the "SetAttributes" transform will change the value of | |||||
"connectionString" to use "ReleaseSQLServer" only when the "Match" locator | |||||
finds an attribute "name" that has a value of "MyDB". | |||||
<connectionStrings> | |||||
<add name="MyDB" | |||||
connectionString="Data Source=ReleaseSQLServer;Initial Catalog=MyReleaseDB;Integrated Security=True" | |||||
xdt:Transform="SetAttributes" xdt:Locator="Match(name)"/> | |||||
</connectionStrings> | |||||
--> | |||||
<system.web> | |||||
<!-- | |||||
In the example below, the "Replace" transform will replace the entire | |||||
<customErrors> section of your web.config file. | |||||
Note that because there is only one customErrors section under the | |||||
<system.web> node, there is no need to use the "xdt:Locator" attribute. | |||||
<customErrors defaultRedirect="GenericError.htm" | |||||
mode="RemoteOnly" xdt:Transform="Replace"> | |||||
<error statusCode="500" redirect="InternalError.htm"/> | |||||
</customErrors> | |||||
--> | |||||
</system.web> | |||||
</configuration> |
@ -1,31 +0,0 @@ | |||||
<?xml version="1.0" encoding="utf-8"?> | |||||
<!-- For more information on using web.config transformation visit https://go.microsoft.com/fwlink/?LinkId=125889 --> | |||||
<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform"> | |||||
<!-- | |||||
In the example below, the "SetAttributes" transform will change the value of | |||||
"connectionString" to use "ReleaseSQLServer" only when the "Match" locator | |||||
finds an attribute "name" that has a value of "MyDB". | |||||
<connectionStrings> | |||||
<add name="MyDB" | |||||
connectionString="Data Source=ReleaseSQLServer;Initial Catalog=MyReleaseDB;Integrated Security=True" | |||||
xdt:Transform="SetAttributes" xdt:Locator="Match(name)"/> | |||||
</connectionStrings> | |||||
--> | |||||
<system.web> | |||||
<compilation xdt:Transform="RemoveAttributes(debug)" /> | |||||
<!-- | |||||
In the example below, the "Replace" transform will replace the entire | |||||
<customErrors> section of your web.config file. | |||||
Note that because there is only one customErrors section under the | |||||
<system.web> node, there is no need to use the "xdt:Locator" attribute. | |||||
<customErrors defaultRedirect="GenericError.htm" | |||||
mode="RemoteOnly" xdt:Transform="Replace"> | |||||
<error statusCode="500" redirect="InternalError.htm"/> | |||||
</customErrors> | |||||
--> | |||||
</system.web> | |||||
</configuration> |
@ -1,50 +0,0 @@ | |||||
<?xml version="1.0" encoding="utf-8"?> | |||||
<!-- | |||||
For more information on how to configure your ASP.NET application, please visit | |||||
https://go.microsoft.com/fwlink/?LinkId=169433 | |||||
--> | |||||
<configuration> | |||||
<appSettings> | |||||
<add key="usefake" value="true"/> | |||||
</appSettings> | |||||
<system.web> | |||||
<compilation debug="true" targetFramework="4.5.2" /> | |||||
<httpRuntime targetFramework="4.5.2" /> | |||||
<pages> | |||||
<namespaces> | |||||
<add namespace="System.Web.Optimization" /> | |||||
</namespaces> | |||||
<controls> | |||||
<add assembly="Microsoft.AspNet.Web.Optimization.WebForms" namespace="Microsoft.AspNet.Web.Optimization.WebForms" tagPrefix="webopt" /> | |||||
</controls> | |||||
</pages> | |||||
<httpModules> | |||||
<add name="ApplicationInsightsWebTracking" type="Microsoft.ApplicationInsights.Web.ApplicationInsightsHttpModule, Microsoft.AI.Web" /> | |||||
</httpModules> | |||||
</system.web> | |||||
<runtime> | |||||
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> | |||||
<dependentAssembly> | |||||
<assemblyIdentity name="Newtonsoft.Json" culture="neutral" publicKeyToken="30ad4fe6b2a6aeed" /> | |||||
<bindingRedirect oldVersion="0.0.0.0-6.0.0.0" newVersion="6.0.0.0" /> | |||||
</dependentAssembly> | |||||
<dependentAssembly> | |||||
<assemblyIdentity name="WebGrease" culture="neutral" publicKeyToken="31bf3856ad364e35" /> | |||||
<bindingRedirect oldVersion="0.0.0.0-1.5.2.14234" newVersion="1.5.2.14234" /> | |||||
</dependentAssembly> | |||||
</assemblyBinding> | |||||
</runtime> | |||||
<system.webServer> | |||||
<validation validateIntegratedModeConfiguration="false" /> | |||||
<modules> | |||||
<remove name="ApplicationInsightsWebTracking" /> | |||||
<add name="ApplicationInsightsWebTracking" type="Microsoft.ApplicationInsights.Web.ApplicationInsightsHttpModule, Microsoft.AI.Web" preCondition="managedHandler" /> | |||||
</modules> | |||||
</system.webServer> | |||||
<system.codedom> | |||||
<compilers> | |||||
<compiler language="c#;cs;csharp" extension=".cs" type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.CSharpCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=1.0.3.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" warningLevel="4" compilerOptions="/langversion:6 /nowarn:1659;1699;1701" /> | |||||
<compiler language="vb;vbs;visualbasic;vbscript" extension=".vb" type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.VBCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=1.0.3.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" warningLevel="4" compilerOptions="/langversion:14 /nowarn:41008 /define:_MYTYPE=\"Web\" /optionInfer+" /> | |||||
</compilers> | |||||
</system.codedom> | |||||
</configuration> |
@ -1,228 +0,0 @@ | |||||
<?xml version="1.0" standalone="no"?> | |||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" > | |||||
<svg xmlns="http://www.w3.org/2000/svg"> | |||||
<metadata></metadata> | |||||
<defs> | |||||
<font id="glyphicons_halflingsregular" horiz-adv-x="1200" > | |||||
<font-face units-per-em="1200" ascent="960" descent="-240" /> | |||||
<missing-glyph horiz-adv-x="500" /> | |||||
<glyph /> | |||||
<glyph /> | |||||
<glyph unicode=" " /> | |||||
<glyph unicode="*" d="M1100 500h-259l183 -183l-141 -141l-183 183v-259h-200v259l-183 -183l-141 141l183 183h-259v200h259l-183 183l141 141l183 -183v259h200v-259l183 183l141 -141l-183 -183h259v-200z" /> | |||||
<glyph unicode="+" d="M1100 400h-400v-400h-300v400h-400v300h400v400h300v-400h400v-300z" /> | |||||
<glyph unicode=" " /> | |||||
<glyph unicode=" " horiz-adv-x="652" /> | |||||
<glyph unicode=" " horiz-adv-x="1304" /> | |||||
<glyph unicode=" " horiz-adv-x="652" /> | |||||
<glyph unicode=" " horiz-adv-x="1304" /> | |||||
<glyph unicode=" " horiz-adv-x="434" /> | |||||
<glyph unicode=" " horiz-adv-x="326" /> | |||||
<glyph unicode=" " horiz-adv-x="217" /> | |||||
<glyph unicode=" " horiz-adv-x="217" /> | |||||
<glyph unicode=" " horiz-adv-x="163" /> | |||||
<glyph unicode=" " horiz-adv-x="260" /> | |||||
<glyph unicode=" " horiz-adv-x="72" /> | |||||
<glyph unicode=" " horiz-adv-x="260" /> | |||||
<glyph unicode=" " horiz-adv-x="326" /> | |||||
<glyph unicode="€" d="M800 500h-300q9 -74 33 -132t52.5 -91t62 -54.5t59 -29t46.5 -7.5q29 0 66 13t75 37t63.5 67.5t25.5 96.5h174q-31 -172 -128 -278q-107 -117 -274 -117q-205 0 -324 158q-36 46 -69 131.5t-45 205.5h-217l100 100h113q0 47 5 100h-218l100 100h135q37 167 112 257 q117 141 297 141q242 0 354 -189q60 -103 66 -209h-181q0 55 -25.5 99t-63.5 68t-75 36.5t-67 12.5q-24 0 -52.5 -10t-62.5 -32t-65.5 -67t-50.5 -107h379l-100 -100h-300q-6 -46 -6 -100h406z" /> | |||||
<glyph unicode="−" d="M1100 700h-900v-300h900v300z" /> | |||||
<glyph unicode="☁" d="M178 300h750q120 0 205 86t85 208q0 120 -85 206.5t-205 86.5q-46 0 -90 -14q-44 97 -134.5 156.5t-200.5 59.5q-152 0 -260 -107.5t-108 -260.5q0 -25 2 -37q-66 -14 -108.5 -67.5t-42.5 -122.5q0 -80 56.5 -137t135.5 -57z" /> | |||||
<glyph unicode="✉" d="M1200 1100h-1200l600 -603zM300 600l-300 -300v600zM1200 900v-600l-300 300zM800 500l400 -400h-1200l400 400l200 -200z" /> | |||||
<glyph unicode="✏" d="M1101 889l99 92q13 13 13 32.5t-13 33.5l-153 153q-15 13 -33 13t-33 -13l-94 -97zM401 189l614 614l-214 214l-614 -614zM-13 -13l333 112l-223 223z" /> | |||||
<glyph unicode="" horiz-adv-x="500" d="M0 0z" /> | |||||
<glyph unicode="" d="M700 100h300v-100h-800v100h300v550l-500 550h1200l-500 -550v-550z" /> | |||||
<glyph unicode="" d="M1000 934v-521q-64 16 -138 -7q-79 -26 -122.5 -83t-25.5 -111q17 -55 85.5 -75.5t147.5 4.5q70 23 111.5 63.5t41.5 95.5v881q0 10 -7 15.5t-17 2.5l-752 -193q-10 -3 -17 -12.5t-7 -19.5v-689q-64 17 -138 -7q-79 -25 -122.5 -82t-25.5 -112t86 -75.5t147 5.5 q65 21 109 69t44 90v606z" /> | |||||
<glyph unicode="" d="M913 432l300 -300q7 -8 7 -18t-7 -18l-109 -109q-8 -7 -18 -7t-18 7l-300 300q-119 -78 -261 -78q-200 0 -342 142t-142 342t142 342t342 142t342 -142t142 -342q0 -142 -78 -261zM176 693q0 -136 97 -233t234 -97t233.5 96.5t96.5 233.5t-96.5 233.5t-233.5 96.5 t-234 -97t-97 -233z" /> | |||||
<glyph unicode="" d="M649 949q48 69 109.5 105t121.5 38t118.5 -20.5t102.5 -64t71 -100.5t27 -123q0 -57 -33.5 -117.5t-94 -124.5t-126.5 -127.5t-150 -152.5t-146 -174q-62 85 -145.5 174t-149.5 152.5t-126.5 127.5t-94 124.5t-33.5 117.5q0 64 28 123t73 100.5t104.5 64t119 20.5 t120 -38.5t104.5 -104.5z" /> | |||||
<glyph unicode="" d="M791 522l145 -449l-384 275l-382 -275l146 447l-388 280h479l146 400h2l146 -400h472zM168 71l2 1z" /> | |||||
<glyph unicode="" d="M791 522l145 -449l-384 275l-382 -275l146 447l-388 280h479l146 400h2l146 -400h472zM747 331l-74 229l193 140h-235l-77 211l-78 -211h-239l196 -142l-73 -226l192 140zM168 71l2 1z" /> | |||||
<glyph unicode="" d="M1200 143v-143h-1200v143l400 257v100q-37 0 -68.5 74.5t-31.5 125.5v200q0 124 88 212t212 88t212 -88t88 -212v-200q0 -51 -31.5 -125.5t-68.5 -74.5v-100z" /> | |||||
<glyph unicode="" d="M1200 1100v-1100h-1200v1100h1200zM200 1000h-100v-100h100v100zM900 1000h-600v-400h600v400zM1100 1000h-100v-100h100v100zM200 800h-100v-100h100v100zM1100 800h-100v-100h100v100zM200 600h-100v-100h100v100zM1100 600h-100v-100h100v100zM900 500h-600v-400h600 v400zM200 400h-100v-100h100v100zM1100 400h-100v-100h100v100zM200 200h-100v-100h100v100zM1100 200h-100v-100h100v100z" /> | |||||
<glyph unicode="" d="M500 1050v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-400q-21 0 -35.5 14.5t-14.5 35.5v400q0 21 14.5 35.5t35.5 14.5h400q21 0 35.5 -14.5t14.5 -35.5zM1100 1050v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-400q-21 0 -35.5 14.5t-14.5 35.5v400q0 21 14.5 35.5t35.5 14.5h400 q21 0 35.5 -14.5t14.5 -35.5zM500 450v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-400q-21 0 -35.5 14.5t-14.5 35.5v400q0 21 14.5 35.5t35.5 14.5h400q21 0 35.5 -14.5t14.5 -35.5zM1100 450v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-400q-21 0 -35.5 14.5t-14.5 35.5v400 q0 21 14.5 35.5t35.5 14.5h400q21 0 35.5 -14.5t14.5 -35.5z" /> | |||||
<glyph unicode="" d="M300 1050v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5h200q21 0 35.5 -14.5t14.5 -35.5zM700 1050v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5h200 q21 0 35.5 -14.5t14.5 -35.5zM1100 1050v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5h200q21 0 35.5 -14.5t14.5 -35.5zM300 650v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v200 q0 21 14.5 35.5t35.5 14.5h200q21 0 35.5 -14.5t14.5 -35.5zM700 650v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5h200q21 0 35.5 -14.5t14.5 -35.5zM1100 650v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200 q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5h200q21 0 35.5 -14.5t14.5 -35.5zM300 250v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5h200q21 0 35.5 -14.5t14.5 -35.5zM700 250v-200 q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5h200q21 0 35.5 -14.5t14.5 -35.5zM1100 250v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5h200q21 0 35.5 -14.5 t14.5 -35.5z" /> | |||||
<glyph unicode="" d="M300 1050v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5h200q21 0 35.5 -14.5t14.5 -35.5zM1200 1050v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-700q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5h700 q21 0 35.5 -14.5t14.5 -35.5zM300 450v200q0 21 -14.5 35.5t-35.5 14.5h-200q-21 0 -35.5 -14.5t-14.5 -35.5v-200q0 -21 14.5 -35.5t35.5 -14.5h200q21 0 35.5 14.5t14.5 35.5zM1200 650v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-700q-21 0 -35.5 14.5t-14.5 35.5v200 q0 21 14.5 35.5t35.5 14.5h700q21 0 35.5 -14.5t14.5 -35.5zM300 250v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5h200q21 0 35.5 -14.5t14.5 -35.5zM1200 250v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-700 q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5h700q21 0 35.5 -14.5t14.5 -35.5z" /> | |||||
<glyph unicode="" d="M448 34l818 820l-212 212l-607 -607l-206 207l-212 -212z" /> | |||||
<glyph unicode="" d="M882 106l-282 282l-282 -282l-212 212l282 282l-282 282l212 212l282 -282l282 282l212 -212l-282 -282l282 -282z" /> | |||||
<glyph unicode="" d="M913 432l300 -300q7 -8 7 -18t-7 -18l-109 -109q-8 -7 -18 -7t-18 7l-300 300q-119 -78 -261 -78q-200 0 -342 142t-142 342t142 342t342 142t342 -142t142 -342q0 -142 -78 -261zM507 363q137 0 233.5 96.5t96.5 233.5t-96.5 233.5t-233.5 96.5t-234 -97t-97 -233 t97 -233t234 -97zM600 800h100v-200h-100v-100h-200v100h-100v200h100v100h200v-100z" /> | |||||
<glyph unicode="" d="M913 432l300 -299q7 -7 7 -18t-7 -18l-109 -109q-8 -8 -18 -8t-18 8l-300 299q-120 -77 -261 -77q-200 0 -342 142t-142 342t142 342t342 142t342 -142t142 -342q0 -141 -78 -262zM176 694q0 -136 97 -233t234 -97t233.5 97t96.5 233t-96.5 233t-233.5 97t-234 -97 t-97 -233zM300 801v-200h400v200h-400z" /> | |||||
<glyph unicode="" d="M700 750v400q0 21 -14.5 35.5t-35.5 14.5h-100q-21 0 -35.5 -14.5t-14.5 -35.5v-400q0 -21 14.5 -35.5t35.5 -14.5h100q21 0 35.5 14.5t14.5 35.5zM800 975v166q167 -62 272 -210t105 -331q0 -118 -45.5 -224.5t-123 -184t-184 -123t-224.5 -45.5t-224.5 45.5t-184 123 t-123 184t-45.5 224.5q0 183 105 331t272 210v-166q-103 -55 -165 -155t-62 -220q0 -177 125 -302t302 -125t302 125t125 302q0 120 -62 220t-165 155z" /> | |||||
<glyph unicode="" d="M1200 1h-200v1200h200v-1200zM900 1h-200v800h200v-800zM600 1h-200v500h200v-500zM300 301h-200v-300h200v300z" /> | |||||
<glyph unicode="" d="M488 183l38 -151q40 -5 74 -5q27 0 74 5l38 151l6 2q46 13 93 39l5 3l134 -81q56 44 104 105l-80 134l3 5q24 44 39 93l1 6l152 38q5 40 5 74q0 28 -5 73l-152 38l-1 6q-16 51 -39 93l-3 5l80 134q-44 58 -104 105l-134 -81l-5 3q-45 25 -93 39l-6 1l-38 152q-40 5 -74 5 q-27 0 -74 -5l-38 -152l-5 -1q-50 -14 -94 -39l-5 -3l-133 81q-59 -47 -105 -105l80 -134l-3 -5q-25 -47 -38 -93l-2 -6l-151 -38q-6 -48 -6 -73q0 -33 6 -74l151 -38l2 -6q14 -49 38 -93l3 -5l-80 -134q45 -59 105 -105l133 81l5 -3q45 -26 94 -39zM600 815q89 0 152 -63 t63 -151q0 -89 -63 -152t-152 -63t-152 63t-63 152q0 88 63 151t152 63z" /> | |||||
<glyph unicode="" d="M900 1100h275q10 0 17.5 -7.5t7.5 -17.5v-50q0 -11 -7 -18t-18 -7h-1050q-11 0 -18 7t-7 18v50q0 10 7.5 17.5t17.5 7.5h275v100q0 41 29.5 70.5t70.5 29.5h300q41 0 70.5 -29.5t29.5 -70.5v-100zM800 1100v100h-300v-100h300zM200 900h900v-800q0 -41 -29.5 -71 t-70.5 -30h-700q-41 0 -70.5 30t-29.5 71v800zM300 100h100v700h-100v-700zM500 100h100v700h-100v-700zM700 100h100v700h-100v-700zM900 100h100v700h-100v-700z" /> | |||||
<glyph unicode="" d="M1301 601h-200v-600h-300v400h-300v-400h-300v600h-200l656 644z" /> | |||||
<glyph unicode="" d="M600 700h400v-675q0 -11 -7 -18t-18 -7h-850q-11 0 -18 7t-7 18v1150q0 11 7 18t18 7h475v-500zM1000 800h-300v300z" /> | |||||
<glyph unicode="" d="M600 1196q162 0 299 -80t217 -217t80 -299t-80 -299t-217 -217t-299 -80t-299 80t-217 217t-80 299t80 299t217 217t299 80zM600 1014q-171 0 -292.5 -121.5t-121.5 -292.5t121.5 -292.5t292.5 -121.5t292.5 121.5t121.5 292.5t-121.5 292.5t-292.5 121.5zM600 600h200 v-100h-300v400h100v-300z" /> | |||||
<glyph unicode="" d="M721 400h-242l-40 -400h-539l431 1200h209l-21 -300h162l-20 300h208l431 -1200h-538zM712 500l-27 300h-170l-27 -300h224z" /> | |||||
<glyph unicode="" d="M1100 400v-400h-1100v400h490l-290 300h200v500h300v-500h200l-290 -300h490zM988 300h-175v-100h175v100z" /> | |||||
<glyph unicode="" d="M600 1199q122 0 233 -47.5t191 -127.5t127.5 -191t47.5 -233t-47.5 -233t-127.5 -191t-191 -127.5t-233 -47.5t-233 47.5t-191 127.5t-127.5 191t-47.5 233t47.5 233t127.5 191t191 127.5t233 47.5zM600 1012q-170 0 -291 -121t-121 -291t121 -291t291 -121t291 121 t121 291t-121 291t-291 121zM700 600h150l-250 -300l-250 300h150v300h200v-300z" /> | |||||
<glyph unicode="" d="M600 1196q162 0 299 -80t217 -217t80 -299t-80 -299t-217 -217t-299 -80t-299 80t-217 217t-80 299t80 299t217 217t299 80zM600 1014q-171 0 -292.5 -121.5t-121.5 -292.5t121.5 -292.5t292.5 -121.5t292.5 121.5t121.5 292.5t-121.5 292.5t-292.5 121.5zM850 600h-150 v-300h-200v300h-150l250 300z" /> | |||||
<glyph unicode="" d="M0 500l200 700h800q199 -700 200 -700v-475q0 -11 -7 -18t-18 -7h-1150q-11 0 -18 7t-7 18v475zM903 1000h-606l-97 -500h200l50 -200h300l50 200h200z" /> | |||||
<glyph unicode="" d="M600 1196q162 0 299 -80t217 -217t80 -299t-80 -299t-217 -217t-299 -80t-299 80t-217 217t-80 299t80 299t217 217t299 80zM600 1014q-171 0 -292.5 -121.5t-121.5 -292.5q0 -172 121.5 -293t292.5 -121t292.5 121t121.5 293q0 171 -121.5 292.5t-292.5 121.5zM797 598 l-297 -201v401z" /> | |||||
<glyph unicode="" d="M1177 600h-150q0 -177 -125 -302t-302 -125t-302 125t-125 302t125 302t302 125q136 0 246 -81l-146 -146h400v400l-145 -145q-157 122 -355 122q-118 0 -224.5 -45.5t-184 -123t-123 -184t-45.5 -224.5t45.5 -224.5t123 -184t184 -123t224.5 -45.5t224.5 45.5t184 123 t123 184t45.5 224.5z" /> | |||||
<glyph unicode="" d="M700 800l147 147q-112 80 -247 80q-177 0 -302 -125t-125 -302h-150q0 118 45.5 224.5t123 184t184 123t224.5 45.5q198 0 355 -122l145 145v-400h-400zM500 400l-147 -147q112 -80 247 -80q177 0 302 125t125 302h150q0 -118 -45.5 -224.5t-123 -184t-184 -123 t-224.5 -45.5q-198 0 -355 122l-145 -145v400h400z" /> | |||||
<glyph unicode="" d="M100 1200v-1200h1100v1200h-1100zM1100 100h-900v900h900v-900zM400 800h-100v100h100v-100zM1000 800h-500v100h500v-100zM400 600h-100v100h100v-100zM1000 600h-500v100h500v-100zM400 400h-100v100h100v-100zM1000 400h-500v100h500v-100zM400 200h-100v100h100v-100 zM1000 300h-500v-100h500v100z" /> | |||||
<glyph unicode="" d="M200 0h-100v1100h100v-1100zM1100 600v500q-40 -81 -101.5 -115.5t-127.5 -29.5t-138 25t-139.5 40t-125.5 25t-103 -29.5t-65 -115.5v-500q60 60 127.5 84t127.5 17.5t122 -23t119 -30t110 -11t103 42t91 120.5z" /> | |||||
<glyph unicode="" d="M1200 275v300q0 116 -49.5 227t-131 192.5t-192.5 131t-227 49.5t-227 -49.5t-192.5 -131t-131 -192.5t-49.5 -227v-300q0 -11 7 -18t18 -7h50q11 0 18 7t7 18v300q0 127 70.5 231.5t184.5 161.5t245 57t245 -57t184.5 -161.5t70.5 -231.5v-300q0 -11 7 -18t18 -7h50 q11 0 18 7t7 18zM400 480v-460q0 -8 -6 -14t-14 -6h-160q-8 0 -14 6t-6 14v460q0 8 6 14t14 6h160q8 0 14 -6t6 -14zM1000 480v-460q0 -8 -6 -14t-14 -6h-160q-8 0 -14 6t-6 14v460q0 8 6 14t14 6h160q8 0 14 -6t6 -14z" /> | |||||
<glyph unicode="" d="M0 800v-400h300l300 -200v800l-300 -200h-300zM971 600l141 -141l-71 -71l-141 141l-141 -141l-71 71l141 141l-141 141l71 71l141 -141l141 141l71 -71z" /> | |||||
<glyph unicode="" d="M0 800v-400h300l300 -200v800l-300 -200h-300zM700 857l69 53q111 -135 111 -310q0 -169 -106 -302l-67 54q86 110 86 248q0 146 -93 257z" /> | |||||
<glyph unicode="" d="M974 186l6 8q142 178 142 405q0 230 -144 408l-6 8l-83 -64l7 -8q123 -151 123 -344q0 -189 -119 -339l-7 -8zM300 801l300 200v-800l-300 200h-300v400h300zM702 858l69 53q111 -135 111 -310q0 -170 -106 -303l-67 55q86 110 86 248q0 145 -93 257z" /> | |||||
<glyph unicode="" d="M100 700h400v100h100v100h-100v300h-500v-600h100v100zM1200 700v500h-600v-200h100v-300h200v-300h300v200h-200v100h200zM100 1100h300v-300h-300v300zM800 800v300h300v-300h-300zM200 900h100v100h-100v-100zM900 1000h100v-100h-100v100zM300 600h-100v-100h-200 v-500h500v500h-200v100zM900 200v-100h-200v100h-100v100h100v200h-200v100h300v-300h200v-100h-100zM400 400v-300h-300v300h300zM300 200h-100v100h100v-100zM1100 300h100v-100h-100v100zM600 100h100v-100h-100v100zM1200 100v-100h-300v100h300z" /> | |||||
<glyph unicode="" d="M100 1200h-100v-1000h100v1000zM300 200h-100v1000h100v-1000zM700 200h-200v1000h200v-1000zM900 200h-100v1000h100v-1000zM1200 1200v-1000h-200v1000h200zM400 100v-100h-300v100h300zM500 91h100v-91h-100v91zM700 91h100v-91h-100v91zM1100 91v-91h-200v91h200z " /> | |||||
<glyph unicode="" d="M1200 500l-500 -500l-699 700v475q0 10 7.5 17.5t17.5 7.5h474zM320 882q29 29 29 71t-29 71q-30 30 -71.5 30t-71.5 -30q-29 -29 -29 -71t29 -71q30 -30 71.5 -30t71.5 30z" /> | |||||
<glyph unicode="" d="M1201 500l-500 -500l-699 700v475q0 11 7 18t18 7h474zM1501 500l-500 -500l-50 50l450 450l-700 700h100zM320 882q30 29 30 71t-30 71q-29 30 -71 30t-71 -30q-30 -29 -30 -71t30 -71q29 -30 71 -30t71 30z" /> | |||||
<glyph unicode="" d="M1200 1200v-1000l-100 -100v1000h-750l-100 -100h750v-1000h-900v1025l175 175h925z" /> | |||||
<glyph unicode="" d="M947 829l-94 346q-2 11 -10 18t-18 7h-450q-10 0 -18 -7t-10 -18l-94 -346l40 -124h592zM1200 800v-700h-200v200h-800v-200h-200v700h200l100 -200h600l100 200h200zM881 176l38 -152q2 -10 -3.5 -17t-15.5 -7h-600q-10 0 -15.5 7t-3.5 17l38 152q2 10 11.5 17t19.5 7 h500q10 0 19.5 -7t11.5 -17z" /> | |||||
<glyph unicode="" d="M1200 0v66q-34 1 -74 43q-18 19 -33 42t-21 37l-6 13l-385 998h-93l-399 -1006q-24 -48 -52 -75q-12 -12 -33 -25t-36 -20l-15 -7v-66h365v66q-41 0 -72 11t-49 38t1 71l92 234h391l82 -222q16 -45 -5.5 -88.5t-74.5 -43.5v-66h417zM416 521l178 457l46 -140l116 -317 h-340z" /> | |||||
<glyph unicode="" d="M100 1199h471q120 0 213 -88t93 -228q0 -55 -11.5 -101.5t-28 -74t-33.5 -47.5t-28 -28l-12 -7q8 -3 21.5 -9t48 -31.5t60.5 -58t47.5 -91.5t21.5 -129q0 -84 -59 -156.5t-142 -111t-162 -38.5h-500v89q41 7 70.5 32.5t29.5 65.5v827q0 28 -1 39.5t-5.5 26t-15.5 21 t-29 14t-49 14.5v70zM400 1079v-379h139q76 0 130 61.5t54 138.5q0 82 -84 130.5t-239 48.5zM400 200h161q89 0 153 48.5t64 132.5q0 90 -62.5 154.5t-156.5 64.5h-159v-400z" /> | |||||
<glyph unicode="" d="M877 1200l2 -57q-33 -8 -62 -25.5t-46 -37t-29.5 -38t-17.5 -30.5l-5 -12l-128 -825q-10 -52 14 -82t95 -36v-57h-500v57q77 7 134.5 40.5t65.5 80.5l173 849q10 56 -10 74t-91 37q-6 1 -10.5 2.5t-9.5 2.5v57h425z" /> | |||||
<glyph unicode="" d="M1150 1200h150v-300h-50q0 29 -8 48.5t-18.5 30t-33.5 15t-39.5 5.5t-50.5 1h-200v-850l100 -50v-100h-400v100l100 50v850h-200q-34 0 -50.5 -1t-40 -5.5t-33.5 -15t-18.5 -30t-8.5 -48.5h-49v300h150h700zM100 1000v-800h75l-125 -167l-125 167h75v800h-75l125 167 l125 -167h-75z" /> | |||||
<glyph unicode="" d="M950 1201h150v-300h-50q0 29 -8 48.5t-18 30t-33.5 15t-40 5.5t-50.5 1h-200v-650l100 -50v-100h-400v100l100 50v650h-200q-34 0 -50.5 -1t-39.5 -5.5t-33.5 -15t-18.5 -30t-8 -48.5h-50v300h150h700zM200 101h800v75l167 -125l-167 -125v75h-800v-75l-167 125l167 125 v-75z" /> | |||||
<glyph unicode="" d="M700 950v100q0 21 -14.5 35.5t-35.5 14.5h-600q-21 0 -35.5 -14.5t-14.5 -35.5v-100q0 -20 14.5 -35t35.5 -15h600q21 0 35.5 15t14.5 35zM1100 650v100q0 21 -14.5 35.5t-35.5 14.5h-1000q-21 0 -35.5 -14.5t-14.5 -35.5v-100q0 -20 14.5 -35t35.5 -15h1000 q21 0 35.5 15t14.5 35zM900 350v100q0 21 -14.5 35.5t-35.5 14.5h-800q-21 0 -35.5 -14.5t-14.5 -35.5v-100q0 -20 14.5 -35t35.5 -15h800q21 0 35.5 15t14.5 35zM1200 50v100q0 21 -14.5 35.5t-35.5 14.5h-1100q-21 0 -35.5 -14.5t-14.5 -35.5v-100q0 -20 14.5 -35 t35.5 -15h1100q21 0 35.5 15t14.5 35z" /> | |||||
<glyph unicode="" d="M1000 950v100q0 21 -14.5 35.5t-35.5 14.5h-700q-21 0 -35.5 -14.5t-14.5 -35.5v-100q0 -20 14.5 -35t35.5 -15h700q21 0 35.5 15t14.5 35zM1200 650v100q0 21 -14.5 35.5t-35.5 14.5h-1100q-21 0 -35.5 -14.5t-14.5 -35.5v-100q0 -20 14.5 -35t35.5 -15h1100 q21 0 35.5 15t14.5 35zM1000 350v100q0 21 -14.5 35.5t-35.5 14.5h-700q-21 0 -35.5 -14.5t-14.5 -35.5v-100q0 -20 14.5 -35t35.5 -15h700q21 0 35.5 15t14.5 35zM1200 50v100q0 21 -14.5 35.5t-35.5 14.5h-1100q-21 0 -35.5 -14.5t-14.5 -35.5v-100q0 -20 14.5 -35 t35.5 -15h1100q21 0 35.5 15t14.5 35z" /> | |||||
<glyph unicode="" d="M500 950v100q0 21 14.5 35.5t35.5 14.5h600q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-600q-21 0 -35.5 15t-14.5 35zM100 650v100q0 21 14.5 35.5t35.5 14.5h1000q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-1000q-21 0 -35.5 15 t-14.5 35zM300 350v100q0 21 14.5 35.5t35.5 14.5h800q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-800q-21 0 -35.5 15t-14.5 35zM0 50v100q0 21 14.5 35.5t35.5 14.5h1100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-1100 q-21 0 -35.5 15t-14.5 35z" /> | |||||
<glyph unicode="" d="M0 950v100q0 21 14.5 35.5t35.5 14.5h1100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-1100q-21 0 -35.5 15t-14.5 35zM0 650v100q0 21 14.5 35.5t35.5 14.5h1100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-1100q-21 0 -35.5 15 t-14.5 35zM0 350v100q0 21 14.5 35.5t35.5 14.5h1100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-1100q-21 0 -35.5 15t-14.5 35zM0 50v100q0 21 14.5 35.5t35.5 14.5h1100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-1100 q-21 0 -35.5 15t-14.5 35z" /> | |||||
<glyph unicode="" d="M0 950v100q0 21 14.5 35.5t35.5 14.5h100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-100q-21 0 -35.5 15t-14.5 35zM300 950v100q0 21 14.5 35.5t35.5 14.5h800q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-800q-21 0 -35.5 15 t-14.5 35zM0 650v100q0 21 14.5 35.5t35.5 14.5h100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-100q-21 0 -35.5 15t-14.5 35zM300 650v100q0 21 14.5 35.5t35.5 14.5h800q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-800 q-21 0 -35.5 15t-14.5 35zM0 350v100q0 21 14.5 35.5t35.5 14.5h100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-100q-21 0 -35.5 15t-14.5 35zM300 350v100q0 21 14.5 35.5t35.5 14.5h800q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15 h-800q-21 0 -35.5 15t-14.5 35zM0 50v100q0 21 14.5 35.5t35.5 14.5h100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-100q-21 0 -35.5 15t-14.5 35zM300 50v100q0 21 14.5 35.5t35.5 14.5h800q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15 h-800q-21 0 -35.5 15t-14.5 35z" /> | |||||
<glyph unicode="" d="M400 1100h-100v-1100h100v1100zM700 950v100q0 21 -15 35.5t-35 14.5h-100q-21 0 -35.5 -14.5t-14.5 -35.5v-100q0 -20 14.5 -35t35.5 -15h100q20 0 35 15t15 35zM1100 650v100q0 21 -15 35.5t-35 14.5h-500q-21 0 -35.5 -14.5t-14.5 -35.5v-100q0 -20 14.5 -35t35.5 -15 h500q20 0 35 15t15 35zM100 425v75h-201v100h201v75l166 -125zM900 350v100q0 21 -15 35.5t-35 14.5h-300q-21 0 -35.5 -14.5t-14.5 -35.5v-100q0 -20 14.5 -35t35.5 -15h300q20 0 35 15t15 35zM1200 50v100q0 21 -15 35.5t-35 14.5h-600q-21 0 -35.5 -14.5t-14.5 -35.5 v-100q0 -20 14.5 -35t35.5 -15h600q20 0 35 15t15 35z" /> | |||||
<glyph unicode="" d="M201 950v100q0 21 -15 35.5t-35 14.5h-100q-21 0 -35.5 -14.5t-14.5 -35.5v-100q0 -20 14.5 -35t35.5 -15h100q20 0 35 15t15 35zM801 1100h100v-1100h-100v1100zM601 650v100q0 21 -15 35.5t-35 14.5h-500q-21 0 -35.5 -14.5t-14.5 -35.5v-100q0 -20 14.5 -35t35.5 -15 h500q20 0 35 15t15 35zM1101 425v75h200v100h-200v75l-167 -125zM401 350v100q0 21 -15 35.5t-35 14.5h-300q-21 0 -35.5 -14.5t-14.5 -35.5v-100q0 -20 14.5 -35t35.5 -15h300q20 0 35 15t15 35zM701 50v100q0 21 -15 35.5t-35 14.5h-600q-21 0 -35.5 -14.5t-14.5 -35.5 v-100q0 -20 14.5 -35t35.5 -15h600q20 0 35 15t15 35z" /> | |||||
<glyph unicode="" d="M900 925v-650q0 -31 -22 -53t-53 -22h-750q-31 0 -53 22t-22 53v650q0 31 22 53t53 22h750q31 0 53 -22t22 -53zM1200 300l-300 300l300 300v-600z" /> | |||||
<glyph unicode="" d="M1200 1056v-1012q0 -18 -12.5 -31t-31.5 -13h-1112q-18 0 -31 13t-13 31v1012q0 18 13 31t31 13h1112q19 0 31.5 -13t12.5 -31zM1100 1000h-1000v-737l247 182l298 -131l-74 156l293 318l236 -288v500zM476 750q0 -56 -39 -95t-95 -39t-95 39t-39 95t39 95t95 39t95 -39 t39 -95z" /> | |||||
<glyph unicode="" d="M600 1213q123 0 227 -63t164.5 -169.5t60.5 -229.5t-73 -272q-73 -114 -166.5 -237t-150.5 -189l-57 -66q-10 9 -27 26t-66.5 70.5t-96 109t-104 135.5t-100.5 155q-63 139 -63 262q0 124 60.5 231.5t165 172t226.5 64.5zM599 514q107 0 182.5 75.5t75.5 182.5t-75.5 182 t-182.5 75t-182 -75.5t-75 -181.5q0 -107 75.5 -182.5t181.5 -75.5z" /> | |||||
<glyph unicode="" d="M600 1199q122 0 233 -47.5t191 -127.5t127.5 -191t47.5 -233t-47.5 -233t-127.5 -191t-191 -127.5t-233 -47.5t-233 47.5t-191 127.5t-127.5 191t-47.5 233t47.5 233t127.5 191t191 127.5t233 47.5zM600 173v854q-176 0 -301.5 -125t-125.5 -302t125.5 -302t301.5 -125z " /> | |||||
<glyph unicode="" d="M554 1295q21 -71 57.5 -142.5t76 -130.5t83 -118.5t82 -117t70 -116t50 -125.5t18.5 -136q0 -89 -39 -165.5t-102 -126.5t-140 -79.5t-156 -33.5q-114 6 -211.5 53t-161.5 138.5t-64 210.5q0 94 34 186t88.5 172.5t112 159t115 177t87.5 194.5zM455 296q-7 6 -18 17 t-34 48t-33 77q-15 73 -14 143.5t10 122.5l9 51q-92 -110 -119.5 -185t-12.5 -156q14 -82 59.5 -136t136.5 -80z" /> | |||||
<glyph unicode="" d="M1108 902l113 113l-21 85l-92 28l-113 -113zM1100 625v-225q0 -165 -117.5 -282.5t-282.5 -117.5h-300q-165 0 -282.5 117.5t-117.5 282.5v300q0 165 117.5 282.5t282.5 117.5q366 -6 397 -14l-186 -186h-311q-41 0 -70.5 -29.5t-29.5 -70.5v-500q0 -41 29.5 -70.5 t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5v125zM436 341l161 50l412 412l-114 113l-405 -405z" /> | |||||
<glyph unicode="" d="M1100 453v-53q0 -165 -117.5 -282.5t-282.5 -117.5h-300q-165 0 -282.5 117.5t-117.5 282.5v300q0 165 117.5 282.5t282.5 117.5h261l2 -80q-133 -32 -218 -120h-145q-41 0 -70.5 -29.5t-29.5 -70.5v-500q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5z M813 431l360 324l-359 318v-216q-7 0 -19 -1t-48 -8t-69.5 -18.5t-76.5 -37t-76.5 -59t-62 -88t-39.5 -121.5q30 38 81.5 64t103 35.5t99 14t77.5 3.5l29 -1v-209z" /> | |||||
<glyph unicode="" d="M1100 569v-169q0 -165 -117.5 -282.5t-282.5 -117.5h-300q-165 0 -282.5 117.5t-117.5 282.5v300q0 165 117.5 282.5t282.5 117.5h300q60 0 127 -23l-178 -177h-349q-41 0 -70.5 -29.5t-29.5 -70.5v-500q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5v69z M625 348l566 567l-136 137l-430 -431l-147 147l-136 -136z" /> | |||||
<glyph unicode="" d="M900 303v198h-200v-200h195l-295 -300l-300 300h200v200h-200v-198l-300 300l300 296v-198h200v200h-200l300 300l295 -300h-195v-200h200v198l300 -296z" /> | |||||
<glyph unicode="" d="M900 0l-500 488v-438q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v1000q0 21 14.5 35.5t35.5 14.5h100q21 0 35.5 -14.5t14.5 -35.5v-437l500 487v-1100z" /> | |||||
<glyph unicode="" d="M1200 0l-500 488v-488l-500 488v-438q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v1000q0 21 14.5 35.5t35.5 14.5h100q21 0 35.5 -14.5t14.5 -35.5v-437l500 487v-487l500 487v-1100z" /> | |||||
<glyph unicode="" d="M1200 0l-500 488v-488l-564 550l564 550v-487l500 487v-1100z" /> | |||||
<glyph unicode="" d="M1100 550l-900 550v-1100z" /> | |||||
<glyph unicode="" d="M500 150v800q0 21 -14.5 35.5t-35.5 14.5h-200q-21 0 -35.5 -14.5t-14.5 -35.5v-800q0 -21 14.5 -35.5t35.5 -14.5h200q21 0 35.5 14.5t14.5 35.5zM900 150v800q0 21 -14.5 35.5t-35.5 14.5h-200q-21 0 -35.5 -14.5t-14.5 -35.5v-800q0 -21 14.5 -35.5t35.5 -14.5h200 q21 0 35.5 14.5t14.5 35.5z" /> | |||||
<glyph unicode="" d="M1100 150v800q0 21 -14.5 35.5t-35.5 14.5h-800q-21 0 -35.5 -14.5t-14.5 -35.5v-800q0 -20 14.5 -35t35.5 -15h800q21 0 35.5 15t14.5 35z" /> | |||||
<glyph unicode="" d="M500 0v488l-500 -488v1100l500 -487v487l564 -550z" /> | |||||
<glyph unicode="" d="M1050 1100h100q21 0 35.5 -14.5t14.5 -35.5v-1000q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v438l-500 -488v488l-500 -488v1100l500 -487v487l500 -487v437q0 21 14.5 35.5t35.5 14.5z" /> | |||||
<glyph unicode="" d="M850 1100h100q21 0 35.5 -14.5t14.5 -35.5v-1000q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v438l-500 -488v1100l500 -487v437q0 21 14.5 35.5t35.5 14.5z" /> | |||||
<glyph unicode="" d="M650 1064l-550 -564h1100zM1200 350v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-1000q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5h1000q21 0 35.5 -14.5t14.5 -35.5z" /> | |||||
<glyph unicode="" d="M777 7l240 240l-353 353l353 353l-240 240l-592 -594z" /> | |||||
<glyph unicode="" d="M513 -46l-241 240l353 353l-353 353l241 240l572 -571l21 -22l-1 -1v-1z" /> | |||||
<glyph unicode="" d="M600 1197q162 0 299.5 -80t217.5 -217.5t80 -299.5t-80 -299.5t-217.5 -217.5t-299.5 -80t-299.5 80t-217.5 217.5t-80 299.5t80 299.5t217.5 217.5t299.5 80zM500 900v-200h-200v-200h200v-200h200v200h200v200h-200v200h-200z" /> | |||||
<glyph unicode="" d="M600 1197q162 0 299.5 -80t217.5 -217.5t80 -299.5t-80 -299.5t-217.5 -217.5t-299.5 -80t-299.5 80t-217.5 217.5t-80 299.5t80 299.5t217.5 217.5t299.5 80zM300 700v-200h600v200h-600z" /> | |||||
<glyph unicode="" d="M600 1197q162 0 299.5 -80t217.5 -217.5t80 -299.5t-80 -299.5t-217.5 -217.5t-299.5 -80t-299.5 80t-217.5 217.5t-80 299.5t80 299.5t217.5 217.5t299.5 80zM247 741l141 -141l-142 -141l213 -213l141 142l141 -142l213 213l-142 141l142 141l-213 212l-141 -141 l-141 142z" /> | |||||
<glyph unicode="" d="M600 1197q162 0 299.5 -80t217.5 -217.5t80 -299.5t-80 -299.5t-217.5 -217.5t-299.5 -80t-299.5 80t-217.5 217.5t-80 299.5t80 299.5t217.5 217.5t299.5 80zM546 623l-102 102l-174 -174l276 -277l411 411l-175 174z" /> | |||||
<glyph unicode="" d="M600 1197q162 0 299.5 -80t217.5 -217.5t80 -299.5t-80 -299.5t-217.5 -217.5t-299.5 -80t-299.5 80t-217.5 217.5t-80 299.5t80 299.5t217.5 217.5t299.5 80zM500 500h200q5 3 14 8t31.5 25.5t39.5 45.5t31 69t14 94q0 51 -17.5 89t-42 58t-58.5 32t-58.5 15t-51.5 3 q-105 0 -172 -56t-67 -183h144q4 0 11.5 -1t11 -1t6.5 3t3 9t1 11t3.5 8.5t3.5 6t5.5 4t6.5 2.5t9 1.5t9 0.5h11.5h12.5q19 0 30 -10t11 -26q0 -22 -4 -28t-27 -22q-5 -1 -12.5 -3t-27 -13.5t-34 -27t-26.5 -46t-11 -68.5zM500 400v-100h200v100h-200z" /> | |||||
<glyph unicode="" d="M600 1197q162 0 299.5 -80t217.5 -217.5t80 -299.5t-80 -299.5t-217.5 -217.5t-299.5 -80t-299.5 80t-217.5 217.5t-80 299.5t80 299.5t217.5 217.5t299.5 80zM500 900v-100h200v100h-200zM400 700v-100h100v-200h-100v-100h400v100h-100v300h-300z" /> | |||||
<glyph unicode="" d="M1200 700v-200h-203q-25 -102 -116.5 -186t-180.5 -117v-197h-200v197q-140 27 -208 102.5t-98 200.5h-194v200h194q15 60 36 104.5t55.5 86t88 69t126.5 40.5v200h200v-200q54 -20 113 -60t112.5 -105.5t71.5 -134.5h203zM700 500v-206q149 48 201 206h-201v200h200 q-25 74 -76 127.5t-124 76.5v-204h-200v203q-75 -24 -130 -77.5t-79 -125.5h209v-200h-210q24 -73 79.5 -127.5t130.5 -78.5v206h200z" /> | |||||
<glyph unicode="" d="M600 1196q162 0 299 -80t217 -217t80 -299t-80 -299t-217 -217t-299 -80t-299 80t-217 217t-80 299t80 299t217 217t299 80zM600 1014q-171 0 -292.5 -121.5t-121.5 -292.5t121.5 -292.5t292.5 -121.5t292.5 121.5t121.5 292.5t-121.5 292.5t-292.5 121.5zM844 735 l-135 -135l135 -135l-109 -109l-135 135l-135 -135l-109 109l135 135l-135 135l109 109l135 -135l135 135z" /> | |||||
<glyph unicode="" d="M600 1196q162 0 299 -80t217 -217t80 -299t-80 -299t-217 -217t-299 -80t-299 80t-217 217t-80 299t80 299t217 217t299 80zM600 1014q-171 0 -292.5 -121.5t-121.5 -292.5t121.5 -292.5t292.5 -121.5t292.5 121.5t121.5 292.5t-121.5 292.5t-292.5 121.5zM896 654 l-346 -345l-228 228l141 141l87 -87l204 205z" /> | |||||
<glyph unicode="" d="M600 1196q162 0 299 -80t217 -217t80 -299t-80 -299t-217 -217t-299 -80t-299 80t-217 217t-80 299t80 299t217 217t299 80zM248 385l568 567q-100 62 -216 62q-171 0 -292.5 -121.5t-121.5 -292.5q0 -115 62 -215zM955 809l-564 -564q97 -59 209 -59q171 0 292.5 121.5 t121.5 292.5q0 112 -59 209z" /> | |||||
<glyph unicode="" d="M1200 400h-600v-301l-600 448l600 453v-300h600v-300z" /> | |||||
<glyph unicode="" d="M600 400h-600v300h600v300l600 -453l-600 -448v301z" /> | |||||
<glyph unicode="" d="M1098 600h-298v-600h-300v600h-296l450 600z" /> | |||||
<glyph unicode="" d="M998 600l-449 -600l-445 600h296v600h300v-600h298z" /> | |||||
<glyph unicode="" d="M600 199v301q-95 -2 -183 -20t-170 -52t-147 -92.5t-100 -135.5q6 132 41 238.5t103.5 193t184 138t271.5 59.5v271l600 -453z" /> | |||||
<glyph unicode="" d="M1200 1200h-400l129 -129l-294 -294l142 -142l294 294l129 -129v400zM565 423l-294 -294l129 -129h-400v400l129 -129l294 294z" /> | |||||
<glyph unicode="" d="M871 730l129 -130h-400v400l129 -129l295 295l142 -141zM200 600h400v-400l-129 130l-295 -295l-142 141l295 295z" /> | |||||
<glyph unicode="" d="M600 1177q118 0 224.5 -45.5t184 -123t123 -184t45.5 -224.5t-45.5 -224.5t-123 -184t-184 -123t-224.5 -45.5t-224.5 45.5t-184 123t-123 184t-45.5 224.5t45.5 224.5t123 184t184 123t224.5 45.5zM686 549l58 302q4 20 -8 34.5t-33 14.5h-207q-20 0 -32 -14.5t-8 -34.5 l58 -302q4 -20 21.5 -34.5t37.5 -14.5h54q20 0 37.5 14.5t21.5 34.5zM700 400h-200v-100h200v100z" /> | |||||
<glyph unicode="" d="M1200 900h-111v6t-1 15t-3 18l-34 172q-11 39 -41.5 63t-69.5 24q-32 0 -61 -17l-239 -144q-22 -13 -40 -35q-19 24 -40 36l-238 144q-33 18 -62 18q-39 0 -69.5 -23t-40.5 -61l-35 -177q-2 -8 -3 -18t-1 -15v-6h-111v-100h100v-200h400v300h200v-300h400v200h100v100z M731 900l202 197q5 -12 12 -32.5t23 -64t25 -72t7 -28.5h-269zM481 900h-281q-3 0 14 48t35 96l18 47zM100 0h400v400h-400v-400zM700 400h400v-400h-400v400z" /> | |||||
<glyph unicode="" d="M0 121l216 193q-9 53 -13 83t-5.5 94t9 113t38.5 114t74 124q47 60 99.5 102.5t103 68t127.5 48t145.5 37.5t184.5 43.5t220 58.5q0 -189 -22 -343t-59 -258t-89 -181.5t-108.5 -120t-122 -68t-125.5 -30t-121.5 -1.5t-107.5 12.5t-87.5 17t-56.5 7.5l-99 -55l-201 -202 v143zM692 611q70 38 118.5 69.5t102 79t99 111.5t86.5 148q22 50 24 60t-6 19q-7 5 -17 5t-26.5 -14.5t-33.5 -39.5q-35 -51 -113.5 -108.5t-139.5 -89.5l-61 -32q-369 -197 -458 -401q-48 -111 -28.5 -117.5t86.5 76.5q55 66 367 234z" /> | |||||
<glyph unicode="" d="M1261 600l-26 -40q-6 -10 -20 -30t-49 -63.5t-74.5 -85.5t-97 -90t-116.5 -83.5t-132.5 -59t-145.5 -23.5t-145.5 23.5t-132.5 59t-116.5 83.5t-97 90t-74.5 85.5t-49 63.5t-20 30l-26 40l26 40q6 10 20 30t49 63.5t74.5 85.5t97 90t116.5 83.5t132.5 59t145.5 23.5 t145.5 -23.5t132.5 -59t116.5 -83.5t97 -90t74.5 -85.5t49 -63.5t20 -30zM600 240q64 0 123.5 20t100.5 45.5t85.5 71.5t66.5 75.5t58 81.5t47 66q-1 1 -28.5 37.5t-42 55t-43.5 53t-57.5 63.5t-58.5 54q49 -74 49 -163q0 -124 -88 -212t-212 -88t-212 88t-88 212 q0 85 46 158q-102 -87 -226 -258q7 -10 40.5 -58t56 -78.5t68 -77.5t87.5 -75t103 -49.5t125 -21.5zM484 762l-107 -106q49 -124 154 -191l105 105q-37 24 -75 72t-57 84z" /> | |||||
<glyph unicode="" d="M906 1200l-314 -1200h-148l37 143q-82 21 -165 71.5t-140 102t-109.5 112t-72 88.5t-29.5 43l-26 40l26 40q6 10 20 30t49 63.5t74.5 85.5t97 90t116.5 83.5t132.5 59t145.5 23.5q61 0 121 -17l37 142h148zM1261 600l-26 -40q-7 -12 -25.5 -38t-63.5 -79.5t-95.5 -102.5 t-124 -100t-146.5 -79l38 145q22 15 44.5 34t46 44t40.5 44t41 50.5t33.5 43.5t33 44t24.5 34q-97 127 -140 175l39 146q67 -54 131.5 -125.5t87.5 -103.5t36 -52zM513 264l37 141q-107 18 -178.5 101.5t-71.5 193.5q0 85 46 158q-102 -87 -226 -258q210 -282 393 -336z M484 762l-107 -106q49 -124 154 -191l47 47l23 87q-30 28 -59 69t-44 68z" /> | |||||
<glyph unicode="" d="M-47 0h1294q37 0 50.5 35.5t-7.5 67.5l-642 1056q-20 33 -48 36t-48 -29l-642 -1066q-21 -32 -7.5 -66t50.5 -34zM700 200v100h-200v-100h-345l445 723l445 -723h-345zM700 700h-200v-100l100 -300l100 300v100z" /> | |||||
<glyph unicode="" d="M800 711l363 -325q15 -14 26 -38.5t11 -44.5v-41q0 -20 -12 -26.5t-29 5.5l-359 249v-263q100 -91 100 -113v-64q0 -21 -13 -29t-32 1l-94 78h-222l-94 -78q-19 -9 -32 -1t-13 29v64q0 22 100 113v263l-359 -249q-17 -12 -29 -5.5t-12 26.5v41q0 20 11 44.5t26 38.5 l363 325v339q0 62 44 106t106 44t106 -44t44 -106v-339z" /> | |||||
<glyph unicode="" d="M941 800l-600 -600h-341v200h259l600 600h241v198l300 -295l-300 -300v197h-159zM381 678l141 142l-181 180h-341v-200h259zM1100 598l300 -295l-300 -300v197h-241l-181 181l141 142l122 -123h159v198z" /> | |||||
<glyph unicode="" d="M100 1100h1000q41 0 70.5 -29.5t29.5 -70.5v-600q0 -41 -29.5 -70.5t-70.5 -29.5h-596l-304 -300v300h-100q-41 0 -70.5 29.5t-29.5 70.5v600q0 41 29.5 70.5t70.5 29.5z" /> | |||||
<glyph unicode="" d="M400 900h-300v300h300v-300zM1100 900h-300v300h300v-300zM1100 800v-200q0 -42 -3 -83t-15 -104t-31.5 -116t-58 -109.5t-89 -96.5t-129 -65.5t-174.5 -25.5t-174.5 25.5t-129 65.5t-89 96.5t-58 109.5t-31.5 116t-15 104t-3 83v200h300v-250q0 -113 6 -145 q17 -92 102 -117q39 -11 92 -11q37 0 66.5 5.5t50 15.5t36 24t24 31.5t14 37.5t7 42t2.5 45t0 47v25v250h300z" /> | |||||
<glyph unicode="" d="M902 184l226 227l-578 579l-580 -579l227 -227l352 353z" /> | |||||
<glyph unicode="" d="M650 218l578 579l-226 227l-353 -353l-352 353l-227 -227z" /> | |||||
<glyph unicode="" d="M1198 400v600h-796l215 -200h381v-400h-198l299 -283l299 283h-200zM-198 700l299 283l300 -283h-203v-400h385l215 -200h-800v600h-196z" /> | |||||
<glyph unicode="" d="M1050 1200h94q20 0 35 -14.5t15 -35.5t-15 -35.5t-35 -14.5h-54l-201 -961q-2 -4 -6 -10.5t-19 -17.5t-33 -11h-31v-50q0 -20 -14.5 -35t-35.5 -15t-35.5 15t-14.5 35v50h-300v-50q0 -20 -14.5 -35t-35.5 -15t-35.5 15t-14.5 35v50h-50q-21 0 -35.5 15t-14.5 35 q0 21 14.5 35.5t35.5 14.5h535l48 200h-633q-32 0 -54.5 21t-27.5 43l-100 475q-5 24 10 42q14 19 39 19h896l38 162q5 17 18.5 27.5t30.5 10.5z" /> | |||||
<glyph unicode="" d="M1200 1000v-100h-1200v100h200q0 41 29.5 70.5t70.5 29.5h300q41 0 70.5 -29.5t29.5 -70.5h500zM0 800h1200v-800h-1200v800z" /> | |||||
<glyph unicode="" d="M201 800l-200 -400v600h200q0 41 29.5 70.5t70.5 29.5h300q41 0 70.5 -29.5t29.5 -70.5h500v-200h-1000zM1501 700l-300 -700h-1200l300 700h1200z" /> | |||||
<glyph unicode="" d="M302 300h198v600h-198l298 300l298 -300h-198v-600h198l-298 -300z" /> | |||||
<glyph unicode="" d="M900 303v197h-600v-197l-300 297l300 298v-198h600v198l300 -298z" /> | |||||
<glyph unicode="" d="M31 400l172 739q5 22 23 41.5t38 19.5h672q19 0 37.5 -22.5t23.5 -45.5l172 -732h-1138zM100 300h1000q41 0 70.5 -29.5t29.5 -70.5v-100q0 -41 -29.5 -70.5t-70.5 -29.5h-1000q-41 0 -70.5 29.5t-29.5 70.5v100q0 41 29.5 70.5t70.5 29.5zM900 200h-100v-100h100v100z M1100 200h-100v-100h100v100z" /> | |||||
<glyph unicode="" d="M1100 200v850q0 21 14.5 35.5t35.5 14.5q20 0 35 -14.5t15 -35.5v-850q0 -20 -15 -35t-35 -15q-21 0 -35.5 15t-14.5 35zM325 800l675 250v-850l-675 200h-38l47 -276q2 -12 -3 -17.5t-11 -6t-21 -0.5h-8h-83q-20 0 -34.5 14t-18.5 35q-56 337 -56 351v250v5 q0 13 0.5 18.5t2.5 13t8 10.5t15 3h200zM-101 600v50q0 24 25 49t50 38l25 13v-250l-11 5.5t-24 14t-30 21.5t-24 27.5t-11 31.5z" /> | |||||
<glyph unicode="" d="M445 1180l-45 -233l-224 78l78 -225l-233 -44l179 -156l-179 -155l233 -45l-78 -224l224 78l45 -233l155 179l155 -179l45 233l224 -78l-78 224l234 45l-180 155l180 156l-234 44l78 225l-224 -78l-45 233l-155 -180z" /> | |||||
<glyph unicode="" d="M700 1200h-50q-27 0 -51 -20t-38 -48l-96 -198l-145 -196q-20 -26 -20 -63v-400q0 -75 100 -75h61q123 -100 139 -100h250q46 0 83 57l238 344q29 31 29 74v100q0 44 -30.5 84.5t-69.5 40.5h-328q28 118 28 125v150q0 44 -30.5 84.5t-69.5 40.5zM700 925l-50 -225h450 v-125l-250 -375h-214l-136 100h-100v375l150 212l100 213h50v-175zM0 800v-600h200v600h-200z" /> | |||||
<glyph unicode="" d="M700 0h-50q-27 0 -51 20t-38 48l-96 198l-145 196q-20 26 -20 63v400q0 75 100 75h61q123 100 139 100h250q46 0 83 -57l238 -344q29 -31 29 -74v-100q0 -44 -30.5 -84.5t-69.5 -40.5h-328q28 -118 28 -125v-150q0 -44 -30.5 -84.5t-69.5 -40.5zM200 400h-200v600h200 v-600zM700 275l-50 225h450v125l-250 375h-214l-136 -100h-100v-375l150 -212l100 -213h50v175z" /> | |||||
<glyph unicode="" d="M364 873l362 230q14 6 25 6q17 0 29 -12l109 -112q14 -14 14 -34q0 -18 -11 -32l-85 -121h302q85 0 138.5 -38t53.5 -110t-54.5 -111t-138.5 -39h-107l-130 -339q-7 -22 -20.5 -41.5t-28.5 -19.5h-341q-7 0 -90 81t-83 94v525q0 17 14 35.5t28 28.5zM408 792v-503 l100 -89h293l131 339q6 21 19.5 41t28.5 20h203q16 0 25 15t9 36q0 20 -9 34.5t-25 14.5h-457h-6.5h-7.5t-6.5 0.5t-6 1t-5 1.5t-5.5 2.5t-4 4t-4 5.5q-5 12 -5 20q0 14 10 27l147 183l-86 83zM208 200h-200v600h200v-600z" /> | |||||
<glyph unicode="" d="M475 1104l365 -230q7 -4 16.5 -10.5t26 -26t16.5 -36.5v-526q0 -13 -85.5 -93.5t-93.5 -80.5h-342q-15 0 -28.5 20t-19.5 41l-131 339h-106q-84 0 -139 39t-55 111t54 110t139 37h302l-85 121q-11 16 -11 32q0 21 14 34l109 113q13 12 29 12q11 0 25 -6zM370 946 l145 -184q10 -11 10 -26q0 -11 -5 -20q-1 -3 -3.5 -5.5l-4 -4t-5 -2.5t-5.5 -1.5t-6.5 -1t-6.5 -0.5h-7.5h-6.5h-476v-100h222q15 0 28.5 -20.5t19.5 -40.5l131 -339h293l106 89v502l-342 237zM1199 201h-200v600h200v-600z" /> | |||||
<glyph unicode="" d="M1100 473v342q0 15 -20 28.5t-41 19.5l-339 131v106q0 84 -39 139t-111 55t-110 -53.5t-38 -138.5v-302l-121 84q-15 12 -33.5 11.5t-32.5 -13.5l-112 -110q-22 -22 -6 -53l230 -363q4 -6 10.5 -15.5t26 -25t36.5 -15.5h525q13 0 94 83t81 90zM911 400h-503l-236 339 l83 86l183 -146q22 -18 47 -5q3 1 5.5 3.5l4 4t2.5 5t1.5 5.5t1 6.5t0.5 6v7.5v7v456q0 22 25 31t50 -0.5t25 -30.5v-202q0 -16 20 -29.5t41 -19.5l339 -130v-294zM1000 200v-200h-600v200h600z" /> | |||||
<glyph unicode="" d="M305 1104v200h600v-200h-600zM605 310l339 131q20 6 40.5 19.5t20.5 28.5v342q0 7 -81 90t-94 83h-525q-17 0 -35.5 -14t-28.5 -28l-10 -15l-230 -362q-15 -31 7 -53l112 -110q13 -13 32 -13.5t34 10.5l121 85l-1 -302q0 -84 38.5 -138t110.5 -54t111 55t39 139v106z M905 804v-294l-340 -130q-20 -6 -40 -20t-20 -29v-202q0 -22 -25 -31t-50 0t-25 31v456v14.5t-1.5 11.5t-5 12t-9.5 7q-24 13 -46 -5l-184 -146l-83 86l237 339h503z" /> | |||||
<glyph unicode="" d="M603 1195q162 0 299.5 -80t217.5 -218t80 -300t-80 -299.5t-217.5 -217.5t-299.5 -80t-300 80t-218 217.5t-80 299.5q0 122 47.5 232.5t127.5 190.5t190.5 127.5t232.5 47.5zM598 701h-298v-201h300l-2 -194l402 294l-402 298v-197z" /> | |||||
<glyph unicode="" d="M597 1195q122 0 232.5 -47.5t190.5 -127.5t127.5 -190.5t47.5 -232.5q0 -162 -80 -299.5t-218 -217.5t-300 -80t-299.5 80t-217.5 217.5t-80 299.5q0 122 47.5 232.5t127.5 190.5t190.5 127.5t231.5 47.5zM200 600l400 -294v194h302v201h-300v197z" /> | |||||
<glyph unicode="" d="M603 1195q121 0 231.5 -47.5t190.5 -127.5t127.5 -190.5t47.5 -232.5q0 -162 -80 -299.5t-217.5 -217.5t-299.5 -80t-300 80t-218 217.5t-80 299.5q0 122 47.5 232.5t127.5 190.5t190.5 127.5t232.5 47.5zM300 600h200v-300h200v300h200l-300 400z" /> | |||||
<glyph unicode="" d="M603 1195q121 0 231.5 -47.5t190.5 -127.5t127.5 -190.5t47.5 -232.5q0 -162 -80 -299.5t-217.5 -217.5t-299.5 -80t-300 80t-218 217.5t-80 299.5q0 122 47.5 232.5t127.5 190.5t190.5 127.5t232.5 47.5zM500 900v-300h-200l300 -400l300 400h-200v300h-200z" /> | |||||
<glyph unicode="" d="M603 1195q121 0 231.5 -47.5t190.5 -127.5t127.5 -190.5t47.5 -232.5q0 -162 -80 -299.5t-217.5 -217.5t-299.5 -80t-300 80t-218 217.5t-80 299.5q0 122 47.5 232.5t127.5 190.5t190.5 127.5t232.5 47.5zM627 1101q-15 -12 -36.5 -21t-34.5 -12t-44 -8t-39 -6 q-15 -3 -45.5 0.5t-45.5 -2.5q-21 -7 -52 -26.5t-34 -34.5q-3 -11 6.5 -22.5t8.5 -18.5q-3 -34 -27.5 -90.5t-29.5 -79.5q-8 -33 5.5 -92.5t7.5 -87.5q0 -9 17 -44t16 -60q12 0 23 -5.5t23 -15t20 -13.5q24 -12 108 -42q22 -8 53 -31.5t59.5 -38.5t57.5 -11q8 -18 -15 -55 t-20 -57q42 -71 87 -80q0 -6 -3 -15.5t-3.5 -14.5t4.5 -17q102 -2 221 112q30 29 47 47t34.5 49t20.5 62q-14 9 -37 9.5t-36 7.5q-14 7 -49 15t-52 19q-9 0 -39.5 -0.5t-46.5 -1.5t-39 -6.5t-39 -16.5q-50 -35 -66 -12q-4 2 -3.5 25.5t0.5 25.5q-6 13 -26.5 17t-24.5 7 q2 22 -2 41t-16.5 28t-38.5 -20q-23 -25 -42 4q-19 28 -8 58q6 16 22 22q6 -1 26 -1.5t33.5 -4t19.5 -13.5q12 -19 32 -37.5t34 -27.5l14 -8q0 3 9.5 39.5t5.5 57.5q-4 23 14.5 44.5t22.5 31.5q5 14 10 35t8.5 31t15.5 22.5t34 21.5q-6 18 10 37q8 0 23.5 -1.5t24.5 -1.5 t20.5 4.5t20.5 15.5q-10 23 -30.5 42.5t-38 30t-49 26.5t-43.5 23q11 41 1 44q31 -13 58.5 -14.5t39.5 3.5l11 4q6 36 -17 53.5t-64 28.5t-56 23q-19 -3 -37 0zM613 994q0 -18 8 -42.5t16.5 -44t9.5 -23.5q-9 2 -31 5t-36 5t-32 8t-30 14q3 12 16 30t16 25q10 -10 18.5 -10 t14 6t14.5 14.5t16 12.5z" /> | |||||
<glyph unicode="" horiz-adv-x="1220" d="M100 1196h1000q41 0 70.5 -29.5t29.5 -70.5v-100q0 -41 -29.5 -70.5t-70.5 -29.5h-1000q-41 0 -70.5 29.5t-29.5 70.5v100q0 41 29.5 70.5t70.5 29.5zM1100 1096h-200v-100h200v100zM100 796h1000q41 0 70.5 -29.5t29.5 -70.5v-100q0 -41 -29.5 -70.5t-70.5 -29.5h-1000 q-41 0 -70.5 29.5t-29.5 70.5v100q0 41 29.5 70.5t70.5 29.5zM1100 696h-500v-100h500v100zM100 396h1000q41 0 70.5 -29.5t29.5 -70.5v-100q0 -41 -29.5 -70.5t-70.5 -29.5h-1000q-41 0 -70.5 29.5t-29.5 70.5v100q0 41 29.5 70.5t70.5 29.5zM1100 296h-300v-100h300v100z " /> | |||||
<glyph unicode="" d="M1100 1200v-100h-1000v100h1000zM150 1000h900l-350 -500v-300l-200 -200v500z" /> | |||||
<glyph unicode="" d="M329 729l142 142l-200 200l129 129h-400v-400l129 129zM1200 1200v-400l-129 129l-200 -200l-142 142l200 200l-129 129h400zM271 129l129 -129h-400v400l129 -129l200 200l142 -142zM1071 271l129 129v-400h-400l129 129l-200 200l142 142z" /> | |||||
<glyph unicode="" d="M596 1192q162 0 299 -80t217 -217t80 -299t-80 -299t-217 -217t-299 -80t-299 80t-217 217t-80 299t80 299t217 217t299 80zM596 1010q-171 0 -292.5 -121.5t-121.5 -292.5q0 -172 121.5 -293t292.5 -121t292.5 121t121.5 293q0 171 -121.5 292.5t-292.5 121.5zM455 905 q22 0 38 -16t16 -39t-16 -39t-38 -16q-23 0 -39 16.5t-16 38.5t16 38.5t39 16.5zM708 821l1 1q-9 14 -9 28q0 22 16 38.5t39 16.5q22 0 38 -16t16 -39t-16 -39t-38 -16q-14 0 -29 10l-55 -145q17 -22 17 -51q0 -36 -25.5 -61.5t-61.5 -25.5t-61.5 25.5t-25.5 61.5 q0 32 20.5 56.5t51.5 29.5zM855 709q23 0 38.5 -15.5t15.5 -38.5t-16 -39t-38 -16q-23 0 -39 16t-16 39q0 22 16 38t39 16zM345 709q23 0 39 -16t16 -38q0 -23 -16 -39t-39 -16q-22 0 -38 16t-16 39t15.5 38.5t38.5 15.5z" /> | |||||
<glyph unicode="" d="M649 54l-16 22q-90 125 -293 323q-71 70 -104.5 105.5t-77 89.5t-61 99t-17.5 91q0 131 98.5 229.5t230.5 98.5q143 0 241 -129q103 129 246 129q129 0 226 -98.5t97 -229.5q0 -46 -17.5 -91t-61 -99t-77 -89.5t-104.5 -105.5q-203 -198 -293 -323zM844 524l12 12 q64 62 97.5 97t64.5 79t31 72q0 71 -48 119t-105 48q-74 0 -132 -82l-118 -171l-114 174q-51 79 -123 79q-60 0 -109.5 -49t-49.5 -118q0 -27 30.5 -70t61.5 -75.5t95 -94.5l22 -22q93 -90 190 -201q82 92 195 203z" /> | |||||
<glyph unicode="" d="M476 406l19 -17l105 105l-212 212l389 389l247 -247l-95 -96l18 -18q46 -46 77 -99l29 29q35 35 62.5 88t27.5 96q0 93 -66 159l-141 141q-66 66 -159 66q-95 0 -159 -66l-283 -283q-66 -64 -66 -159q0 -93 66 -159zM123 193l141 -141q66 -66 159 -66q95 0 159 66 l283 283q66 66 66 159t-66 159l-141 141q-12 12 -19 17l-105 -105l212 -212l-389 -389l-247 248l95 95l-18 18q-46 45 -75 101l-55 -55q-66 -66 -66 -159q0 -94 66 -160z" /> | |||||
<glyph unicode="" d="M200 100v953q0 21 30 46t81 48t129 38t163 15t162 -15t127 -38t79 -48t29 -46v-953q0 -41 -29.5 -70.5t-70.5 -29.5h-600q-41 0 -70.5 29.5t-29.5 70.5zM900 1000h-600v-700h600v700zM600 46q43 0 73.5 30.5t30.5 73.5t-30.5 73.5t-73.5 30.5t-73.5 -30.5t-30.5 -73.5 t30.5 -73.5t73.5 -30.5z" /> | |||||
<glyph unicode="" d="M700 1029v-307l64 -14q34 -7 64 -16.5t70 -31.5t67.5 -52t47.5 -80.5t20 -112.5q0 -139 -89 -224t-244 -96v-77h-100v78q-152 17 -237 104q-40 40 -52.5 93.5t-15.5 139.5h139q5 -77 48.5 -126.5t117.5 -64.5v335l-27 7q-46 14 -79 26.5t-72 36t-62.5 52t-40 72.5 t-16.5 99q0 92 44 159.5t109 101t144 40.5v78h100v-79q38 -4 72.5 -13.5t75.5 -31.5t71 -53.5t51.5 -84t24.5 -118.5h-159q-8 72 -35 109.5t-101 50.5zM600 755v274q-61 -8 -97.5 -37.5t-36.5 -102.5q0 -29 8 -51t16.5 -34t29.5 -22.5t31 -13.5t38 -10q7 -2 11 -3zM700 548 v-311q170 18 170 151q0 64 -44 99.5t-126 60.5z" /> | |||||
<glyph unicode="" d="M866 300l50 -147q-41 -25 -80.5 -36.5t-59 -13t-61.5 -1.5q-23 0 -128 33t-155 29q-39 -4 -82 -17t-66 -25l-24 -11l-55 145l16.5 11t15.5 10t13.5 9.5t14.5 12t14.5 14t17.5 18.5q48 55 54 126.5t-30 142.5h-221v100h166q-24 49 -44 104q-10 26 -14.5 55.5t-3 72.5 t25 90t68.5 87q97 88 263 88q129 0 230 -89t101 -208h-153q0 52 -34 89.5t-74 51.5t-76 14q-37 0 -79 -14.5t-62 -35.5q-41 -44 -41 -101q0 -11 2.5 -24.5t5.5 -24t9.5 -26.5t10.5 -25t14 -27.5t14 -25.5t15.5 -27t13.5 -24h242v-100h-197q8 -50 -2.5 -115t-31.5 -94 q-41 -59 -99 -113q35 11 84 18t70 7q32 1 102 -16t104 -17q76 0 136 30z" /> | |||||
<glyph unicode="" d="M300 0l298 300h-198v900h-200v-900h-198zM900 1200l298 -300h-198v-900h-200v900h-198z" /> | |||||
<glyph unicode="" d="M400 300h198l-298 -300l-298 300h198v900h200v-900zM1000 1200v-500h-100v100h-100v-100h-100v500h300zM901 1100h-100v-200h100v200zM700 500h300v-200h-99v-100h-100v100h99v100h-200v100zM800 100h200v-100h-300v200h100v-100z" /> | |||||
<glyph unicode="" d="M400 300h198l-298 -300l-298 300h198v900h200v-900zM1000 1200v-200h-99v-100h-100v100h99v100h-200v100h300zM800 800h200v-100h-300v200h100v-100zM700 500h300v-500h-100v100h-100v-100h-100v500zM801 200h100v200h-100v-200z" /> | |||||
<glyph unicode="" d="M300 0l298 300h-198v900h-200v-900h-198zM900 1100h-100v100h200v-500h-100v400zM1100 500v-500h-100v100h-200v400h300zM1001 400h-100v-200h100v200z" /> | |||||
<glyph unicode="" d="M300 0l298 300h-198v900h-200v-900h-198zM1100 1200v-500h-100v100h-200v400h300zM1001 1100h-100v-200h100v200zM900 400h-100v100h200v-500h-100v400z" /> | |||||
<glyph unicode="" d="M300 0l298 300h-198v900h-200v-900h-198zM900 1000h-200v200h200v-200zM1000 700h-300v200h300v-200zM1100 400h-400v200h400v-200zM1200 100h-500v200h500v-200z" /> | |||||
<glyph unicode="" d="M300 0l298 300h-198v900h-200v-900h-198zM1200 1000h-500v200h500v-200zM1100 700h-400v200h400v-200zM1000 400h-300v200h300v-200zM900 100h-200v200h200v-200z" /> | |||||
<glyph unicode="" d="M400 1100h300q162 0 281 -118.5t119 -281.5v-300q0 -165 -118.5 -282.5t-281.5 -117.5h-300q-165 0 -282.5 117.5t-117.5 282.5v300q0 165 117.5 282.5t282.5 117.5zM800 900h-500q-41 0 -70.5 -29.5t-29.5 -70.5v-500q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5 t29.5 70.5v500q0 41 -29.5 70.5t-70.5 29.5z" /> | |||||
<glyph unicode="" d="M700 0h-300q-163 0 -281.5 117.5t-118.5 282.5v300q0 163 119 281.5t281 118.5h300q165 0 282.5 -117.5t117.5 -282.5v-300q0 -165 -117.5 -282.5t-282.5 -117.5zM800 900h-500q-41 0 -70.5 -29.5t-29.5 -70.5v-500q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5 t29.5 70.5v500q0 41 -29.5 70.5t-70.5 29.5zM400 800v-500l333 250z" /> | |||||
<glyph unicode="" d="M0 400v300q0 163 117.5 281.5t282.5 118.5h300q163 0 281.5 -119t118.5 -281v-300q0 -165 -117.5 -282.5t-282.5 -117.5h-300q-165 0 -282.5 117.5t-117.5 282.5zM900 300v500q0 41 -29.5 70.5t-70.5 29.5h-500q-41 0 -70.5 -29.5t-29.5 -70.5v-500q0 -41 29.5 -70.5 t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5zM800 700h-500l250 -333z" /> | |||||
<glyph unicode="" d="M1100 700v-300q0 -162 -118.5 -281t-281.5 -119h-300q-165 0 -282.5 118.5t-117.5 281.5v300q0 165 117.5 282.5t282.5 117.5h300q165 0 282.5 -117.5t117.5 -282.5zM900 300v500q0 41 -29.5 70.5t-70.5 29.5h-500q-41 0 -70.5 -29.5t-29.5 -70.5v-500q0 -41 29.5 -70.5 t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5zM550 733l-250 -333h500z" /> | |||||
<glyph unicode="" d="M500 1100h400q165 0 282.5 -117.5t117.5 -282.5v-300q0 -165 -117.5 -282.5t-282.5 -117.5h-400v200h500q41 0 70.5 29.5t29.5 70.5v500q0 41 -29.5 70.5t-70.5 29.5h-500v200zM700 550l-400 -350v200h-300v300h300v200z" /> | |||||
<glyph unicode="" d="M403 2l9 -1q13 0 26 16l538 630q15 19 6 36q-8 18 -32 16h-300q1 4 78 219.5t79 227.5q2 17 -6 27l-8 8h-9q-16 0 -25 -15q-4 -5 -98.5 -111.5t-228 -257t-209.5 -238.5q-17 -19 -7 -40q10 -19 32 -19h302q-155 -438 -160 -458q-5 -21 4 -32z" /> | |||||
<glyph unicode="" d="M800 200h-500q-41 0 -70.5 29.5t-29.5 70.5v500q0 41 29.5 70.5t70.5 29.5h500v185q-14 4 -114 7.5t-193 5.5l-93 2q-165 0 -282.5 -117.5t-117.5 -282.5v-300q0 -165 117.5 -282.5t282.5 -117.5h300q47 0 100 15v185zM900 200v200h-300v300h300v200l400 -350z" /> | |||||
<glyph unicode="" d="M1200 700l-149 149l-342 -353l-213 213l353 342l-149 149h500v-500zM1022 571l-122 -123v-148q0 -41 -29.5 -70.5t-70.5 -29.5h-500q-41 0 -70.5 29.5t-29.5 70.5v500q0 41 29.5 70.5t70.5 29.5h156l118 122l-74 78h-100q-165 0 -282.5 -117.5t-117.5 -282.5v-300 q0 -165 117.5 -282.5t282.5 -117.5h300q163 0 281.5 117.5t118.5 282.5v98z" /> | |||||
<glyph unicode="" d="M600 1196q162 0 299 -80t217 -217t80 -299t-80 -299t-217 -217t-299 -80t-299 80t-217 217t-80 299t80 299t217 217t299 80zM600 1014q-171 0 -292.5 -121.5t-121.5 -292.5t121.5 -292.5t292.5 -121.5t292.5 121.5t121.5 292.5t-121.5 292.5t-292.5 121.5zM600 794 q80 0 137 -57t57 -137t-57 -137t-137 -57t-137 57t-57 137t57 137t137 57z" /> | |||||
<glyph unicode="" d="M700 800v400h-300v-400h-300l445 -500l450 500h-295zM25 300h1048q11 0 19 -7.5t8 -17.5v-275h-1100v275q0 11 7 18t18 7zM1000 200h-100v-50h100v50z" /> | |||||
<glyph unicode="" d="M400 700v-300h300v300h295l-445 500l-450 -500h300zM25 300h1048q11 0 19 -7.5t8 -17.5v-275h-1100v275q0 11 7 18t18 7zM1000 200h-100v-50h100v50z" /> | |||||
<glyph unicode="" d="M405 400l596 596l-154 155l-442 -442l-150 151l-155 -155zM25 300h1048q11 0 19 -7.5t8 -17.5v-275h-1100v275q0 11 7 18t18 7zM1000 200h-100v-50h100v50z" /> | |||||
<glyph unicode="" d="M409 1103l-97 97l-212 -212l97 -98zM650 861l-149 149l-212 -212l149 -149l-238 -248h700v699zM25 300h1048q11 0 19 -7.5t8 -17.5v-275h-1100v275q0 11 7 18t18 7zM1000 200h-100v-50h100v50z" /> | |||||
<glyph unicode="" d="M539 950l-149 -149l212 -212l149 148l248 -237v700h-699zM297 709l-97 -97l212 -212l98 97zM25 300h1048q11 0 19 -7.5t8 -17.5v-275h-1100v275q0 11 7 18t18 7zM1000 200h-100v-50h100v50z" /> | |||||
<glyph unicode="" d="M1200 1199v-1079l-475 272l-310 -393v416h-392zM1166 1148l-672 -712v-226z" /> | |||||
<glyph unicode="" d="M1100 1000v-850q0 -21 -15 -35.5t-35 -14.5h-150v400h-700v-400h-150q-21 0 -35.5 14.5t-14.5 35.5v1000q0 20 14.5 35t35.5 15h250v-300h500v300h100zM700 1200h-100v-200h100v200z" /> | |||||
<glyph unicode="" d="M578 500h-378v-400h-150q-21 0 -35.5 14.5t-14.5 35.5v1000q0 20 14.5 35t35.5 15h250v-300h500v300h100l200 -200v-218l-276 -275l-120 120zM700 1200h-100v-200h100v200zM1300 538l-475 -476l-244 244l123 123l120 -120l353 352z" /> | |||||
<glyph unicode="" d="M529 500h-329v-400h-150q-21 0 -35.5 14.5t-14.5 35.5v1000q0 20 14.5 35t35.5 15h250v-300h500v300h100l200 -200v-269l-103 -103l-170 170zM700 1200h-100v-200h100v200zM1167 6l-170 170l-170 -170l-127 127l170 170l-170 170l127 127l170 -170l170 170l127 -128 l-170 -169l170 -170z" /> | |||||
<glyph unicode="" d="M700 500h-500v-400h-150q-21 0 -35.5 14.5t-14.5 35.5v1000q0 20 14.5 35t35.5 15h250v-300h500v300h100l200 -200v-300h-400v-200zM700 1000h-100v200h100v-200zM1000 600h-200v-300h-200l300 -300l300 300h-200v300z" /> | |||||
<glyph unicode="" d="M602 500h-402v-400h-150q-21 0 -35.5 14.5t-14.5 35.5v1000q0 20 14.5 35t35.5 15h250v-300h500v300h100l200 -200v-402l-200 200zM700 1000h-100v200h100v-200zM1000 300h200l-300 300l-300 -300h200v-300h200v300z" /> | |||||
<glyph unicode="" d="M1200 900v150q0 21 -14.5 35.5t-35.5 14.5h-1100q-21 0 -35.5 -14.5t-14.5 -35.5v-150h1200zM0 800v-550q0 -21 14.5 -35.5t35.5 -14.5h1100q21 0 35.5 14.5t14.5 35.5v550h-1200zM100 500h400v-200h-400v200z" /> | |||||
<glyph unicode="" d="M500 1000h400v198l300 -298l-300 -298v198h-400v200zM100 800v200h100v-200h-100zM400 800h-100v200h100v-200zM700 300h-400v-198l-300 298l300 298v-198h400v-200zM800 500h100v-200h-100v200zM1000 500v-200h100v200h-100z" /> | |||||
<glyph unicode="" d="M1200 50v1106q0 31 -18 40.5t-44 -7.5l-276 -117q-25 -16 -43.5 -50.5t-18.5 -65.5v-359q0 -29 10.5 -55.5t25 -43t29 -28.5t25.5 -18l10 -5v-397q0 -21 14.5 -35.5t35.5 -14.5h200q21 0 35.5 14.5t14.5 35.5zM550 1200l50 -100v-400l-100 -203v-447q0 -21 -14.5 -35.5 t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v447l-100 203v400l50 100l50 -100v-300h100v300l50 100l50 -100v-300h100v300z" /> | |||||
<glyph unicode="" d="M1100 106v888q0 22 25 34.5t50 13.5l25 2v56h-400v-56q75 0 87.5 -6t12.5 -44v-394h-500v394q0 38 12.5 44t87.5 6v56h-400v-56q4 0 11 -0.5t24 -3t30 -7t24 -15t11 -24.5v-888q0 -22 -25 -34.5t-50 -13.5l-25 -2v-56h400v56q-75 0 -87.5 6t-12.5 44v394h500v-394 q0 -38 -12.5 -44t-87.5 -6v-56h400v56q-4 0 -11 0.5t-24 3t-30 7t-24 15t-11 24.5z" /> | |||||
<glyph unicode="" d="M675 1000l-100 100h-375l-100 -100h400l200 -200v-98l295 98h105v200h-425zM500 300v500q0 41 -29.5 70.5t-70.5 29.5h-300q-41 0 -70.5 -29.5t-29.5 -70.5v-500q0 -41 29.5 -70.5t70.5 -29.5h300q41 0 70.5 29.5t29.5 70.5zM100 800h300v-200h-300v200zM700 565l400 133 v-163l-400 -133v163zM100 500h300v-200h-300v200zM805 300l295 98v-298h-425l-100 -100h-375l-100 100h400l200 200h105z" /> | |||||
<glyph unicode="" d="M179 1169l-162 -162q-1 -11 -0.5 -32.5t16 -90t46.5 -140t104 -177.5t175 -208q103 -103 207.5 -176t180 -103.5t137 -47t92.5 -16.5l31 1l163 162q16 17 13 40.5t-22 37.5l-192 136q-19 14 -45 12t-42 -19l-119 -118q-143 103 -267 227q-126 126 -227 268l118 118 q17 17 20 41.5t-11 44.5l-139 194q-14 19 -36.5 22t-40.5 -14z" /> | |||||
<glyph unicode="" d="M1200 712v200q-6 8 -19 20.5t-63 45t-112 57t-171 45t-235 20.5q-92 0 -175 -10.5t-141.5 -27t-108.5 -36.5t-81.5 -40t-53.5 -36.5t-31 -27.5l-9 -10v-200q0 -21 14.5 -33.5t34.5 -8.5l202 33q20 4 34.5 21t14.5 38v146q141 24 300 24t300 -24v-146q0 -21 14.5 -38 t34.5 -21l202 -33q20 -4 34.5 8.5t14.5 33.5zM800 650l365 -303q14 -14 24.5 -39.5t10.5 -45.5v-212q0 -21 -15 -35.5t-35 -14.5h-1100q-21 0 -35.5 14.5t-14.5 35.5v212q0 20 10.5 45.5t24.5 39.5l365 303v50q0 4 1 10.5t12 22.5t30 28.5t60 23t97 10.5t97 -10t60 -23.5 t30 -27.5t12 -24l1 -10v-50z" /> | |||||
<glyph unicode="" d="M175 200h950l-125 150v250l100 100v400h-100v-200h-100v200h-200v-200h-100v200h-200v-200h-100v200h-100v-400l100 -100v-250zM1200 100v-100h-1100v100h1100z" /> | |||||
<glyph unicode="" d="M600 1100h100q41 0 70.5 -29.5t29.5 -70.5v-1000h-300v1000q0 41 29.5 70.5t70.5 29.5zM1000 800h100q41 0 70.5 -29.5t29.5 -70.5v-700h-300v700q0 41 29.5 70.5t70.5 29.5zM400 0v400q0 41 -29.5 70.5t-70.5 29.5h-100q-41 0 -70.5 -29.5t-29.5 -70.5v-400h300z" /> | |||||
<glyph unicode="" d="M1200 800v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212v500q0 124 88 212t212 88h700q124 0 212 -88t88 -212zM1000 900h-900v-700h900v700zM200 800v-300h200v-100h-200v-100h300v300h-200v100h200v100h-300zM800 800h-200v-500h200v100h100v300h-100 v100zM800 700v-300h-100v300h100z" /> | |||||
<glyph unicode="" d="M1200 800v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212v500q0 124 88 212t212 88h700q124 0 212 -88t88 -212zM1000 900h-900v-700h900v700zM400 600h-100v200h-100v-500h100v200h100v-200h100v500h-100v-200zM800 800h-200v-500h200v100h100v300h-100 v100zM800 700v-300h-100v300h100z" /> | |||||
<glyph unicode="" d="M1200 800v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212v500q0 124 88 212t212 88h700q124 0 212 -88t88 -212zM1000 900h-900v-700h900v700zM200 800v-500h300v100h-200v300h200v100h-300zM600 800v-500h300v100h-200v300h200v100h-300z" /> | |||||
<glyph unicode="" d="M1200 800v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212v500q0 124 88 212t212 88h700q124 0 212 -88t88 -212zM1000 900h-900v-700h900v700zM500 700l-300 -150l300 -150v300zM600 400l300 150l-300 150v-300z" /> | |||||
<glyph unicode="" d="M1200 800v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212v500q0 124 88 212t212 88h700q124 0 212 -88t88 -212zM1000 900h-900v-700h900v700zM900 800v-500h-700v500h700zM300 400h130q41 0 68 42t27 107t-28.5 108t-66.5 43h-130v-300zM800 700h-130 q-38 0 -66.5 -43t-28.5 -108t27 -107t68 -42h130v300z" /> | |||||
<glyph unicode="" d="M1200 800v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212v500q0 124 88 212t212 88h700q124 0 212 -88t88 -212zM1000 900h-900v-700h900v700zM200 800v-300h200v-100h-200v-100h300v300h-200v100h200v100h-300zM800 300h100v500h-200v-100h100v-400z M601 300h100v100h-100v-100z" /> | |||||
<glyph unicode="" d="M1200 800v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212v500q0 124 88 212t212 88h700q124 0 212 -88t88 -212zM1000 900h-900v-700h900v700zM300 700v100h-100v-500h300v400h-200zM800 300h100v500h-200v-100h100v-400zM401 400h-100v200h100v-200z M601 300h100v100h-100v-100z" /> | |||||
<glyph unicode="" d="M200 1100h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212v500q0 124 88 212t212 88zM1000 900h-900v-700h900v700zM400 700h-200v100h300v-300h-99v-100h-100v100h99v200zM800 700h-100v100h200v-500h-100v400zM201 400h100v-100 h-100v100zM701 300h-100v100h100v-100z" /> | |||||
<glyph unicode="" d="M600 1196q162 0 299 -80t217 -217t80 -299t-80 -299t-217 -217t-299 -80t-299 80t-217 217t-80 299t80 299t217 217t299 80zM600 1014q-171 0 -292.5 -121.5t-121.5 -292.5t121.5 -292.5t292.5 -121.5t292.5 121.5t121.5 292.5t-121.5 292.5t-292.5 121.5zM800 700h-300 v-200h300v-100h-300l-100 100v200l100 100h300v-100z" /> | |||||
<glyph unicode="" d="M596 1196q162 0 299 -80t217 -217t80 -299t-80 -299t-217 -217t-299 -80t-299 80t-217 217t-80 299t80 299t217 217t299 80zM596 1014q-171 0 -292.5 -121.5t-121.5 -292.5t121.5 -292.5t292.5 -121.5t292.5 121.5t121.5 292.5t-121.5 292.5t-292.5 121.5zM800 700v-100 h-100v100h-200v-100h200v-100h-200v-100h-100v400h300zM800 400h-100v100h100v-100z" /> | |||||
<glyph unicode="" d="M800 300h128q120 0 205 86t85 208q0 120 -85 206.5t-205 86.5q-46 0 -90 -14q-44 97 -134.5 156.5t-200.5 59.5q-152 0 -260 -107.5t-108 -260.5q0 -25 2 -37q-66 -14 -108.5 -67.5t-42.5 -122.5q0 -80 56.5 -137t135.5 -57h222v300h400v-300zM700 200h200l-300 -300 l-300 300h200v300h200v-300z" /> | |||||
<glyph unicode="" d="M600 714l403 -403q94 26 154.5 104t60.5 178q0 121 -85 207.5t-205 86.5q-46 0 -90 -14q-44 97 -134.5 156.5t-200.5 59.5q-152 0 -260 -107.5t-108 -260.5q0 -25 2 -37q-66 -14 -108.5 -67.5t-42.5 -122.5q0 -80 56.5 -137t135.5 -57h8zM700 -100h-200v300h-200l300 300 l300 -300h-200v-300z" /> | |||||
<glyph unicode="" d="M700 200h400l-270 300h170l-270 300h170l-300 333l-300 -333h170l-270 -300h170l-270 -300h400v-155l-75 -45h350l-75 45v155z" /> | |||||
<glyph unicode="" d="M700 45v306q46 -30 100 -30q74 0 126.5 52.5t52.5 126.5q0 24 -9 55q50 32 79.5 83t29.5 112q0 90 -61.5 155.5t-150.5 71.5q-26 89 -99.5 145.5t-167.5 56.5q-116 0 -197.5 -81.5t-81.5 -197.5q0 -4 1 -12t1 -11q-14 2 -23 2q-74 0 -126.5 -52.5t-52.5 -126.5 q0 -53 28.5 -97t75.5 -65q-4 -16 -4 -38q0 -74 52.5 -126.5t126.5 -52.5q56 0 100 30v-306l-75 -45h350z" /> | |||||
<glyph unicode="💼" d="M800 1000h300q41 0 70.5 -29.5t29.5 -70.5v-400h-500v100h-200v-100h-500v400q0 41 29.5 70.5t70.5 29.5h300v100q0 41 29.5 70.5t70.5 29.5h200q41 0 70.5 -29.5t29.5 -70.5v-100zM500 1000h200v100h-200v-100zM1200 400v-200q0 -41 -29.5 -70.5t-70.5 -29.5h-1000 q-41 0 -70.5 29.5t-29.5 70.5v200h1200z" /> | |||||
<glyph unicode="📅" d="M1100 900v150q0 21 -14.5 35.5t-35.5 14.5h-150v100h-100v-100h-500v100h-100v-100h-150q-21 0 -35.5 -14.5t-14.5 -35.5v-150h1100zM0 800v-750q0 -20 14.5 -35t35.5 -15h1000q21 0 35.5 15t14.5 35v750h-1100zM100 600h100v-100h-100v100zM300 600h100v-100h-100v100z M500 600h100v-100h-100v100zM700 600h100v-100h-100v100zM900 600h100v-100h-100v100zM100 400h100v-100h-100v100zM300 400h100v-100h-100v100zM500 400h100v-100h-100v100zM700 400h100v-100h-100v100zM900 400h100v-100h-100v100zM100 200h100v-100h-100v100zM300 200 h100v-100h-100v100zM500 200h100v-100h-100v100zM700 200h100v-100h-100v100zM900 200h100v-100h-100v100z" /> | |||||
<glyph unicode="📌" d="M902 1185l283 -282q15 -15 15 -36t-15 -35q-14 -15 -35 -15t-35 15l-36 35l-279 -267v-300l-212 210l-208 -207l-380 -303l303 380l207 208l-210 212h300l267 279l-35 36q-15 14 -15 35t15 35q14 15 35 15t35 -15z" /> | |||||
<glyph unicode="📎" d="M518 119l69 -60l517 511q67 67 95 157t11 183q-16 87 -67 154t-130 103q-69 33 -152 33q-107 0 -197 -55q-40 -24 -111 -95l-512 -512q-68 -68 -81 -163t35 -173q35 -57 94 -89t129 -32q63 0 119 28q33 16 65 40.5t52.5 45.5t59.5 64q40 44 57 61l394 394q35 35 47 84 t-3 96q-27 87 -117 104q-20 2 -29 2q-46 0 -79.5 -17t-67.5 -51l-388 -396l-7 -7l69 -67l377 373q20 22 39 38q23 23 50 23q38 0 53 -36q16 -39 -20 -75l-547 -547q-52 -52 -125 -52q-55 0 -100 33t-54 96q-5 35 2.5 66t31.5 63t42 50t56 54q24 21 44 41l348 348 q52 52 82.5 79.5t84 54t107.5 26.5q25 0 48 -4q95 -17 154 -94.5t51 -175.5q-7 -101 -98 -192l-252 -249l-253 -256z" /> | |||||
<glyph unicode="📷" d="M1200 200v600q0 41 -29.5 70.5t-70.5 29.5h-150q-4 8 -11.5 21.5t-33 48t-53 61t-69 48t-83.5 21.5h-200q-41 0 -82 -20.5t-70 -50t-52 -59t-34 -50.5l-12 -20h-150q-41 0 -70.5 -29.5t-29.5 -70.5v-600q0 -41 29.5 -70.5t70.5 -29.5h1000q41 0 70.5 29.5t29.5 70.5z M1000 700h-100v100h100v-100zM844 500q0 -100 -72 -172t-172 -72t-172 72t-72 172t72 172t172 72t172 -72t72 -172zM706 500q0 44 -31 75t-75 31t-75 -31t-31 -75t31 -75t75 -31t75 31t31 75z" /> | |||||
<glyph unicode="🔒" d="M900 800h100q41 0 70.5 -29.5t29.5 -70.5v-600q0 -41 -29.5 -70.5t-70.5 -29.5h-900q-41 0 -70.5 29.5t-29.5 70.5v600q0 41 29.5 70.5t70.5 29.5h100v200q0 82 59 141t141 59h300q82 0 141 -59t59 -141v-200zM400 800h300v150q0 21 -14.5 35.5t-35.5 14.5h-200 q-21 0 -35.5 -14.5t-14.5 -35.5v-150z" /> | |||||
<glyph unicode="🔔" d="M1062 400h17q20 0 33.5 -14.5t13.5 -35.5q0 -20 -13 -40t-31 -27q-22 -9 -63 -23t-167.5 -37t-251.5 -23t-245.5 20.5t-178.5 41.5l-58 20q-18 7 -31 27.5t-13 40.5q0 21 13.5 35.5t33.5 14.5h17l118 173l63 327q15 77 76 140t144 83l-18 32q-6 19 3 32t29 13h94 q20 0 29 -10.5t3 -29.5l-18 -37q83 -19 144 -82.5t76 -140.5l63 -327zM600 104q-54 0 -103 6q12 -49 40 -79.5t63 -30.5t63 30.5t39 79.5q-48 -6 -102 -6z" /> | |||||
<glyph unicode="🔖" d="M200 0l450 444l450 -443v1150q0 20 -14.5 35t-35.5 15h-800q-21 0 -35.5 -15t-14.5 -35v-1151z" /> | |||||
<glyph unicode="🔥" d="M400 755q2 -12 8 -41.5t8 -43t6 -39.5t3.5 -39.5t-1 -33.5t-6 -31.5t-13.5 -24t-21 -20.5t-31 -12q-38 -10 -67 13t-40.5 61.5t-15 81.5t10.5 75q-52 -46 -83.5 -101t-39 -107t-7.5 -85t5 -63q9 -56 44 -119.5t105 -108.5q31 -21 64 -16t62 23.5t57 49.5t48 61.5t35 60.5 q32 66 39 184.5t-13 157.5q79 -80 122 -164t26 -184q-5 -33 -20.5 -69.5t-37.5 -80.5q-10 -19 -14.5 -29t-12 -26t-9 -23.5t-3 -19t2.5 -15.5t11 -9.5t19.5 -5t30.5 2.5t42 8q57 20 91 34t87.5 44.5t87 64t65.5 88.5t47 122q38 172 -44.5 341.5t-246.5 278.5q22 -44 43 -129 q39 -159 -32 -154q-15 2 -33 9q-79 33 -120.5 100t-44 175.5t48.5 257.5q-13 -8 -34 -23.5t-72.5 -66.5t-88.5 -105.5t-60 -138t-8 -166.5z" /> | |||||
<glyph unicode="🔧" d="M948 778l251 126q13 -175 -151 -267q-123 -70 -253 -23l-596 -596q-15 -16 -36.5 -16t-36.5 16l-111 110q-15 15 -15 36.5t15 37.5l600 599q-33 101 6 201.5t135 154.5q164 92 306 -9l-259 -138z" /> | |||||
</font> | |||||
</defs></svg> |
@ -1,29 +0,0 @@ | |||||
<?xml version="1.0" encoding="utf-8"?> | |||||
<packages> | |||||
<package id="Antlr" version="3.4.1.9004" targetFramework="net452" /> | |||||
<package id="AspNet.ScriptManager.bootstrap" version="3.0.0" targetFramework="net452" /> | |||||
<package id="AspNet.ScriptManager.jQuery" version="1.10.2" targetFramework="net452" /> | |||||
<package id="Autofac" version="4.3.0" targetFramework="net452" /> | |||||
<package id="bootstrap" version="3.0.0" targetFramework="net452" /> | |||||
<package id="jQuery" version="1.10.2" targetFramework="net452" /> | |||||
<package id="Microsoft.ApplicationInsights" version="2.2.0" targetFramework="net452" /> | |||||
<package id="Microsoft.ApplicationInsights.Agent.Intercept" version="2.0.6" targetFramework="net452" /> | |||||
<package id="Microsoft.ApplicationInsights.DependencyCollector" version="2.2.0" targetFramework="net452" /> | |||||
<package id="Microsoft.ApplicationInsights.PerfCounterCollector" version="2.2.0" targetFramework="net452" /> | |||||
<package id="Microsoft.ApplicationInsights.Web" version="2.2.0" targetFramework="net452" /> | |||||
<package id="Microsoft.ApplicationInsights.WindowsServer" version="2.2.0" targetFramework="net452" /> | |||||
<package id="Microsoft.ApplicationInsights.WindowsServer.TelemetryChannel" version="2.2.0" targetFramework="net452" /> | |||||
<package id="Microsoft.AspNet.FriendlyUrls" version="1.0.2" targetFramework="net452" /> | |||||
<package id="Microsoft.AspNet.FriendlyUrls.Core" version="1.0.2" targetFramework="net452" /> | |||||
<package id="Microsoft.AspNet.ScriptManager.MSAjax" version="5.0.0" targetFramework="net452" /> | |||||
<package id="Microsoft.AspNet.ScriptManager.WebForms" version="5.0.0" targetFramework="net452" /> | |||||
<package id="Microsoft.AspNet.Web.Optimization" version="1.1.3" targetFramework="net452" /> | |||||
<package id="Microsoft.AspNet.Web.Optimization.WebForms" version="1.1.3" targetFramework="net452" /> | |||||
<package id="Microsoft.CodeDom.Providers.DotNetCompilerPlatform" version="1.0.3" targetFramework="net452" /> | |||||
<package id="Microsoft.Net.Compilers" version="1.3.2" targetFramework="net452" developmentDependency="true" /> | |||||
<package id="Microsoft.Web.Infrastructure" version="1.0.0.0" targetFramework="net452" /> | |||||
<package id="Modernizr" version="2.6.2" targetFramework="net452" /> | |||||
<package id="Newtonsoft.Json" version="6.0.4" targetFramework="net452" /> | |||||
<package id="Respond" version="1.2.0" targetFramework="net452" /> | |||||
<package id="WebGrease" version="1.5.2" targetFramework="net452" /> | |||||
</packages> |
@ -1 +0,0 @@ | |||||
version: '2.1' |
@ -1,22 +0,0 @@ | |||||
<?xml version="1.0" encoding="utf-8"?> | |||||
<Project ToolsVersion="15.0" Sdk="Microsoft.Docker.Sdk"> | |||||
<PropertyGroup Label="Globals"> | |||||
<ProjectGuid>7816bbb6-20b9-4d5a-864d-47b7c6e3d3d5</ProjectGuid> | |||||
<DockerLaunchBrowser>True</DockerLaunchBrowser> | |||||
<DockerServiceUrl>http://{ServiceIPAddress}</DockerServiceUrl> | |||||
<DockerServiceName>catalog.webforms</DockerServiceName> | |||||
</PropertyGroup> | |||||
<ItemGroup> | |||||
<None Include="docker-compose.ci.build.yml" /> | |||||
<None Include="docker-compose.override.yml"> | |||||
<DependentUpon>docker-compose.yml</DependentUpon> | |||||
</None> | |||||
<None Include="docker-compose.vs.debug.yml"> | |||||
<DependentUpon>docker-compose.yml</DependentUpon> | |||||
</None> | |||||
<None Include="docker-compose.vs.release.yml"> | |||||
<DependentUpon>docker-compose.yml</DependentUpon> | |||||
</None> | |||||
<None Include="docker-compose.yml" /> | |||||
</ItemGroup> | |||||
</Project> |
@ -1,23 +0,0 @@ | |||||
version: '2.1' | |||||
services: | |||||
sql.data: | |||||
environment: | |||||
- ACCEPT_EULA=Y | |||||
catalog.api: | |||||
environment: | |||||
- ASPNETCORE_ENVIRONMENT=Development | |||||
- ConnectionString=Server=sql.data;Database=Microsoft.eShopOnContainers.Services.CatalogDb;User Id=sa;Password=Pass@word | |||||
#- ExternalCatalogBaseUrl=http://13.88.8.119:5101 #Remote: VM Needs to have public access at 5105. | |||||
- ExternalCatalogBaseUrl=http://localhost:5101 #Local: You need to open your local dev-machine firewall at range 5100-5105. at range 5100-5105. | |||||
ports: | |||||
- "5101:5101" | |||||
catalog.webforms: | |||||
ports: | |||||
- "80" | |||||
networks: | |||||
default: | |||||
external: | |||||
name: nat |
@ -1,28 +0,0 @@ | |||||
version: '2.1' | |||||
services: | |||||
catalog.api: | |||||
image: eshop/catalog.api:dev | |||||
build: | |||||
args: | |||||
source: ${DOCKER_BUILD_SOURCE} | |||||
environment: | |||||
- DOTNET_USE_POLLING_FILE_WATCHER=1 | |||||
volumes: | |||||
- ../../Services/Catalog/Catalog.API:/app | |||||
- ~/.nuget/packages:/root/.nuget/packages:ro | |||||
- ~/clrdbg:/clrdbg:ro | |||||
entrypoint: tail -f /dev/null | |||||
labels: | |||||
- "com.microsoft.visualstudio.targetoperatingsystem=linux" | |||||
catalog.webforms: | |||||
image: catalog.webforms:dev | |||||
build: | |||||
args: | |||||
source: ${DOCKER_BUILD_SOURCE} | |||||
volumes: | |||||
- .\Catalog.WebForms:C:\inetpub\wwwroot | |||||
- ~\msvsmon:C:\msvsmon:ro | |||||
labels: | |||||
- "com.microsoft.visualstudio.targetoperatingsystem=windows" |
@ -1,21 +0,0 @@ | |||||
version: '2.1' | |||||
services: | |||||
catalog.api: | |||||
build: | |||||
args: | |||||
source: ${DOCKER_BUILD_SOURCE} | |||||
volumes: | |||||
- ~/clrdbg:/clrdbg:ro | |||||
entrypoint: tail -f /dev/null | |||||
labels: | |||||
- "com.microsoft.visualstudio.targetoperatingsystem=linux" | |||||
catalog.webforms: | |||||
build: | |||||
args: | |||||
source: ${DOCKER_BUILD_SOURCE} | |||||
volumes: | |||||
- ~\msvsmon:C:\msvsmon:ro | |||||
labels: | |||||
- "com.microsoft.visualstudio.targetoperatingsystem=windows" |
@ -1,22 +0,0 @@ | |||||
version: '2.1' | |||||
services: | |||||
catalog.webforms: | |||||
image: catalog.webforms | |||||
build: | |||||
context: .\Catalog.WebForms | |||||
dockerfile: Dockerfile | |||||
depends_on: | |||||
- catalog.api | |||||
catalog.api: | |||||
image: eshop/catalog.api | |||||
build: | |||||
context: ../../Services/Catalog/Catalog.API | |||||
dockerfile: Dockerfile.nanowin | |||||
depends_on: | |||||
- sql.data | |||||
sql.data: | |||||
image: microsoft/mssql-server-windows | |||||