├── .gitignore ├── ChatRoom.sln ├── ChatRoom ├── .bowerrc ├── ChatData.cs ├── ChatRoom.csproj ├── ChatRoom.csproj.user ├── Controllers │ └── HomeController.cs ├── Dockerfile ├── Program.cs ├── Properties │ ├── PublishProfiles │ │ ├── FolderProfile.pubxml │ │ └── FolderProfile.pubxml.user │ └── launchSettings.json ├── SocketHandler.cs ├── Startup.cs ├── Views │ ├── Home │ │ └── Index.cshtml │ ├── Shared │ │ ├── Error.cshtml │ │ ├── _Layout.cshtml │ │ └── _ValidationScriptsPartial.cshtml │ ├── _ViewImports.cshtml │ └── _ViewStart.cshtml ├── appsettings.Development.json ├── appsettings.json ├── bower.json ├── bundleconfig.json ├── hosting.json └── wwwroot │ ├── css │ ├── site.css │ └── site.min.css │ ├── favicon.ico │ ├── images │ ├── background.png │ ├── github.jpg │ └── 留言.png │ ├── js │ ├── moment.js │ ├── site.js │ └── site.min.js │ └── lib │ ├── bootstrap │ ├── .bower.json │ ├── CHANGELOG.md │ ├── Gemfile │ ├── Gemfile.lock │ ├── Gruntfile.js │ ├── ISSUE_TEMPLATE.md │ ├── LICENSE │ ├── README.md │ ├── bower.json │ ├── dist │ │ ├── css │ │ │ ├── bootstrap-theme.css │ │ │ ├── bootstrap-theme.css.map │ │ │ ├── bootstrap-theme.min.css │ │ │ ├── bootstrap-theme.min.css.map │ │ │ ├── bootstrap.css │ │ │ ├── bootstrap.css.map │ │ │ ├── bootstrap.min.css │ │ │ └── bootstrap.min.css.map │ │ ├── fonts │ │ │ ├── glyphicons-halflings-regular.eot │ │ │ ├── glyphicons-halflings-regular.svg │ │ │ ├── glyphicons-halflings-regular.ttf │ │ │ ├── glyphicons-halflings-regular.woff │ │ │ └── glyphicons-halflings-regular.woff2 │ │ └── js │ │ │ ├── bootstrap.js │ │ │ ├── bootstrap.min.js │ │ │ └── npm.js │ ├── fonts │ │ ├── glyphicons-halflings-regular.eot │ │ ├── glyphicons-halflings-regular.svg │ │ ├── glyphicons-halflings-regular.ttf │ │ ├── glyphicons-halflings-regular.woff │ │ └── glyphicons-halflings-regular.woff2 │ ├── grunt │ │ ├── .jshintrc │ │ ├── bs-commonjs-generator.js │ │ ├── bs-glyphicons-data-generator.js │ │ ├── bs-lessdoc-parser.js │ │ ├── bs-raw-files-generator.js │ │ ├── change-version.js │ │ ├── configBridge.json │ │ ├── npm-shrinkwrap.json │ │ └── sauce_browsers.yml │ ├── js │ │ ├── .jscsrc │ │ ├── .jshintrc │ │ ├── affix.js │ │ ├── alert.js │ │ ├── button.js │ │ ├── carousel.js │ │ ├── collapse.js │ │ ├── dropdown.js │ │ ├── modal.js │ │ ├── popover.js │ │ ├── scrollspy.js │ │ ├── tab.js │ │ ├── tooltip.js │ │ └── transition.js │ ├── less │ │ ├── .csscomb.json │ │ ├── .csslintrc │ │ ├── alerts.less │ │ ├── badges.less │ │ ├── bootstrap.less │ │ ├── breadcrumbs.less │ │ ├── button-groups.less │ │ ├── buttons.less │ │ ├── carousel.less │ │ ├── close.less │ │ ├── code.less │ │ ├── component-animations.less │ │ ├── dropdowns.less │ │ ├── forms.less │ │ ├── glyphicons.less │ │ ├── grid.less │ │ ├── input-groups.less │ │ ├── jumbotron.less │ │ ├── labels.less │ │ ├── list-group.less │ │ ├── media.less │ │ ├── mixins.less │ │ ├── mixins │ │ │ ├── alerts.less │ │ │ ├── background-variant.less │ │ │ ├── border-radius.less │ │ │ ├── buttons.less │ │ │ ├── center-block.less │ │ │ ├── clearfix.less │ │ │ ├── forms.less │ │ │ ├── gradients.less │ │ │ ├── grid-framework.less │ │ │ ├── grid.less │ │ │ ├── hide-text.less │ │ │ ├── image.less │ │ │ ├── labels.less │ │ │ ├── list-group.less │ │ │ ├── nav-divider.less │ │ │ ├── nav-vertical-align.less │ │ │ ├── opacity.less │ │ │ ├── pagination.less │ │ │ ├── panels.less │ │ │ ├── progress-bar.less │ │ │ ├── reset-filter.less │ │ │ ├── reset-text.less │ │ │ ├── resize.less │ │ │ ├── responsive-visibility.less │ │ │ ├── size.less │ │ │ ├── tab-focus.less │ │ │ ├── table-row.less │ │ │ ├── text-emphasis.less │ │ │ ├── text-overflow.less │ │ │ └── vendor-prefixes.less │ │ ├── modals.less │ │ ├── navbar.less │ │ ├── navs.less │ │ ├── normalize.less │ │ ├── pager.less │ │ ├── pagination.less │ │ ├── panels.less │ │ ├── popovers.less │ │ ├── print.less │ │ ├── progress-bars.less │ │ ├── responsive-embed.less │ │ ├── responsive-utilities.less │ │ ├── scaffolding.less │ │ ├── tables.less │ │ ├── theme.less │ │ ├── thumbnails.less │ │ ├── tooltip.less │ │ ├── type.less │ │ ├── utilities.less │ │ ├── variables.less │ │ └── wells.less │ ├── nuget │ │ ├── MyGet.ps1 │ │ ├── bootstrap.less.nuspec │ │ └── bootstrap.nuspec │ ├── package.js │ └── package.json │ ├── jquery-validation-unobtrusive │ ├── .bower.json │ ├── jquery.validate.unobtrusive.js │ └── jquery.validate.unobtrusive.min.js │ ├── jquery-validation │ ├── .bower.json │ ├── LICENSE.md │ └── dist │ │ ├── additional-methods.js │ │ ├── additional-methods.min.js │ │ ├── jquery.validate.js │ │ └── jquery.validate.min.js │ ├── jquery │ ├── .bower.json │ ├── LICENSE.txt │ └── dist │ │ ├── jquery.js │ │ ├── jquery.min.js │ │ └── jquery.min.map │ └── moment │ ├── .bower.json │ ├── CHANGELOG.md │ ├── LICENSE │ ├── README.md │ ├── bower.json │ ├── locale │ ├── af.js │ ├── ar-dz.js │ ├── ar-ly.js │ ├── ar-ma.js │ ├── ar-sa.js │ ├── ar-tn.js │ ├── ar.js │ ├── az.js │ ├── be.js │ ├── bg.js │ ├── bn.js │ ├── bo.js │ ├── br.js │ ├── bs.js │ ├── ca.js │ ├── cs.js │ ├── cv.js │ ├── cy.js │ ├── da.js │ ├── de-at.js │ ├── de.js │ ├── dv.js │ ├── el.js │ ├── en-au.js │ ├── en-ca.js │ ├── en-gb.js │ ├── en-ie.js │ ├── en-nz.js │ ├── eo.js │ ├── es-do.js │ ├── es.js │ ├── et.js │ ├── eu.js │ ├── fa.js │ ├── fi.js │ ├── fo.js │ ├── fr-ca.js │ ├── fr-ch.js │ ├── fr.js │ ├── fy.js │ ├── gd.js │ ├── gl.js │ ├── he.js │ ├── hi.js │ ├── hr.js │ ├── hu.js │ ├── hy-am.js │ ├── id.js │ ├── is.js │ ├── it.js │ ├── ja.js │ ├── jv.js │ ├── ka.js │ ├── kk.js │ ├── km.js │ ├── ko.js │ ├── ky.js │ ├── lb.js │ ├── lo.js │ ├── lt.js │ ├── lv.js │ ├── me.js │ ├── mi.js │ ├── mk.js │ ├── ml.js │ ├── mr.js │ ├── ms-my.js │ ├── ms.js │ ├── my.js │ ├── nb.js │ ├── ne.js │ ├── nl-be.js │ ├── nl.js │ ├── nn.js │ ├── pa-in.js │ ├── pl.js │ ├── pt-br.js │ ├── pt.js │ ├── ro.js │ ├── ru.js │ ├── se.js │ ├── si.js │ ├── sk.js │ ├── sl.js │ ├── sq.js │ ├── sr-cyrl.js │ ├── sr.js │ ├── ss.js │ ├── sv.js │ ├── sw.js │ ├── ta.js │ ├── te.js │ ├── tet.js │ ├── th.js │ ├── tl-ph.js │ ├── tlh.js │ ├── tr.js │ ├── tzl.js │ ├── tzm-latn.js │ ├── tzm.js │ ├── uk.js │ ├── uz.js │ ├── vi.js │ ├── x-pseudo.js │ ├── yo.js │ ├── zh-cn.js │ ├── zh-hk.js │ └── zh-tw.js │ ├── min │ ├── locales.js │ ├── locales.min.js │ ├── moment-with-locales.js │ ├── moment-with-locales.min.js │ ├── moment.min.js │ └── tests.js │ ├── moment.d.ts │ ├── moment.js │ ├── src │ ├── lib │ │ ├── create │ │ │ ├── check-overflow.js │ │ │ ├── date-from-array.js │ │ │ ├── from-anything.js │ │ │ ├── from-array.js │ │ │ ├── from-object.js │ │ │ ├── from-string-and-array.js │ │ │ ├── from-string-and-format.js │ │ │ ├── from-string.js │ │ │ ├── local.js │ │ │ ├── parsing-flags.js │ │ │ ├── utc.js │ │ │ └── valid.js │ │ ├── duration │ │ │ ├── abs.js │ │ │ ├── add-subtract.js │ │ │ ├── as.js │ │ │ ├── bubble.js │ │ │ ├── constructor.js │ │ │ ├── create.js │ │ │ ├── duration.js │ │ │ ├── get.js │ │ │ ├── humanize.js │ │ │ ├── iso-string.js │ │ │ └── prototype.js │ │ ├── format │ │ │ └── format.js │ │ ├── locale │ │ │ ├── base-config.js │ │ │ ├── calendar.js │ │ │ ├── constructor.js │ │ │ ├── en.js │ │ │ ├── formats.js │ │ │ ├── invalid.js │ │ │ ├── lists.js │ │ │ ├── locale.js │ │ │ ├── locales.js │ │ │ ├── ordinal.js │ │ │ ├── pre-post-format.js │ │ │ ├── prototype.js │ │ │ ├── relative.js │ │ │ └── set.js │ │ ├── moment │ │ │ ├── add-subtract.js │ │ │ ├── calendar.js │ │ │ ├── clone.js │ │ │ ├── compare.js │ │ │ ├── constructor.js │ │ │ ├── creation-data.js │ │ │ ├── diff.js │ │ │ ├── format.js │ │ │ ├── from.js │ │ │ ├── get-set.js │ │ │ ├── locale.js │ │ │ ├── min-max.js │ │ │ ├── moment.js │ │ │ ├── now.js │ │ │ ├── prototype.js │ │ │ ├── start-end-of.js │ │ │ ├── to-type.js │ │ │ ├── to.js │ │ │ └── valid.js │ │ ├── parse │ │ │ ├── regex.js │ │ │ └── token.js │ │ ├── units │ │ │ ├── aliases.js │ │ │ ├── constants.js │ │ │ ├── day-of-month.js │ │ │ ├── day-of-week.js │ │ │ ├── day-of-year.js │ │ │ ├── hour.js │ │ │ ├── millisecond.js │ │ │ ├── minute.js │ │ │ ├── month.js │ │ │ ├── offset.js │ │ │ ├── priorities.js │ │ │ ├── quarter.js │ │ │ ├── second.js │ │ │ ├── timestamp.js │ │ │ ├── timezone.js │ │ │ ├── units.js │ │ │ ├── week-calendar-utils.js │ │ │ ├── week-year.js │ │ │ ├── week.js │ │ │ └── year.js │ │ └── utils │ │ │ ├── abs-ceil.js │ │ │ ├── abs-floor.js │ │ │ ├── abs-round.js │ │ │ ├── compare-arrays.js │ │ │ ├── defaults.js │ │ │ ├── deprecate.js │ │ │ ├── extend.js │ │ │ ├── has-own-prop.js │ │ │ ├── hooks.js │ │ │ ├── index-of.js │ │ │ ├── is-array.js │ │ │ ├── is-date.js │ │ │ ├── is-function.js │ │ │ ├── is-number.js │ │ │ ├── is-object-empty.js │ │ │ ├── is-object.js │ │ │ ├── is-undefined.js │ │ │ ├── keys.js │ │ │ ├── map.js │ │ │ ├── some.js │ │ │ ├── to-int.js │ │ │ └── zero-fill.js │ ├── locale │ │ ├── af.js │ │ ├── ar-dz.js │ │ ├── ar-ly.js │ │ ├── ar-ma.js │ │ ├── ar-sa.js │ │ ├── ar-tn.js │ │ ├── ar.js │ │ ├── az.js │ │ ├── be.js │ │ ├── bg.js │ │ ├── bn.js │ │ ├── bo.js │ │ ├── br.js │ │ ├── bs.js │ │ ├── ca.js │ │ ├── cs.js │ │ ├── cv.js │ │ ├── cy.js │ │ ├── da.js │ │ ├── de-at.js │ │ ├── de.js │ │ ├── dv.js │ │ ├── el.js │ │ ├── en-au.js │ │ ├── en-ca.js │ │ ├── en-gb.js │ │ ├── en-ie.js │ │ ├── en-nz.js │ │ ├── eo.js │ │ ├── es-do.js │ │ ├── es.js │ │ ├── et.js │ │ ├── eu.js │ │ ├── fa.js │ │ ├── fi.js │ │ ├── fo.js │ │ ├── fr-ca.js │ │ ├── fr-ch.js │ │ ├── fr.js │ │ ├── fy.js │ │ ├── gd.js │ │ ├── gl.js │ │ ├── he.js │ │ ├── hi.js │ │ ├── hr.js │ │ ├── hu.js │ │ ├── hy-am.js │ │ ├── id.js │ │ ├── is.js │ │ ├── it.js │ │ ├── ja.js │ │ ├── jv.js │ │ ├── ka.js │ │ ├── kk.js │ │ ├── km.js │ │ ├── ko.js │ │ ├── ky.js │ │ ├── lb.js │ │ ├── lo.js │ │ ├── lt.js │ │ ├── lv.js │ │ ├── me.js │ │ ├── mi.js │ │ ├── mk.js │ │ ├── ml.js │ │ ├── mr.js │ │ ├── ms-my.js │ │ ├── ms.js │ │ ├── my.js │ │ ├── nb.js │ │ ├── ne.js │ │ ├── nl-be.js │ │ ├── nl.js │ │ ├── nn.js │ │ ├── pa-in.js │ │ ├── pl.js │ │ ├── pt-br.js │ │ ├── pt.js │ │ ├── ro.js │ │ ├── ru.js │ │ ├── se.js │ │ ├── si.js │ │ ├── sk.js │ │ ├── sl.js │ │ ├── sq.js │ │ ├── sr-cyrl.js │ │ ├── sr.js │ │ ├── ss.js │ │ ├── sv.js │ │ ├── sw.js │ │ ├── ta.js │ │ ├── te.js │ │ ├── tet.js │ │ ├── th.js │ │ ├── tl-ph.js │ │ ├── tlh.js │ │ ├── tr.js │ │ ├── tzl.js │ │ ├── tzm-latn.js │ │ ├── tzm.js │ │ ├── uk.js │ │ ├── uz.js │ │ ├── vi.js │ │ ├── x-pseudo.js │ │ ├── yo.js │ │ ├── zh-cn.js │ │ ├── zh-hk.js │ │ └── zh-tw.js │ └── moment.js │ └── templates │ ├── default.js │ ├── locale-header.js │ └── test-header.js └── README.md /.gitignore: -------------------------------------------------------------------------------- 1 | /ChatRoom/obj 2 | /ChatRoom/bin 3 | /.vs 4 | -------------------------------------------------------------------------------- /ChatRoom.sln: -------------------------------------------------------------------------------- 1 |  2 | Microsoft Visual Studio Solution File, Format Version 12.00 3 | # Visual Studio 15 4 | VisualStudioVersion = 15.0.26228.9 5 | MinimumVisualStudioVersion = 10.0.40219.1 6 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ChatRoom", "ChatRoom\ChatRoom.csproj", "{A1F85AAF-149D-4783-8ED7-3BA935473475}" 7 | EndProject 8 | Global 9 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 10 | Debug|Any CPU = Debug|Any CPU 11 | Release|Any CPU = Release|Any CPU 12 | EndGlobalSection 13 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 14 | {A1F85AAF-149D-4783-8ED7-3BA935473475}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 15 | {A1F85AAF-149D-4783-8ED7-3BA935473475}.Debug|Any CPU.Build.0 = Debug|Any CPU 16 | {A1F85AAF-149D-4783-8ED7-3BA935473475}.Release|Any CPU.ActiveCfg = Release|Any CPU 17 | {A1F85AAF-149D-4783-8ED7-3BA935473475}.Release|Any CPU.Build.0 = Release|Any CPU 18 | EndGlobalSection 19 | GlobalSection(SolutionProperties) = preSolution 20 | HideSolutionNode = FALSE 21 | EndGlobalSection 22 | EndGlobal 23 | -------------------------------------------------------------------------------- /ChatRoom/.bowerrc: -------------------------------------------------------------------------------- 1 | { 2 | "directory": "wwwroot/lib" 3 | } 4 | -------------------------------------------------------------------------------- /ChatRoom/ChatData.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Threading.Tasks; 5 | 6 | namespace ChatRoom 7 | { 8 | public class ChatData 9 | { 10 | public string content { get; set; } 11 | public DateTime time { get; set; } 12 | public string name { get; set; } 13 | public string sex { get; set; } 14 | public string info { get; set; } 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /ChatRoom/ChatRoom.csproj: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | netcoreapp2.0 5 | 6 | 7 | 8 | $(PackageTargetFallback);portable-net45+win8+wp8+wpa81; 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | PreserveNewest 28 | 29 | 30 | 31 | 32 | -------------------------------------------------------------------------------- /ChatRoom/ChatRoom.csproj.user: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | FolderProfile 5 | 6 | -------------------------------------------------------------------------------- /ChatRoom/Controllers/HomeController.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Threading.Tasks; 5 | using Microsoft.AspNetCore.Mvc; 6 | using Newtonsoft.Json; 7 | 8 | namespace ChatRoom.Controllers 9 | { 10 | public class HomeController : Controller 11 | { 12 | public IActionResult Index() 13 | { 14 | ViewBag.HistoricalMessg = JsonConvert.SerializeObject(SocketHandler.historicalMessg).Replace("", "(/script)"); 15 | return View(); 16 | } 17 | 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /ChatRoom/Dockerfile: -------------------------------------------------------------------------------- 1 | #基于microsoft/aspnetcore构建镜像 2 | FROM microsoft/aspnetcore 3 | 4 | #拷贝项目websocket文件夹中的所有文件到docker容器中的websocket文件夹中 5 | COPY . /websocket 6 | 7 | #设置工作目录为websocket文件夹 8 | WORKDIR /websocket 9 | 10 | #设置Docker容器对外暴露80端口 11 | EXPOSE 80 12 | 13 | #使用dotnet ChatRoom.dll来运行应用程序 14 | CMD ["dotnet", "ChatRoom.dll"] -------------------------------------------------------------------------------- /ChatRoom/Program.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.IO; 4 | using System.Linq; 5 | using System.Threading.Tasks; 6 | using Microsoft.AspNetCore.Hosting; 7 | using Microsoft.Extensions.Configuration; 8 | 9 | namespace ChatRoom 10 | { 11 | public class Program 12 | { 13 | public static void Main(string[] args) 14 | { 15 | var config = new ConfigurationBuilder() 16 | .SetBasePath(Directory.GetCurrentDirectory()) 17 | .AddJsonFile("hosting.json", optional: true) 18 | .Build(); 19 | 20 | var host = new WebHostBuilder() 21 | .UseKestrel() 22 | .UseConfiguration(config) 23 | .UseContentRoot(Directory.GetCurrentDirectory()) 24 | .UseIISIntegration() 25 | .UseStartup() 26 | .UseApplicationInsights() 27 | .Build(); 28 | 29 | host.Run(); 30 | } 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /ChatRoom/Properties/PublishProfiles/FolderProfile.pubxml: -------------------------------------------------------------------------------- 1 |  2 | 6 | 7 | 8 | FileSystem 9 | FileSystem 10 | Release 11 | Any CPU 12 | 13 | True 14 | False 15 | netcoreapp1.1 16 | a1f85aaf-149d-4783-8ed7-3ba935473475 17 | C:\01Files\project\websocket 18 | False 19 | 20 | -------------------------------------------------------------------------------- /ChatRoom/Properties/PublishProfiles/FolderProfile.pubxml.user: -------------------------------------------------------------------------------- 1 |  2 | 6 | 7 | 8 | 9 | <_NewBackgroundProfile>False 10 | <_PublishTargetUrl>C:\01Files\project\websocket 11 | 12 | -------------------------------------------------------------------------------- /ChatRoom/Properties/launchSettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "iisSettings": { 3 | "windowsAuthentication": false, 4 | "anonymousAuthentication": true, 5 | "iisExpress": { 6 | "applicationUrl": "http://localhost:24281/", 7 | "sslPort": 0 8 | } 9 | }, 10 | "profiles": { 11 | "IIS Express": { 12 | "commandName": "IISExpress", 13 | "launchBrowser": true, 14 | "environmentVariables": { 15 | "ASPNETCORE_ENVIRONMENT": "Development" 16 | } 17 | }, 18 | "ChatRoom": { 19 | "commandName": "Project", 20 | "launchBrowser": true, 21 | "environmentVariables": { 22 | "ASPNETCORE_ENVIRONMENT": "Development" 23 | }, 24 | "applicationUrl": "http://localhost:24282" 25 | } 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /ChatRoom/Views/Shared/Error.cshtml: -------------------------------------------------------------------------------- 1 | @{ 2 | ViewData["Title"] = "Error"; 3 | } 4 | 5 |

Error.

6 |

An error occurred while processing your request.

7 | 8 |

Development Mode

9 |

10 | Swapping to Development environment will display more detailed information about the error that occurred. 11 |

12 |

13 | Development environment should not be enabled in deployed applications, as it can result in sensitive information from exceptions being displayed to end users. For local debugging, development environment can be enabled by setting the ASPNETCORE_ENVIRONMENT environment variable to Development, and restarting the application. 14 |

15 | -------------------------------------------------------------------------------- /ChatRoom/Views/Shared/_Layout.cshtml: -------------------------------------------------------------------------------- 1 | @inject Microsoft.ApplicationInsights.AspNetCore.JavaScriptSnippet JavaScriptSnippet 2 | 3 | 4 | 5 | 6 | 7 | @ViewData["Title"] 8 | 9 | 10 | 11 | 12 |
13 | @RenderBody() 14 | 15 |
16 | 17 | @RenderSection("Scripts", required: false) 18 | 19 | 20 | -------------------------------------------------------------------------------- /ChatRoom/Views/Shared/_ValidationScriptsPartial.cshtml: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | 12 | 18 | 19 | -------------------------------------------------------------------------------- /ChatRoom/Views/_ViewImports.cshtml: -------------------------------------------------------------------------------- 1 | @using ChatRoom 2 | @addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers 3 | -------------------------------------------------------------------------------- /ChatRoom/Views/_ViewStart.cshtml: -------------------------------------------------------------------------------- 1 | @{ 2 | Layout = "_Layout"; 3 | } 4 | -------------------------------------------------------------------------------- /ChatRoom/appsettings.Development.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "IncludeScopes": false, 4 | "LogLevel": { 5 | "Default": "Debug", 6 | "System": "Information", 7 | "Microsoft": "Information" 8 | } 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /ChatRoom/appsettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "IncludeScopes": false, 4 | "LogLevel": { 5 | "Default": "Warning" 6 | } 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /ChatRoom/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "asp.net", 3 | "private": true, 4 | "dependencies": { 5 | "bootstrap": "3.3.7", 6 | "jquery": "2.2.0", 7 | "jquery-validation": "1.14.0", 8 | "jquery-validation-unobtrusive": "3.2.6", 9 | "moment": "2.18.1" 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /ChatRoom/bundleconfig.json: -------------------------------------------------------------------------------- 1 | // Configure bundling and minification for the project. 2 | // More info at https://go.microsoft.com/fwlink/?LinkId=808241 3 | [ 4 | { 5 | "outputFileName": "wwwroot/css/site.min.css", 6 | // An array of relative input file paths. Globbing patterns supported 7 | "inputFiles": [ 8 | "wwwroot/css/site.css" 9 | ] 10 | }, 11 | { 12 | "outputFileName": "wwwroot/js/site.min.js", 13 | "inputFiles": [ 14 | "wwwroot/js/site.js" 15 | ], 16 | // Optionally specify minification options 17 | "minify": { 18 | "enabled": true, 19 | "renameLocals": true 20 | }, 21 | // Optionally generate .map file 22 | "sourceMap": false 23 | } 24 | ] 25 | -------------------------------------------------------------------------------- /ChatRoom/hosting.json: -------------------------------------------------------------------------------- 1 | { 2 | "server.urls": "http://*:80" 3 | } -------------------------------------------------------------------------------- /ChatRoom/wwwroot/css/site.css: -------------------------------------------------------------------------------- 1 | body { 2 | padding-top: 50px; 3 | padding-bottom: 20px; 4 | } 5 | 6 | /* Wrapping element */ 7 | /* Set some basic padding to keep content from hitting the edges */ 8 | .body-content { 9 | padding-left: 15px; 10 | padding-right: 15px; 11 | } 12 | 13 | /* Set widths on the form inputs since otherwise they're 100% wide */ 14 | input, 15 | select, 16 | textarea { 17 | max-width: 280px; 18 | } 19 | 20 | /* Carousel */ 21 | .carousel-caption p { 22 | font-size: 20px; 23 | line-height: 1.4; 24 | } 25 | 26 | /* Make .svg files in the carousel display properly in older browsers */ 27 | .carousel-inner .item img[src$=".svg"] { 28 | width: 100%; 29 | } 30 | 31 | /* Hide/rearrange for smaller screens */ 32 | @media screen and (max-width: 767px) { 33 | /* Hide captions */ 34 | .carousel-caption { 35 | display: none; 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /ChatRoom/wwwroot/css/site.min.css: -------------------------------------------------------------------------------- 1 | body{padding-top:50px;padding-bottom:20px}.body-content{padding-left:15px;padding-right:15px}input,select,textarea{max-width:280px}.carousel-caption p{font-size:20px;line-height:1.4}.carousel-inner .item img[src$=".svg"]{width:100%}@media screen and (max-width:767px){.carousel-caption{display:none}} -------------------------------------------------------------------------------- /ChatRoom/wwwroot/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhaopeiym/ChatRoom/a6bd11734770c86c6d77ad1d2b562faafd51ac86/ChatRoom/wwwroot/favicon.ico -------------------------------------------------------------------------------- /ChatRoom/wwwroot/images/background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhaopeiym/ChatRoom/a6bd11734770c86c6d77ad1d2b562faafd51ac86/ChatRoom/wwwroot/images/background.png -------------------------------------------------------------------------------- /ChatRoom/wwwroot/images/github.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhaopeiym/ChatRoom/a6bd11734770c86c6d77ad1d2b562faafd51ac86/ChatRoom/wwwroot/images/github.jpg -------------------------------------------------------------------------------- /ChatRoom/wwwroot/images/留言.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhaopeiym/ChatRoom/a6bd11734770c86c6d77ad1d2b562faafd51ac86/ChatRoom/wwwroot/images/留言.png -------------------------------------------------------------------------------- /ChatRoom/wwwroot/js/site.js: -------------------------------------------------------------------------------- 1 | // Write your Javascript code. 2 | -------------------------------------------------------------------------------- /ChatRoom/wwwroot/js/site.min.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhaopeiym/ChatRoom/a6bd11734770c86c6d77ad1d2b562faafd51ac86/ChatRoom/wwwroot/js/site.min.js -------------------------------------------------------------------------------- /ChatRoom/wwwroot/lib/bootstrap/.bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "bootstrap", 3 | "description": "The most popular front-end framework for developing responsive, mobile first projects on the web.", 4 | "keywords": [ 5 | "css", 6 | "js", 7 | "less", 8 | "mobile-first", 9 | "responsive", 10 | "front-end", 11 | "framework", 12 | "web" 13 | ], 14 | "homepage": "http://getbootstrap.com", 15 | "license": "MIT", 16 | "moduleType": "globals", 17 | "main": [ 18 | "less/bootstrap.less", 19 | "dist/js/bootstrap.js" 20 | ], 21 | "ignore": [ 22 | "/.*", 23 | "_config.yml", 24 | "CNAME", 25 | "composer.json", 26 | "CONTRIBUTING.md", 27 | "docs", 28 | "js/tests", 29 | "test-infra" 30 | ], 31 | "dependencies": { 32 | "jquery": "1.9.1 - 3" 33 | }, 34 | "version": "3.3.7", 35 | "_release": "3.3.7", 36 | "_resolution": { 37 | "type": "version", 38 | "tag": "v3.3.7", 39 | "commit": "0b9c4a4007c44201dce9a6cc1a38407005c26c86" 40 | }, 41 | "_source": "https://github.com/twbs/bootstrap.git", 42 | "_target": "3.3.7", 43 | "_originalSource": "bootstrap" 44 | } -------------------------------------------------------------------------------- /ChatRoom/wwwroot/lib/bootstrap/CHANGELOG.md: -------------------------------------------------------------------------------- 1 | Bootstrap uses [GitHub's Releases feature](https://github.com/blog/1547-release-your-software) for its changelogs. 2 | 3 | See [the Releases section of our GitHub project](https://github.com/twbs/bootstrap/releases) for changelogs for each release version of Bootstrap. 4 | 5 | Release announcement posts on [the official Bootstrap blog](http://blog.getbootstrap.com) contain summaries of the most noteworthy changes made in each release. 6 | -------------------------------------------------------------------------------- /ChatRoom/wwwroot/lib/bootstrap/Gemfile: -------------------------------------------------------------------------------- 1 | source 'https://rubygems.org' 2 | 3 | group :development, :test do 4 | gem 'jekyll', '~> 3.1.2' 5 | gem 'jekyll-sitemap', '~> 0.11.0' 6 | end 7 | -------------------------------------------------------------------------------- /ChatRoom/wwwroot/lib/bootstrap/Gemfile.lock: -------------------------------------------------------------------------------- 1 | GEM 2 | remote: https://rubygems.org/ 3 | specs: 4 | addressable (2.4.0) 5 | colorator (0.1) 6 | ffi (1.9.14-x64-mingw32) 7 | jekyll (3.1.6) 8 | colorator (~> 0.1) 9 | jekyll-sass-converter (~> 1.0) 10 | jekyll-watch (~> 1.1) 11 | kramdown (~> 1.3) 12 | liquid (~> 3.0) 13 | mercenary (~> 0.3.3) 14 | rouge (~> 1.7) 15 | safe_yaml (~> 1.0) 16 | jekyll-sass-converter (1.4.0) 17 | sass (~> 3.4) 18 | jekyll-sitemap (0.11.0) 19 | addressable (~> 2.4.0) 20 | jekyll-watch (1.4.0) 21 | listen (~> 3.0, < 3.1) 22 | kramdown (1.11.1) 23 | liquid (3.0.6) 24 | listen (3.0.8) 25 | rb-fsevent (~> 0.9, >= 0.9.4) 26 | rb-inotify (~> 0.9, >= 0.9.7) 27 | mercenary (0.3.6) 28 | rb-fsevent (0.9.7) 29 | rb-inotify (0.9.7) 30 | ffi (>= 0.5.0) 31 | rouge (1.11.1) 32 | safe_yaml (1.0.4) 33 | sass (3.4.22) 34 | 35 | PLATFORMS 36 | x64-mingw32 37 | 38 | DEPENDENCIES 39 | jekyll (~> 3.1.2) 40 | jekyll-sitemap (~> 0.11.0) 41 | 42 | BUNDLED WITH 43 | 1.12.5 44 | -------------------------------------------------------------------------------- /ChatRoom/wwwroot/lib/bootstrap/ISSUE_TEMPLATE.md: -------------------------------------------------------------------------------- 1 | Before opening an issue: 2 | 3 | - [Search for duplicate or closed issues](https://github.com/twbs/bootstrap/issues?utf8=%E2%9C%93&q=is%3Aissue) 4 | - [Validate](http://validator.w3.org/nu/) and [lint](https://github.com/twbs/bootlint#in-the-browser) any HTML to avoid common problems 5 | - Prepare a [reduced test case](https://css-tricks.com/reduced-test-cases/) for any bugs 6 | - Read the [contributing guidelines](https://github.com/twbs/bootstrap/blob/master/CONTRIBUTING.md) 7 | 8 | When asking general "how to" questions: 9 | 10 | - Please do not open an issue here 11 | - Instead, ask for help on [StackOverflow, IRC, or Slack](https://github.com/twbs/bootstrap/blob/master/README.md#community) 12 | 13 | When reporting a bug, include: 14 | 15 | - Operating system and version (Windows, Mac OS X, Android, iOS, Win10 Mobile) 16 | - Browser and version (Chrome, Firefox, Safari, IE, MS Edge, Opera 15+, Android Browser) 17 | - Reduced test cases and potential fixes using [JS Bin](https://jsbin.com) 18 | 19 | When suggesting a feature, include: 20 | 21 | - As much detail as possible for what we should add and why it's important to Bootstrap 22 | - Relevant links to prior art, screenshots, or live demos whenever possible 23 | -------------------------------------------------------------------------------- /ChatRoom/wwwroot/lib/bootstrap/LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2011-2016 Twitter, Inc. 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in 13 | all copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 21 | THE SOFTWARE. 22 | -------------------------------------------------------------------------------- /ChatRoom/wwwroot/lib/bootstrap/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "bootstrap", 3 | "description": "The most popular front-end framework for developing responsive, mobile first projects on the web.", 4 | "keywords": [ 5 | "css", 6 | "js", 7 | "less", 8 | "mobile-first", 9 | "responsive", 10 | "front-end", 11 | "framework", 12 | "web" 13 | ], 14 | "homepage": "http://getbootstrap.com", 15 | "license": "MIT", 16 | "moduleType": "globals", 17 | "main": [ 18 | "less/bootstrap.less", 19 | "dist/js/bootstrap.js" 20 | ], 21 | "ignore": [ 22 | "/.*", 23 | "_config.yml", 24 | "CNAME", 25 | "composer.json", 26 | "CONTRIBUTING.md", 27 | "docs", 28 | "js/tests", 29 | "test-infra" 30 | ], 31 | "dependencies": { 32 | "jquery": "1.9.1 - 3" 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /ChatRoom/wwwroot/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhaopeiym/ChatRoom/a6bd11734770c86c6d77ad1d2b562faafd51ac86/ChatRoom/wwwroot/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.eot -------------------------------------------------------------------------------- /ChatRoom/wwwroot/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhaopeiym/ChatRoom/a6bd11734770c86c6d77ad1d2b562faafd51ac86/ChatRoom/wwwroot/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.ttf -------------------------------------------------------------------------------- /ChatRoom/wwwroot/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhaopeiym/ChatRoom/a6bd11734770c86c6d77ad1d2b562faafd51ac86/ChatRoom/wwwroot/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.woff -------------------------------------------------------------------------------- /ChatRoom/wwwroot/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhaopeiym/ChatRoom/a6bd11734770c86c6d77ad1d2b562faafd51ac86/ChatRoom/wwwroot/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.woff2 -------------------------------------------------------------------------------- /ChatRoom/wwwroot/lib/bootstrap/dist/js/npm.js: -------------------------------------------------------------------------------- 1 | // This file is autogenerated via the `commonjs` Grunt task. You can require() this file in a CommonJS environment. 2 | require('../../js/transition.js') 3 | require('../../js/alert.js') 4 | require('../../js/button.js') 5 | require('../../js/carousel.js') 6 | require('../../js/collapse.js') 7 | require('../../js/dropdown.js') 8 | require('../../js/modal.js') 9 | require('../../js/tooltip.js') 10 | require('../../js/popover.js') 11 | require('../../js/scrollspy.js') 12 | require('../../js/tab.js') 13 | require('../../js/affix.js') -------------------------------------------------------------------------------- /ChatRoom/wwwroot/lib/bootstrap/fonts/glyphicons-halflings-regular.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhaopeiym/ChatRoom/a6bd11734770c86c6d77ad1d2b562faafd51ac86/ChatRoom/wwwroot/lib/bootstrap/fonts/glyphicons-halflings-regular.eot -------------------------------------------------------------------------------- /ChatRoom/wwwroot/lib/bootstrap/fonts/glyphicons-halflings-regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhaopeiym/ChatRoom/a6bd11734770c86c6d77ad1d2b562faafd51ac86/ChatRoom/wwwroot/lib/bootstrap/fonts/glyphicons-halflings-regular.ttf -------------------------------------------------------------------------------- /ChatRoom/wwwroot/lib/bootstrap/fonts/glyphicons-halflings-regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhaopeiym/ChatRoom/a6bd11734770c86c6d77ad1d2b562faafd51ac86/ChatRoom/wwwroot/lib/bootstrap/fonts/glyphicons-halflings-regular.woff -------------------------------------------------------------------------------- /ChatRoom/wwwroot/lib/bootstrap/fonts/glyphicons-halflings-regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhaopeiym/ChatRoom/a6bd11734770c86c6d77ad1d2b562faafd51ac86/ChatRoom/wwwroot/lib/bootstrap/fonts/glyphicons-halflings-regular.woff2 -------------------------------------------------------------------------------- /ChatRoom/wwwroot/lib/bootstrap/grunt/.jshintrc: -------------------------------------------------------------------------------- 1 | { 2 | "extends" : "../js/.jshintrc", 3 | "asi" : false, 4 | "browser" : false, 5 | "es3" : false, 6 | "node" : true 7 | } 8 | -------------------------------------------------------------------------------- /ChatRoom/wwwroot/lib/bootstrap/grunt/bs-commonjs-generator.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * Bootstrap Grunt task for the CommonJS module generation 3 | * http://getbootstrap.com 4 | * Copyright 2014-2015 Twitter, Inc. 5 | * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) 6 | */ 7 | 8 | 'use strict'; 9 | 10 | var fs = require('fs'); 11 | var path = require('path'); 12 | 13 | var COMMONJS_BANNER = '// This file is autogenerated via the `commonjs` Grunt task. You can require() this file in a CommonJS environment.\n'; 14 | 15 | module.exports = function generateCommonJSModule(grunt, srcFiles, destFilepath) { 16 | var destDir = path.dirname(destFilepath); 17 | 18 | function srcPathToDestRequire(srcFilepath) { 19 | var requirePath = path.relative(destDir, srcFilepath).replace(/\\/g, '/'); 20 | return 'require(\'' + requirePath + '\')'; 21 | } 22 | 23 | var moduleOutputJs = COMMONJS_BANNER + srcFiles.map(srcPathToDestRequire).join('\n'); 24 | try { 25 | fs.writeFileSync(destFilepath, moduleOutputJs); 26 | } catch (err) { 27 | grunt.fail.warn(err); 28 | } 29 | grunt.log.writeln('File ' + destFilepath.cyan + ' created.'); 30 | }; 31 | -------------------------------------------------------------------------------- /ChatRoom/wwwroot/lib/bootstrap/grunt/bs-glyphicons-data-generator.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * Bootstrap Grunt task for Glyphicons data generation 3 | * http://getbootstrap.com 4 | * Copyright 2014-2015 Twitter, Inc. 5 | * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) 6 | */ 7 | 8 | 'use strict'; 9 | 10 | var fs = require('fs'); 11 | 12 | module.exports = function generateGlyphiconsData(grunt) { 13 | // Pass encoding, utf8, so `readFileSync` will return a string instead of a 14 | // buffer 15 | var glyphiconsFile = fs.readFileSync('less/glyphicons.less', 'utf8'); 16 | var glyphiconsLines = glyphiconsFile.split('\n'); 17 | 18 | // Use any line that starts with ".glyphicon-" and capture the class name 19 | var iconClassName = /^\.(glyphicon-[a-zA-Z0-9-]+)/; 20 | var glyphiconsData = '# This file is generated via Grunt task. **Do not edit directly.**\n' + 21 | '# See the \'build-glyphicons-data\' task in Gruntfile.js.\n\n'; 22 | var glyphiconsYml = 'docs/_data/glyphicons.yml'; 23 | for (var i = 0, len = glyphiconsLines.length; i < len; i++) { 24 | var match = glyphiconsLines[i].match(iconClassName); 25 | 26 | if (match !== null) { 27 | glyphiconsData += '- ' + match[1] + '\n'; 28 | } 29 | } 30 | 31 | // Create the `_data` directory if it doesn't already exist 32 | if (!fs.existsSync('docs/_data')) { 33 | fs.mkdirSync('docs/_data'); 34 | } 35 | 36 | try { 37 | fs.writeFileSync(glyphiconsYml, glyphiconsData); 38 | } catch (err) { 39 | grunt.fail.warn(err); 40 | } 41 | grunt.log.writeln('File ' + glyphiconsYml.cyan + ' created.'); 42 | }; 43 | -------------------------------------------------------------------------------- /ChatRoom/wwwroot/lib/bootstrap/grunt/bs-raw-files-generator.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * Bootstrap Grunt task for generating raw-files.min.js for the Customizer 3 | * http://getbootstrap.com 4 | * Copyright 2014-2015 Twitter, Inc. 5 | * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) 6 | */ 7 | 8 | 'use strict'; 9 | 10 | var fs = require('fs'); 11 | var btoa = require('btoa'); 12 | var glob = require('glob'); 13 | 14 | function getFiles(type) { 15 | var files = {}; 16 | var recursive = type === 'less'; 17 | var globExpr = recursive ? '/**/*' : '/*'; 18 | glob.sync(type + globExpr) 19 | .filter(function (path) { 20 | return type === 'fonts' ? true : new RegExp('\\.' + type + '$').test(path); 21 | }) 22 | .forEach(function (fullPath) { 23 | var relativePath = fullPath.replace(/^[^/]+\//, ''); 24 | files[relativePath] = type === 'fonts' ? btoa(fs.readFileSync(fullPath)) : fs.readFileSync(fullPath, 'utf8'); 25 | }); 26 | return 'var __' + type + ' = ' + JSON.stringify(files) + '\n'; 27 | } 28 | 29 | module.exports = function generateRawFilesJs(grunt, banner) { 30 | if (!banner) { 31 | banner = ''; 32 | } 33 | var dirs = ['js', 'less', 'fonts']; 34 | var files = banner + dirs.map(getFiles).reduce(function (combined, file) { 35 | return combined + file; 36 | }, ''); 37 | var rawFilesJs = 'docs/assets/js/raw-files.min.js'; 38 | try { 39 | fs.writeFileSync(rawFilesJs, files); 40 | } catch (err) { 41 | grunt.fail.warn(err); 42 | } 43 | grunt.log.writeln('File ' + rawFilesJs.cyan + ' created.'); 44 | }; 45 | -------------------------------------------------------------------------------- /ChatRoom/wwwroot/lib/bootstrap/grunt/configBridge.json: -------------------------------------------------------------------------------- 1 | { 2 | "paths": { 3 | "customizerJs": [ 4 | "../assets/js/vendor/autoprefixer.js", 5 | "../assets/js/vendor/less.min.js", 6 | "../assets/js/vendor/jszip.min.js", 7 | "../assets/js/vendor/uglify.min.js", 8 | "../assets/js/vendor/Blob.js", 9 | "../assets/js/vendor/FileSaver.js", 10 | "../assets/js/raw-files.min.js", 11 | "../assets/js/src/customizer.js" 12 | ], 13 | "docsJs": [ 14 | "../assets/js/vendor/holder.min.js", 15 | "../assets/js/vendor/ZeroClipboard.min.js", 16 | "../assets/js/vendor/anchor.min.js", 17 | "../assets/js/src/application.js" 18 | ] 19 | }, 20 | "config": { 21 | "autoprefixerBrowsers": [ 22 | "Android 2.3", 23 | "Android >= 4", 24 | "Chrome >= 20", 25 | "Firefox >= 24", 26 | "Explorer >= 8", 27 | "iOS >= 6", 28 | "Opera >= 12", 29 | "Safari >= 6" 30 | ], 31 | "jqueryCheck": [ 32 | "if (typeof jQuery === 'undefined') {", 33 | " throw new Error('Bootstrap\\'s JavaScript requires jQuery')", 34 | "}\n" 35 | ], 36 | "jqueryVersionCheck": [ 37 | "+function ($) {", 38 | " 'use strict';", 39 | " var version = $.fn.jquery.split(' ')[0].split('.')", 40 | " if ((version[0] < 2 && version[1] < 9) || (version[0] == 1 && version[1] == 9 && version[2] < 1) || (version[0] > 3)) {", 41 | " throw new Error('Bootstrap\\'s JavaScript requires jQuery version 1.9.1 or higher, but lower than version 4')", 42 | " }", 43 | "}(jQuery);\n\n" 44 | ] 45 | } 46 | } 47 | -------------------------------------------------------------------------------- /ChatRoom/wwwroot/lib/bootstrap/grunt/sauce_browsers.yml: -------------------------------------------------------------------------------- 1 | [ 2 | # Docs: https://saucelabs.com/docs/platforms/webdriver 3 | 4 | { 5 | browserName: "safari", 6 | platform: "OS X 10.10" 7 | }, 8 | { 9 | browserName: "chrome", 10 | platform: "OS X 10.10" 11 | }, 12 | { 13 | browserName: "firefox", 14 | platform: "OS X 10.10" 15 | }, 16 | 17 | # Mac Opera not currently supported by Sauce Labs 18 | 19 | { 20 | browserName: "internet explorer", 21 | version: "11", 22 | platform: "Windows 8.1" 23 | }, 24 | { 25 | browserName: "internet explorer", 26 | version: "10", 27 | platform: "Windows 8" 28 | }, 29 | { 30 | browserName: "internet explorer", 31 | version: "9", 32 | platform: "Windows 7" 33 | }, 34 | { 35 | browserName: "internet explorer", 36 | version: "8", 37 | platform: "Windows 7" 38 | }, 39 | 40 | # { # Unofficial 41 | # browserName: "internet explorer", 42 | # version: "7", 43 | # platform: "Windows XP" 44 | # }, 45 | 46 | { 47 | browserName: "chrome", 48 | platform: "Windows 8.1" 49 | }, 50 | { 51 | browserName: "firefox", 52 | platform: "Windows 8.1" 53 | }, 54 | 55 | # Win Opera 15+ not currently supported by Sauce Labs 56 | 57 | { 58 | browserName: "iphone", 59 | platform: "OS X 10.10", 60 | version: "9.2" 61 | }, 62 | 63 | # iOS Chrome not currently supported by Sauce Labs 64 | 65 | # Linux (unofficial) 66 | { 67 | browserName: "chrome", 68 | platform: "Linux" 69 | }, 70 | { 71 | browserName: "firefox", 72 | platform: "Linux" 73 | } 74 | 75 | # Android Chrome not currently supported by Sauce Labs 76 | 77 | # { # Android Browser (super-unofficial) 78 | # browserName: "android", 79 | # version: "4.0", 80 | # platform: "Linux" 81 | # } 82 | ] 83 | -------------------------------------------------------------------------------- /ChatRoom/wwwroot/lib/bootstrap/js/.jshintrc: -------------------------------------------------------------------------------- 1 | { 2 | "asi" : true, 3 | "browser" : true, 4 | "eqeqeq" : false, 5 | "eqnull" : true, 6 | "es3" : true, 7 | "expr" : true, 8 | "jquery" : true, 9 | "latedef" : true, 10 | "laxbreak" : true, 11 | "nonbsp" : true, 12 | "strict" : true, 13 | "undef" : true, 14 | "unused" : true 15 | } 16 | -------------------------------------------------------------------------------- /ChatRoom/wwwroot/lib/bootstrap/js/transition.js: -------------------------------------------------------------------------------- 1 | /* ======================================================================== 2 | * Bootstrap: transition.js v3.3.7 3 | * http://getbootstrap.com/javascript/#transitions 4 | * ======================================================================== 5 | * Copyright 2011-2016 Twitter, Inc. 6 | * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) 7 | * ======================================================================== */ 8 | 9 | 10 | +function ($) { 11 | 'use strict'; 12 | 13 | // CSS TRANSITION SUPPORT (Shoutout: http://www.modernizr.com/) 14 | // ============================================================ 15 | 16 | function transitionEnd() { 17 | var el = document.createElement('bootstrap') 18 | 19 | var transEndEventNames = { 20 | WebkitTransition : 'webkitTransitionEnd', 21 | MozTransition : 'transitionend', 22 | OTransition : 'oTransitionEnd otransitionend', 23 | transition : 'transitionend' 24 | } 25 | 26 | for (var name in transEndEventNames) { 27 | if (el.style[name] !== undefined) { 28 | return { end: transEndEventNames[name] } 29 | } 30 | } 31 | 32 | return false // explicit for ie8 ( ._.) 33 | } 34 | 35 | // http://blog.alexmaccaw.com/css-transitions 36 | $.fn.emulateTransitionEnd = function (duration) { 37 | var called = false 38 | var $el = this 39 | $(this).one('bsTransitionEnd', function () { called = true }) 40 | var callback = function () { if (!called) $($el).trigger($.support.transition.end) } 41 | setTimeout(callback, duration) 42 | return this 43 | } 44 | 45 | $(function () { 46 | $.support.transition = transitionEnd() 47 | 48 | if (!$.support.transition) return 49 | 50 | $.event.special.bsTransitionEnd = { 51 | bindType: $.support.transition.end, 52 | delegateType: $.support.transition.end, 53 | handle: function (e) { 54 | if ($(e.target).is(this)) return e.handleObj.handler.apply(this, arguments) 55 | } 56 | } 57 | }) 58 | 59 | }(jQuery); 60 | -------------------------------------------------------------------------------- /ChatRoom/wwwroot/lib/bootstrap/less/.csslintrc: -------------------------------------------------------------------------------- 1 | { 2 | "adjoining-classes": false, 3 | "box-sizing": false, 4 | "box-model": false, 5 | "compatible-vendor-prefixes": false, 6 | "floats": false, 7 | "font-sizes": false, 8 | "gradients": false, 9 | "important": false, 10 | "known-properties": false, 11 | "outline-none": false, 12 | "qualified-headings": false, 13 | "regex-selectors": false, 14 | "shorthand": false, 15 | "text-indent": false, 16 | "unique-headings": false, 17 | "universal-selector": false, 18 | "unqualified-attributes": false 19 | } 20 | -------------------------------------------------------------------------------- /ChatRoom/wwwroot/lib/bootstrap/less/alerts.less: -------------------------------------------------------------------------------- 1 | // 2 | // Alerts 3 | // -------------------------------------------------- 4 | 5 | 6 | // Base styles 7 | // ------------------------- 8 | 9 | .alert { 10 | padding: @alert-padding; 11 | margin-bottom: @line-height-computed; 12 | border: 1px solid transparent; 13 | border-radius: @alert-border-radius; 14 | 15 | // Headings for larger alerts 16 | h4 { 17 | margin-top: 0; 18 | // Specified for the h4 to prevent conflicts of changing @headings-color 19 | color: inherit; 20 | } 21 | 22 | // Provide class for links that match alerts 23 | .alert-link { 24 | font-weight: @alert-link-font-weight; 25 | } 26 | 27 | // Improve alignment and spacing of inner content 28 | > p, 29 | > ul { 30 | margin-bottom: 0; 31 | } 32 | 33 | > p + p { 34 | margin-top: 5px; 35 | } 36 | } 37 | 38 | // Dismissible alerts 39 | // 40 | // Expand the right padding and account for the close button's positioning. 41 | 42 | .alert-dismissable, // The misspelled .alert-dismissable was deprecated in 3.2.0. 43 | .alert-dismissible { 44 | padding-right: (@alert-padding + 20); 45 | 46 | // Adjust close link position 47 | .close { 48 | position: relative; 49 | top: -2px; 50 | right: -21px; 51 | color: inherit; 52 | } 53 | } 54 | 55 | // Alternate styles 56 | // 57 | // Generate contextual modifier classes for colorizing the alert. 58 | 59 | .alert-success { 60 | .alert-variant(@alert-success-bg; @alert-success-border; @alert-success-text); 61 | } 62 | 63 | .alert-info { 64 | .alert-variant(@alert-info-bg; @alert-info-border; @alert-info-text); 65 | } 66 | 67 | .alert-warning { 68 | .alert-variant(@alert-warning-bg; @alert-warning-border; @alert-warning-text); 69 | } 70 | 71 | .alert-danger { 72 | .alert-variant(@alert-danger-bg; @alert-danger-border; @alert-danger-text); 73 | } 74 | -------------------------------------------------------------------------------- /ChatRoom/wwwroot/lib/bootstrap/less/badges.less: -------------------------------------------------------------------------------- 1 | // 2 | // Badges 3 | // -------------------------------------------------- 4 | 5 | 6 | // Base class 7 | .badge { 8 | display: inline-block; 9 | min-width: 10px; 10 | padding: 3px 7px; 11 | font-size: @font-size-small; 12 | font-weight: @badge-font-weight; 13 | color: @badge-color; 14 | line-height: @badge-line-height; 15 | vertical-align: middle; 16 | white-space: nowrap; 17 | text-align: center; 18 | background-color: @badge-bg; 19 | border-radius: @badge-border-radius; 20 | 21 | // Empty badges collapse automatically (not available in IE8) 22 | &:empty { 23 | display: none; 24 | } 25 | 26 | // Quick fix for badges in buttons 27 | .btn & { 28 | position: relative; 29 | top: -1px; 30 | } 31 | 32 | .btn-xs &, 33 | .btn-group-xs > .btn & { 34 | top: 0; 35 | padding: 1px 5px; 36 | } 37 | 38 | // Hover state, but only for links 39 | a& { 40 | &:hover, 41 | &:focus { 42 | color: @badge-link-hover-color; 43 | text-decoration: none; 44 | cursor: pointer; 45 | } 46 | } 47 | 48 | // Account for badges in navs 49 | .list-group-item.active > &, 50 | .nav-pills > .active > a > & { 51 | color: @badge-active-color; 52 | background-color: @badge-active-bg; 53 | } 54 | 55 | .list-group-item > & { 56 | float: right; 57 | } 58 | 59 | .list-group-item > & + & { 60 | margin-right: 5px; 61 | } 62 | 63 | .nav-pills > li > a > & { 64 | margin-left: 3px; 65 | } 66 | } 67 | -------------------------------------------------------------------------------- /ChatRoom/wwwroot/lib/bootstrap/less/bootstrap.less: -------------------------------------------------------------------------------- 1 | /*! 2 | * Bootstrap v3.3.7 (http://getbootstrap.com) 3 | * Copyright 2011-2016 Twitter, Inc. 4 | * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) 5 | */ 6 | 7 | // Core variables and mixins 8 | @import "variables.less"; 9 | @import "mixins.less"; 10 | 11 | // Reset and dependencies 12 | @import "normalize.less"; 13 | @import "print.less"; 14 | @import "glyphicons.less"; 15 | 16 | // Core CSS 17 | @import "scaffolding.less"; 18 | @import "type.less"; 19 | @import "code.less"; 20 | @import "grid.less"; 21 | @import "tables.less"; 22 | @import "forms.less"; 23 | @import "buttons.less"; 24 | 25 | // Components 26 | @import "component-animations.less"; 27 | @import "dropdowns.less"; 28 | @import "button-groups.less"; 29 | @import "input-groups.less"; 30 | @import "navs.less"; 31 | @import "navbar.less"; 32 | @import "breadcrumbs.less"; 33 | @import "pagination.less"; 34 | @import "pager.less"; 35 | @import "labels.less"; 36 | @import "badges.less"; 37 | @import "jumbotron.less"; 38 | @import "thumbnails.less"; 39 | @import "alerts.less"; 40 | @import "progress-bars.less"; 41 | @import "media.less"; 42 | @import "list-group.less"; 43 | @import "panels.less"; 44 | @import "responsive-embed.less"; 45 | @import "wells.less"; 46 | @import "close.less"; 47 | 48 | // Components w/ JavaScript 49 | @import "modals.less"; 50 | @import "tooltip.less"; 51 | @import "popovers.less"; 52 | @import "carousel.less"; 53 | 54 | // Utility classes 55 | @import "utilities.less"; 56 | @import "responsive-utilities.less"; 57 | -------------------------------------------------------------------------------- /ChatRoom/wwwroot/lib/bootstrap/less/breadcrumbs.less: -------------------------------------------------------------------------------- 1 | // 2 | // Breadcrumbs 3 | // -------------------------------------------------- 4 | 5 | 6 | .breadcrumb { 7 | padding: @breadcrumb-padding-vertical @breadcrumb-padding-horizontal; 8 | margin-bottom: @line-height-computed; 9 | list-style: none; 10 | background-color: @breadcrumb-bg; 11 | border-radius: @border-radius-base; 12 | 13 | > li { 14 | display: inline-block; 15 | 16 | + li:before { 17 | content: "@{breadcrumb-separator}\00a0"; // Unicode space added since inline-block means non-collapsing white-space 18 | padding: 0 5px; 19 | color: @breadcrumb-color; 20 | } 21 | } 22 | 23 | > .active { 24 | color: @breadcrumb-active-color; 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /ChatRoom/wwwroot/lib/bootstrap/less/close.less: -------------------------------------------------------------------------------- 1 | // 2 | // Close icons 3 | // -------------------------------------------------- 4 | 5 | 6 | .close { 7 | float: right; 8 | font-size: (@font-size-base * 1.5); 9 | font-weight: @close-font-weight; 10 | line-height: 1; 11 | color: @close-color; 12 | text-shadow: @close-text-shadow; 13 | .opacity(.2); 14 | 15 | &:hover, 16 | &:focus { 17 | color: @close-color; 18 | text-decoration: none; 19 | cursor: pointer; 20 | .opacity(.5); 21 | } 22 | 23 | // Additional properties for button version 24 | // iOS requires the button element instead of an anchor tag. 25 | // If you want the anchor version, it requires `href="#"`. 26 | // See https://developer.mozilla.org/en-US/docs/Web/Events/click#Safari_Mobile 27 | button& { 28 | padding: 0; 29 | cursor: pointer; 30 | background: transparent; 31 | border: 0; 32 | -webkit-appearance: none; 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /ChatRoom/wwwroot/lib/bootstrap/less/code.less: -------------------------------------------------------------------------------- 1 | // 2 | // Code (inline and block) 3 | // -------------------------------------------------- 4 | 5 | 6 | // Inline and block code styles 7 | code, 8 | kbd, 9 | pre, 10 | samp { 11 | font-family: @font-family-monospace; 12 | } 13 | 14 | // Inline code 15 | code { 16 | padding: 2px 4px; 17 | font-size: 90%; 18 | color: @code-color; 19 | background-color: @code-bg; 20 | border-radius: @border-radius-base; 21 | } 22 | 23 | // User input typically entered via keyboard 24 | kbd { 25 | padding: 2px 4px; 26 | font-size: 90%; 27 | color: @kbd-color; 28 | background-color: @kbd-bg; 29 | border-radius: @border-radius-small; 30 | box-shadow: inset 0 -1px 0 rgba(0,0,0,.25); 31 | 32 | kbd { 33 | padding: 0; 34 | font-size: 100%; 35 | font-weight: bold; 36 | box-shadow: none; 37 | } 38 | } 39 | 40 | // Blocks of code 41 | pre { 42 | display: block; 43 | padding: ((@line-height-computed - 1) / 2); 44 | margin: 0 0 (@line-height-computed / 2); 45 | font-size: (@font-size-base - 1); // 14px to 13px 46 | line-height: @line-height-base; 47 | word-break: break-all; 48 | word-wrap: break-word; 49 | color: @pre-color; 50 | background-color: @pre-bg; 51 | border: 1px solid @pre-border-color; 52 | border-radius: @border-radius-base; 53 | 54 | // Account for some code outputs that place code tags in pre tags 55 | code { 56 | padding: 0; 57 | font-size: inherit; 58 | color: inherit; 59 | white-space: pre-wrap; 60 | background-color: transparent; 61 | border-radius: 0; 62 | } 63 | } 64 | 65 | // Enable scrollable blocks of code 66 | .pre-scrollable { 67 | max-height: @pre-scrollable-max-height; 68 | overflow-y: scroll; 69 | } 70 | -------------------------------------------------------------------------------- /ChatRoom/wwwroot/lib/bootstrap/less/component-animations.less: -------------------------------------------------------------------------------- 1 | // 2 | // Component animations 3 | // -------------------------------------------------- 4 | 5 | // Heads up! 6 | // 7 | // We don't use the `.opacity()` mixin here since it causes a bug with text 8 | // fields in IE7-8. Source: https://github.com/twbs/bootstrap/pull/3552. 9 | 10 | .fade { 11 | opacity: 0; 12 | .transition(opacity .15s linear); 13 | &.in { 14 | opacity: 1; 15 | } 16 | } 17 | 18 | .collapse { 19 | display: none; 20 | 21 | &.in { display: block; } 22 | tr&.in { display: table-row; } 23 | tbody&.in { display: table-row-group; } 24 | } 25 | 26 | .collapsing { 27 | position: relative; 28 | height: 0; 29 | overflow: hidden; 30 | .transition-property(~"height, visibility"); 31 | .transition-duration(.35s); 32 | .transition-timing-function(ease); 33 | } 34 | -------------------------------------------------------------------------------- /ChatRoom/wwwroot/lib/bootstrap/less/grid.less: -------------------------------------------------------------------------------- 1 | // 2 | // Grid system 3 | // -------------------------------------------------- 4 | 5 | 6 | // Container widths 7 | // 8 | // Set the container width, and override it for fixed navbars in media queries. 9 | 10 | .container { 11 | .container-fixed(); 12 | 13 | @media (min-width: @screen-sm-min) { 14 | width: @container-sm; 15 | } 16 | @media (min-width: @screen-md-min) { 17 | width: @container-md; 18 | } 19 | @media (min-width: @screen-lg-min) { 20 | width: @container-lg; 21 | } 22 | } 23 | 24 | 25 | // Fluid container 26 | // 27 | // Utilizes the mixin meant for fixed width containers, but without any defined 28 | // width for fluid, full width layouts. 29 | 30 | .container-fluid { 31 | .container-fixed(); 32 | } 33 | 34 | 35 | // Row 36 | // 37 | // Rows contain and clear the floats of your columns. 38 | 39 | .row { 40 | .make-row(); 41 | } 42 | 43 | 44 | // Columns 45 | // 46 | // Common styles for small and large grid columns 47 | 48 | .make-grid-columns(); 49 | 50 | 51 | // Extra small grid 52 | // 53 | // Columns, offsets, pushes, and pulls for extra small devices like 54 | // smartphones. 55 | 56 | .make-grid(xs); 57 | 58 | 59 | // Small grid 60 | // 61 | // Columns, offsets, pushes, and pulls for the small device range, from phones 62 | // to tablets. 63 | 64 | @media (min-width: @screen-sm-min) { 65 | .make-grid(sm); 66 | } 67 | 68 | 69 | // Medium grid 70 | // 71 | // Columns, offsets, pushes, and pulls for the desktop device range. 72 | 73 | @media (min-width: @screen-md-min) { 74 | .make-grid(md); 75 | } 76 | 77 | 78 | // Large grid 79 | // 80 | // Columns, offsets, pushes, and pulls for the large desktop device range. 81 | 82 | @media (min-width: @screen-lg-min) { 83 | .make-grid(lg); 84 | } 85 | -------------------------------------------------------------------------------- /ChatRoom/wwwroot/lib/bootstrap/less/jumbotron.less: -------------------------------------------------------------------------------- 1 | // 2 | // Jumbotron 3 | // -------------------------------------------------- 4 | 5 | 6 | .jumbotron { 7 | padding-top: @jumbotron-padding; 8 | padding-bottom: @jumbotron-padding; 9 | margin-bottom: @jumbotron-padding; 10 | color: @jumbotron-color; 11 | background-color: @jumbotron-bg; 12 | 13 | h1, 14 | .h1 { 15 | color: @jumbotron-heading-color; 16 | } 17 | 18 | p { 19 | margin-bottom: (@jumbotron-padding / 2); 20 | font-size: @jumbotron-font-size; 21 | font-weight: 200; 22 | } 23 | 24 | > hr { 25 | border-top-color: darken(@jumbotron-bg, 10%); 26 | } 27 | 28 | .container &, 29 | .container-fluid & { 30 | border-radius: @border-radius-large; // Only round corners at higher resolutions if contained in a container 31 | padding-left: (@grid-gutter-width / 2); 32 | padding-right: (@grid-gutter-width / 2); 33 | } 34 | 35 | .container { 36 | max-width: 100%; 37 | } 38 | 39 | @media screen and (min-width: @screen-sm-min) { 40 | padding-top: (@jumbotron-padding * 1.6); 41 | padding-bottom: (@jumbotron-padding * 1.6); 42 | 43 | .container &, 44 | .container-fluid & { 45 | padding-left: (@jumbotron-padding * 2); 46 | padding-right: (@jumbotron-padding * 2); 47 | } 48 | 49 | h1, 50 | .h1 { 51 | font-size: @jumbotron-heading-font-size; 52 | } 53 | } 54 | } 55 | -------------------------------------------------------------------------------- /ChatRoom/wwwroot/lib/bootstrap/less/labels.less: -------------------------------------------------------------------------------- 1 | // 2 | // Labels 3 | // -------------------------------------------------- 4 | 5 | .label { 6 | display: inline; 7 | padding: .2em .6em .3em; 8 | font-size: 75%; 9 | font-weight: bold; 10 | line-height: 1; 11 | color: @label-color; 12 | text-align: center; 13 | white-space: nowrap; 14 | vertical-align: baseline; 15 | border-radius: .25em; 16 | 17 | // Add hover effects, but only for links 18 | a& { 19 | &:hover, 20 | &:focus { 21 | color: @label-link-hover-color; 22 | text-decoration: none; 23 | cursor: pointer; 24 | } 25 | } 26 | 27 | // Empty labels collapse automatically (not available in IE8) 28 | &:empty { 29 | display: none; 30 | } 31 | 32 | // Quick fix for labels in buttons 33 | .btn & { 34 | position: relative; 35 | top: -1px; 36 | } 37 | } 38 | 39 | // Colors 40 | // Contextual variations (linked labels get darker on :hover) 41 | 42 | .label-default { 43 | .label-variant(@label-default-bg); 44 | } 45 | 46 | .label-primary { 47 | .label-variant(@label-primary-bg); 48 | } 49 | 50 | .label-success { 51 | .label-variant(@label-success-bg); 52 | } 53 | 54 | .label-info { 55 | .label-variant(@label-info-bg); 56 | } 57 | 58 | .label-warning { 59 | .label-variant(@label-warning-bg); 60 | } 61 | 62 | .label-danger { 63 | .label-variant(@label-danger-bg); 64 | } 65 | -------------------------------------------------------------------------------- /ChatRoom/wwwroot/lib/bootstrap/less/media.less: -------------------------------------------------------------------------------- 1 | .media { 2 | // Proper spacing between instances of .media 3 | margin-top: 15px; 4 | 5 | &:first-child { 6 | margin-top: 0; 7 | } 8 | } 9 | 10 | .media, 11 | .media-body { 12 | zoom: 1; 13 | overflow: hidden; 14 | } 15 | 16 | .media-body { 17 | width: 10000px; 18 | } 19 | 20 | .media-object { 21 | display: block; 22 | 23 | // Fix collapse in webkit from max-width: 100% and display: table-cell. 24 | &.img-thumbnail { 25 | max-width: none; 26 | } 27 | } 28 | 29 | .media-right, 30 | .media > .pull-right { 31 | padding-left: 10px; 32 | } 33 | 34 | .media-left, 35 | .media > .pull-left { 36 | padding-right: 10px; 37 | } 38 | 39 | .media-left, 40 | .media-right, 41 | .media-body { 42 | display: table-cell; 43 | vertical-align: top; 44 | } 45 | 46 | .media-middle { 47 | vertical-align: middle; 48 | } 49 | 50 | .media-bottom { 51 | vertical-align: bottom; 52 | } 53 | 54 | // Reset margins on headings for tighter default spacing 55 | .media-heading { 56 | margin-top: 0; 57 | margin-bottom: 5px; 58 | } 59 | 60 | // Media list variation 61 | // 62 | // Undo default ul/ol styles 63 | .media-list { 64 | padding-left: 0; 65 | list-style: none; 66 | } 67 | -------------------------------------------------------------------------------- /ChatRoom/wwwroot/lib/bootstrap/less/mixins.less: -------------------------------------------------------------------------------- 1 | // Mixins 2 | // -------------------------------------------------- 3 | 4 | // Utilities 5 | @import "mixins/hide-text.less"; 6 | @import "mixins/opacity.less"; 7 | @import "mixins/image.less"; 8 | @import "mixins/labels.less"; 9 | @import "mixins/reset-filter.less"; 10 | @import "mixins/resize.less"; 11 | @import "mixins/responsive-visibility.less"; 12 | @import "mixins/size.less"; 13 | @import "mixins/tab-focus.less"; 14 | @import "mixins/reset-text.less"; 15 | @import "mixins/text-emphasis.less"; 16 | @import "mixins/text-overflow.less"; 17 | @import "mixins/vendor-prefixes.less"; 18 | 19 | // Components 20 | @import "mixins/alerts.less"; 21 | @import "mixins/buttons.less"; 22 | @import "mixins/panels.less"; 23 | @import "mixins/pagination.less"; 24 | @import "mixins/list-group.less"; 25 | @import "mixins/nav-divider.less"; 26 | @import "mixins/forms.less"; 27 | @import "mixins/progress-bar.less"; 28 | @import "mixins/table-row.less"; 29 | 30 | // Skins 31 | @import "mixins/background-variant.less"; 32 | @import "mixins/border-radius.less"; 33 | @import "mixins/gradients.less"; 34 | 35 | // Layout 36 | @import "mixins/clearfix.less"; 37 | @import "mixins/center-block.less"; 38 | @import "mixins/nav-vertical-align.less"; 39 | @import "mixins/grid-framework.less"; 40 | @import "mixins/grid.less"; 41 | -------------------------------------------------------------------------------- /ChatRoom/wwwroot/lib/bootstrap/less/mixins/alerts.less: -------------------------------------------------------------------------------- 1 | // Alerts 2 | 3 | .alert-variant(@background; @border; @text-color) { 4 | background-color: @background; 5 | border-color: @border; 6 | color: @text-color; 7 | 8 | hr { 9 | border-top-color: darken(@border, 5%); 10 | } 11 | .alert-link { 12 | color: darken(@text-color, 10%); 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /ChatRoom/wwwroot/lib/bootstrap/less/mixins/background-variant.less: -------------------------------------------------------------------------------- 1 | // Contextual backgrounds 2 | 3 | .bg-variant(@color) { 4 | background-color: @color; 5 | a&:hover, 6 | a&:focus { 7 | background-color: darken(@color, 10%); 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /ChatRoom/wwwroot/lib/bootstrap/less/mixins/border-radius.less: -------------------------------------------------------------------------------- 1 | // Single side border-radius 2 | 3 | .border-top-radius(@radius) { 4 | border-top-right-radius: @radius; 5 | border-top-left-radius: @radius; 6 | } 7 | .border-right-radius(@radius) { 8 | border-bottom-right-radius: @radius; 9 | border-top-right-radius: @radius; 10 | } 11 | .border-bottom-radius(@radius) { 12 | border-bottom-right-radius: @radius; 13 | border-bottom-left-radius: @radius; 14 | } 15 | .border-left-radius(@radius) { 16 | border-bottom-left-radius: @radius; 17 | border-top-left-radius: @radius; 18 | } 19 | -------------------------------------------------------------------------------- /ChatRoom/wwwroot/lib/bootstrap/less/mixins/buttons.less: -------------------------------------------------------------------------------- 1 | // Button variants 2 | // 3 | // Easily pump out default styles, as well as :hover, :focus, :active, 4 | // and disabled options for all buttons 5 | 6 | .button-variant(@color; @background; @border) { 7 | color: @color; 8 | background-color: @background; 9 | border-color: @border; 10 | 11 | &:focus, 12 | &.focus { 13 | color: @color; 14 | background-color: darken(@background, 10%); 15 | border-color: darken(@border, 25%); 16 | } 17 | &:hover { 18 | color: @color; 19 | background-color: darken(@background, 10%); 20 | border-color: darken(@border, 12%); 21 | } 22 | &:active, 23 | &.active, 24 | .open > .dropdown-toggle& { 25 | color: @color; 26 | background-color: darken(@background, 10%); 27 | border-color: darken(@border, 12%); 28 | 29 | &:hover, 30 | &:focus, 31 | &.focus { 32 | color: @color; 33 | background-color: darken(@background, 17%); 34 | border-color: darken(@border, 25%); 35 | } 36 | } 37 | &:active, 38 | &.active, 39 | .open > .dropdown-toggle& { 40 | background-image: none; 41 | } 42 | &.disabled, 43 | &[disabled], 44 | fieldset[disabled] & { 45 | &:hover, 46 | &:focus, 47 | &.focus { 48 | background-color: @background; 49 | border-color: @border; 50 | } 51 | } 52 | 53 | .badge { 54 | color: @background; 55 | background-color: @color; 56 | } 57 | } 58 | 59 | // Button sizes 60 | .button-size(@padding-vertical; @padding-horizontal; @font-size; @line-height; @border-radius) { 61 | padding: @padding-vertical @padding-horizontal; 62 | font-size: @font-size; 63 | line-height: @line-height; 64 | border-radius: @border-radius; 65 | } 66 | -------------------------------------------------------------------------------- /ChatRoom/wwwroot/lib/bootstrap/less/mixins/center-block.less: -------------------------------------------------------------------------------- 1 | // Center-align a block level element 2 | 3 | .center-block() { 4 | display: block; 5 | margin-left: auto; 6 | margin-right: auto; 7 | } 8 | -------------------------------------------------------------------------------- /ChatRoom/wwwroot/lib/bootstrap/less/mixins/clearfix.less: -------------------------------------------------------------------------------- 1 | // Clearfix 2 | // 3 | // For modern browsers 4 | // 1. The space content is one way to avoid an Opera bug when the 5 | // contenteditable attribute is included anywhere else in the document. 6 | // Otherwise it causes space to appear at the top and bottom of elements 7 | // that are clearfixed. 8 | // 2. The use of `table` rather than `block` is only necessary if using 9 | // `:before` to contain the top-margins of child elements. 10 | // 11 | // Source: http://nicolasgallagher.com/micro-clearfix-hack/ 12 | 13 | .clearfix() { 14 | &:before, 15 | &:after { 16 | content: " "; // 1 17 | display: table; // 2 18 | } 19 | &:after { 20 | clear: both; 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /ChatRoom/wwwroot/lib/bootstrap/less/mixins/hide-text.less: -------------------------------------------------------------------------------- 1 | // CSS image replacement 2 | // 3 | // Heads up! v3 launched with only `.hide-text()`, but per our pattern for 4 | // mixins being reused as classes with the same name, this doesn't hold up. As 5 | // of v3.0.1 we have added `.text-hide()` and deprecated `.hide-text()`. 6 | // 7 | // Source: https://github.com/h5bp/html5-boilerplate/commit/aa0396eae757 8 | 9 | // Deprecated as of v3.0.1 (has been removed in v4) 10 | .hide-text() { 11 | font: ~"0/0" a; 12 | color: transparent; 13 | text-shadow: none; 14 | background-color: transparent; 15 | border: 0; 16 | } 17 | 18 | // New mixin to use as of v3.0.1 19 | .text-hide() { 20 | .hide-text(); 21 | } 22 | -------------------------------------------------------------------------------- /ChatRoom/wwwroot/lib/bootstrap/less/mixins/image.less: -------------------------------------------------------------------------------- 1 | // Image Mixins 2 | // - Responsive image 3 | // - Retina image 4 | 5 | 6 | // Responsive image 7 | // 8 | // Keep images from scaling beyond the width of their parents. 9 | .img-responsive(@display: block) { 10 | display: @display; 11 | max-width: 100%; // Part 1: Set a maximum relative to the parent 12 | height: auto; // Part 2: Scale the height according to the width, otherwise you get stretching 13 | } 14 | 15 | 16 | // Retina image 17 | // 18 | // Short retina mixin for setting background-image and -size. Note that the 19 | // spelling of `min--moz-device-pixel-ratio` is intentional. 20 | .img-retina(@file-1x; @file-2x; @width-1x; @height-1x) { 21 | background-image: url("@{file-1x}"); 22 | 23 | @media 24 | only screen and (-webkit-min-device-pixel-ratio: 2), 25 | only screen and ( min--moz-device-pixel-ratio: 2), 26 | only screen and ( -o-min-device-pixel-ratio: 2/1), 27 | only screen and ( min-device-pixel-ratio: 2), 28 | only screen and ( min-resolution: 192dpi), 29 | only screen and ( min-resolution: 2dppx) { 30 | background-image: url("@{file-2x}"); 31 | background-size: @width-1x @height-1x; 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /ChatRoom/wwwroot/lib/bootstrap/less/mixins/labels.less: -------------------------------------------------------------------------------- 1 | // Labels 2 | 3 | .label-variant(@color) { 4 | background-color: @color; 5 | 6 | &[href] { 7 | &:hover, 8 | &:focus { 9 | background-color: darken(@color, 10%); 10 | } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /ChatRoom/wwwroot/lib/bootstrap/less/mixins/list-group.less: -------------------------------------------------------------------------------- 1 | // List Groups 2 | 3 | .list-group-item-variant(@state; @background; @color) { 4 | .list-group-item-@{state} { 5 | color: @color; 6 | background-color: @background; 7 | 8 | a&, 9 | button& { 10 | color: @color; 11 | 12 | .list-group-item-heading { 13 | color: inherit; 14 | } 15 | 16 | &:hover, 17 | &:focus { 18 | color: @color; 19 | background-color: darken(@background, 5%); 20 | } 21 | &.active, 22 | &.active:hover, 23 | &.active:focus { 24 | color: #fff; 25 | background-color: @color; 26 | border-color: @color; 27 | } 28 | } 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /ChatRoom/wwwroot/lib/bootstrap/less/mixins/nav-divider.less: -------------------------------------------------------------------------------- 1 | // Horizontal dividers 2 | // 3 | // Dividers (basically an hr) within dropdowns and nav lists 4 | 5 | .nav-divider(@color: #e5e5e5) { 6 | height: 1px; 7 | margin: ((@line-height-computed / 2) - 1) 0; 8 | overflow: hidden; 9 | background-color: @color; 10 | } 11 | -------------------------------------------------------------------------------- /ChatRoom/wwwroot/lib/bootstrap/less/mixins/nav-vertical-align.less: -------------------------------------------------------------------------------- 1 | // Navbar vertical align 2 | // 3 | // Vertically center elements in the navbar. 4 | // Example: an element has a height of 30px, so write out `.navbar-vertical-align(30px);` to calculate the appropriate top margin. 5 | 6 | .navbar-vertical-align(@element-height) { 7 | margin-top: ((@navbar-height - @element-height) / 2); 8 | margin-bottom: ((@navbar-height - @element-height) / 2); 9 | } 10 | -------------------------------------------------------------------------------- /ChatRoom/wwwroot/lib/bootstrap/less/mixins/opacity.less: -------------------------------------------------------------------------------- 1 | // Opacity 2 | 3 | .opacity(@opacity) { 4 | opacity: @opacity; 5 | // IE8 filter 6 | @opacity-ie: (@opacity * 100); 7 | filter: ~"alpha(opacity=@{opacity-ie})"; 8 | } 9 | -------------------------------------------------------------------------------- /ChatRoom/wwwroot/lib/bootstrap/less/mixins/pagination.less: -------------------------------------------------------------------------------- 1 | // Pagination 2 | 3 | .pagination-size(@padding-vertical; @padding-horizontal; @font-size; @line-height; @border-radius) { 4 | > li { 5 | > a, 6 | > span { 7 | padding: @padding-vertical @padding-horizontal; 8 | font-size: @font-size; 9 | line-height: @line-height; 10 | } 11 | &:first-child { 12 | > a, 13 | > span { 14 | .border-left-radius(@border-radius); 15 | } 16 | } 17 | &:last-child { 18 | > a, 19 | > span { 20 | .border-right-radius(@border-radius); 21 | } 22 | } 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /ChatRoom/wwwroot/lib/bootstrap/less/mixins/panels.less: -------------------------------------------------------------------------------- 1 | // Panels 2 | 3 | .panel-variant(@border; @heading-text-color; @heading-bg-color; @heading-border) { 4 | border-color: @border; 5 | 6 | & > .panel-heading { 7 | color: @heading-text-color; 8 | background-color: @heading-bg-color; 9 | border-color: @heading-border; 10 | 11 | + .panel-collapse > .panel-body { 12 | border-top-color: @border; 13 | } 14 | .badge { 15 | color: @heading-bg-color; 16 | background-color: @heading-text-color; 17 | } 18 | } 19 | & > .panel-footer { 20 | + .panel-collapse > .panel-body { 21 | border-bottom-color: @border; 22 | } 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /ChatRoom/wwwroot/lib/bootstrap/less/mixins/progress-bar.less: -------------------------------------------------------------------------------- 1 | // Progress bars 2 | 3 | .progress-bar-variant(@color) { 4 | background-color: @color; 5 | 6 | // Deprecated parent class requirement as of v3.2.0 7 | .progress-striped & { 8 | #gradient > .striped(); 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /ChatRoom/wwwroot/lib/bootstrap/less/mixins/reset-filter.less: -------------------------------------------------------------------------------- 1 | // Reset filters for IE 2 | // 3 | // When you need to remove a gradient background, do not forget to use this to reset 4 | // the IE filter for IE9 and below. 5 | 6 | .reset-filter() { 7 | filter: e(%("progid:DXImageTransform.Microsoft.gradient(enabled = false)")); 8 | } 9 | -------------------------------------------------------------------------------- /ChatRoom/wwwroot/lib/bootstrap/less/mixins/reset-text.less: -------------------------------------------------------------------------------- 1 | .reset-text() { 2 | font-family: @font-family-base; 3 | // We deliberately do NOT reset font-size. 4 | font-style: normal; 5 | font-weight: normal; 6 | letter-spacing: normal; 7 | line-break: auto; 8 | line-height: @line-height-base; 9 | text-align: left; // Fallback for where `start` is not supported 10 | text-align: start; 11 | text-decoration: none; 12 | text-shadow: none; 13 | text-transform: none; 14 | white-space: normal; 15 | word-break: normal; 16 | word-spacing: normal; 17 | word-wrap: normal; 18 | } 19 | -------------------------------------------------------------------------------- /ChatRoom/wwwroot/lib/bootstrap/less/mixins/resize.less: -------------------------------------------------------------------------------- 1 | // Resize anything 2 | 3 | .resizable(@direction) { 4 | resize: @direction; // Options: horizontal, vertical, both 5 | overflow: auto; // Per CSS3 UI, `resize` only applies when `overflow` isn't `visible` 6 | } 7 | -------------------------------------------------------------------------------- /ChatRoom/wwwroot/lib/bootstrap/less/mixins/responsive-visibility.less: -------------------------------------------------------------------------------- 1 | // Responsive utilities 2 | 3 | // 4 | // More easily include all the states for responsive-utilities.less. 5 | .responsive-visibility() { 6 | display: block !important; 7 | table& { display: table !important; } 8 | tr& { display: table-row !important; } 9 | th&, 10 | td& { display: table-cell !important; } 11 | } 12 | 13 | .responsive-invisibility() { 14 | display: none !important; 15 | } 16 | -------------------------------------------------------------------------------- /ChatRoom/wwwroot/lib/bootstrap/less/mixins/size.less: -------------------------------------------------------------------------------- 1 | // Sizing shortcuts 2 | 3 | .size(@width; @height) { 4 | width: @width; 5 | height: @height; 6 | } 7 | 8 | .square(@size) { 9 | .size(@size; @size); 10 | } 11 | -------------------------------------------------------------------------------- /ChatRoom/wwwroot/lib/bootstrap/less/mixins/tab-focus.less: -------------------------------------------------------------------------------- 1 | // WebKit-style focus 2 | 3 | .tab-focus() { 4 | // WebKit-specific. Other browsers will keep their default outline style. 5 | // (Initially tried to also force default via `outline: initial`, 6 | // but that seems to erroneously remove the outline in Firefox altogether.) 7 | outline: 5px auto -webkit-focus-ring-color; 8 | outline-offset: -2px; 9 | } 10 | -------------------------------------------------------------------------------- /ChatRoom/wwwroot/lib/bootstrap/less/mixins/table-row.less: -------------------------------------------------------------------------------- 1 | // Tables 2 | 3 | .table-row-variant(@state; @background) { 4 | // Exact selectors below required to override `.table-striped` and prevent 5 | // inheritance to nested tables. 6 | .table > thead > tr, 7 | .table > tbody > tr, 8 | .table > tfoot > tr { 9 | > td.@{state}, 10 | > th.@{state}, 11 | &.@{state} > td, 12 | &.@{state} > th { 13 | background-color: @background; 14 | } 15 | } 16 | 17 | // Hover states for `.table-hover` 18 | // Note: this is not available for cells or rows within `thead` or `tfoot`. 19 | .table-hover > tbody > tr { 20 | > td.@{state}:hover, 21 | > th.@{state}:hover, 22 | &.@{state}:hover > td, 23 | &:hover > .@{state}, 24 | &.@{state}:hover > th { 25 | background-color: darken(@background, 5%); 26 | } 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /ChatRoom/wwwroot/lib/bootstrap/less/mixins/text-emphasis.less: -------------------------------------------------------------------------------- 1 | // Typography 2 | 3 | .text-emphasis-variant(@color) { 4 | color: @color; 5 | a&:hover, 6 | a&:focus { 7 | color: darken(@color, 10%); 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /ChatRoom/wwwroot/lib/bootstrap/less/mixins/text-overflow.less: -------------------------------------------------------------------------------- 1 | // Text overflow 2 | // Requires inline-block or block for proper styling 3 | 4 | .text-overflow() { 5 | overflow: hidden; 6 | text-overflow: ellipsis; 7 | white-space: nowrap; 8 | } 9 | -------------------------------------------------------------------------------- /ChatRoom/wwwroot/lib/bootstrap/less/pager.less: -------------------------------------------------------------------------------- 1 | // 2 | // Pager pagination 3 | // -------------------------------------------------- 4 | 5 | 6 | .pager { 7 | padding-left: 0; 8 | margin: @line-height-computed 0; 9 | list-style: none; 10 | text-align: center; 11 | &:extend(.clearfix all); 12 | li { 13 | display: inline; 14 | > a, 15 | > span { 16 | display: inline-block; 17 | padding: 5px 14px; 18 | background-color: @pager-bg; 19 | border: 1px solid @pager-border; 20 | border-radius: @pager-border-radius; 21 | } 22 | 23 | > a:hover, 24 | > a:focus { 25 | text-decoration: none; 26 | background-color: @pager-hover-bg; 27 | } 28 | } 29 | 30 | .next { 31 | > a, 32 | > span { 33 | float: right; 34 | } 35 | } 36 | 37 | .previous { 38 | > a, 39 | > span { 40 | float: left; 41 | } 42 | } 43 | 44 | .disabled { 45 | > a, 46 | > a:hover, 47 | > a:focus, 48 | > span { 49 | color: @pager-disabled-color; 50 | background-color: @pager-bg; 51 | cursor: @cursor-disabled; 52 | } 53 | } 54 | } 55 | -------------------------------------------------------------------------------- /ChatRoom/wwwroot/lib/bootstrap/less/responsive-embed.less: -------------------------------------------------------------------------------- 1 | // Embeds responsive 2 | // 3 | // Credit: Nicolas Gallagher and SUIT CSS. 4 | 5 | .embed-responsive { 6 | position: relative; 7 | display: block; 8 | height: 0; 9 | padding: 0; 10 | overflow: hidden; 11 | 12 | .embed-responsive-item, 13 | iframe, 14 | embed, 15 | object, 16 | video { 17 | position: absolute; 18 | top: 0; 19 | left: 0; 20 | bottom: 0; 21 | height: 100%; 22 | width: 100%; 23 | border: 0; 24 | } 25 | } 26 | 27 | // Modifier class for 16:9 aspect ratio 28 | .embed-responsive-16by9 { 29 | padding-bottom: 56.25%; 30 | } 31 | 32 | // Modifier class for 4:3 aspect ratio 33 | .embed-responsive-4by3 { 34 | padding-bottom: 75%; 35 | } 36 | -------------------------------------------------------------------------------- /ChatRoom/wwwroot/lib/bootstrap/less/thumbnails.less: -------------------------------------------------------------------------------- 1 | // 2 | // Thumbnails 3 | // -------------------------------------------------- 4 | 5 | 6 | // Mixin and adjust the regular image class 7 | .thumbnail { 8 | display: block; 9 | padding: @thumbnail-padding; 10 | margin-bottom: @line-height-computed; 11 | line-height: @line-height-base; 12 | background-color: @thumbnail-bg; 13 | border: 1px solid @thumbnail-border; 14 | border-radius: @thumbnail-border-radius; 15 | .transition(border .2s ease-in-out); 16 | 17 | > img, 18 | a > img { 19 | &:extend(.img-responsive); 20 | margin-left: auto; 21 | margin-right: auto; 22 | } 23 | 24 | // Add a hover state for linked versions only 25 | a&:hover, 26 | a&:focus, 27 | a&.active { 28 | border-color: @link-color; 29 | } 30 | 31 | // Image captions 32 | .caption { 33 | padding: @thumbnail-caption-padding; 34 | color: @thumbnail-caption-color; 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /ChatRoom/wwwroot/lib/bootstrap/less/utilities.less: -------------------------------------------------------------------------------- 1 | // 2 | // Utility classes 3 | // -------------------------------------------------- 4 | 5 | 6 | // Floats 7 | // ------------------------- 8 | 9 | .clearfix { 10 | .clearfix(); 11 | } 12 | .center-block { 13 | .center-block(); 14 | } 15 | .pull-right { 16 | float: right !important; 17 | } 18 | .pull-left { 19 | float: left !important; 20 | } 21 | 22 | 23 | // Toggling content 24 | // ------------------------- 25 | 26 | // Note: Deprecated .hide in favor of .hidden or .sr-only (as appropriate) in v3.0.1 27 | .hide { 28 | display: none !important; 29 | } 30 | .show { 31 | display: block !important; 32 | } 33 | .invisible { 34 | visibility: hidden; 35 | } 36 | .text-hide { 37 | .text-hide(); 38 | } 39 | 40 | 41 | // Hide from screenreaders and browsers 42 | // 43 | // Credit: HTML5 Boilerplate 44 | 45 | .hidden { 46 | display: none !important; 47 | } 48 | 49 | 50 | // For Affix plugin 51 | // ------------------------- 52 | 53 | .affix { 54 | position: fixed; 55 | } 56 | -------------------------------------------------------------------------------- /ChatRoom/wwwroot/lib/bootstrap/less/wells.less: -------------------------------------------------------------------------------- 1 | // 2 | // Wells 3 | // -------------------------------------------------- 4 | 5 | 6 | // Base class 7 | .well { 8 | min-height: 20px; 9 | padding: 19px; 10 | margin-bottom: 20px; 11 | background-color: @well-bg; 12 | border: 1px solid @well-border; 13 | border-radius: @border-radius-base; 14 | .box-shadow(inset 0 1px 1px rgba(0,0,0,.05)); 15 | blockquote { 16 | border-color: #ddd; 17 | border-color: rgba(0,0,0,.15); 18 | } 19 | } 20 | 21 | // Sizes 22 | .well-lg { 23 | padding: 24px; 24 | border-radius: @border-radius-large; 25 | } 26 | .well-sm { 27 | padding: 9px; 28 | border-radius: @border-radius-small; 29 | } 30 | -------------------------------------------------------------------------------- /ChatRoom/wwwroot/lib/bootstrap/nuget/MyGet.ps1: -------------------------------------------------------------------------------- 1 | $nuget = $env:NuGet 2 | 3 | # parse the version number out of package.json 4 | $bsversion = ((Get-Content $env:SourcesPath\package.json) -join "`n" | ConvertFrom-Json).version 5 | 6 | # create packages 7 | & $nuget pack "nuget\bootstrap.nuspec" -Verbosity detailed -NonInteractive -NoPackageAnalysis -BasePath $env:SourcesPath -Version $bsversion 8 | & $nuget pack "nuget\bootstrap.less.nuspec" -Verbosity detailed -NonInteractive -NoPackageAnalysis -BasePath $env:SourcesPath -Version $bsversion 9 | -------------------------------------------------------------------------------- /ChatRoom/wwwroot/lib/bootstrap/nuget/bootstrap.less.nuspec: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | bootstrap.less 5 | 3.3.7 6 | Bootstrap Less 7 | Twitter, Inc. 8 | bootstrap 9 | The most popular front-end framework for developing responsive, mobile first projects on the web. 10 | http://blog.getbootstrap.com 11 | Bootstrap framework in Less. Includes fonts and JavaScript 12 | en-us 13 | http://getbootstrap.com 14 | http://getbootstrap.com/apple-touch-icon.png 15 | https://github.com/twbs/bootstrap/blob/master/LICENSE 16 | Copyright 2016 17 | false 18 | 19 | 20 | 21 | css js less mobile-first responsive front-end framework web 22 | 23 | 24 | 25 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /ChatRoom/wwwroot/lib/bootstrap/nuget/bootstrap.nuspec: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | bootstrap 5 | 3.3.7 6 | Bootstrap CSS 7 | Twitter, Inc. 8 | bootstrap 9 | The most popular front-end framework for developing responsive, mobile first projects on the web. 10 | http://blog.getbootstrap.com 11 | Bootstrap framework in CSS. Includes fonts and JavaScript 12 | en-us 13 | http://getbootstrap.com 14 | http://getbootstrap.com/apple-touch-icon.png 15 | https://github.com/twbs/bootstrap/blob/master/LICENSE 16 | Copyright 2016 17 | false 18 | 19 | 20 | 21 | css js less mobile-first responsive front-end framework web 22 | 23 | 24 | 25 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /ChatRoom/wwwroot/lib/bootstrap/package.js: -------------------------------------------------------------------------------- 1 | // package metadata file for Meteor.js 2 | 3 | /* jshint strict:false */ 4 | /* global Package:true */ 5 | 6 | Package.describe({ 7 | name: 'twbs:bootstrap', // http://atmospherejs.com/twbs/bootstrap 8 | summary: 'The most popular front-end framework for developing responsive, mobile first projects on the web.', 9 | version: '3.3.7', 10 | git: 'https://github.com/twbs/bootstrap.git' 11 | }); 12 | 13 | Package.onUse(function (api) { 14 | api.versionsFrom('METEOR@1.0'); 15 | api.use('jquery', 'client'); 16 | var assets = [ 17 | 'dist/fonts/glyphicons-halflings-regular.eot', 18 | 'dist/fonts/glyphicons-halflings-regular.svg', 19 | 'dist/fonts/glyphicons-halflings-regular.ttf', 20 | 'dist/fonts/glyphicons-halflings-regular.woff', 21 | 'dist/fonts/glyphicons-halflings-regular.woff2' 22 | ]; 23 | if (api.addAssets) { 24 | api.addAssets(assets, 'client'); 25 | } else { 26 | api.addFiles(assets, 'client', { isAsset: true }); 27 | } 28 | api.addFiles([ 29 | 'dist/css/bootstrap.css', 30 | 'dist/js/bootstrap.js' 31 | ], 'client'); 32 | }); 33 | -------------------------------------------------------------------------------- /ChatRoom/wwwroot/lib/jquery-validation-unobtrusive/.bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "jquery-validation-unobtrusive", 3 | "version": "3.2.6", 4 | "homepage": "https://github.com/aspnet/jquery-validation-unobtrusive", 5 | "description": "Add-on to jQuery Validation to enable unobtrusive validation options in data-* attributes.", 6 | "main": [ 7 | "jquery.validate.unobtrusive.js" 8 | ], 9 | "ignore": [ 10 | "**/.*", 11 | "*.json", 12 | "*.md", 13 | "*.txt", 14 | "gulpfile.js" 15 | ], 16 | "keywords": [ 17 | "jquery", 18 | "asp.net", 19 | "mvc", 20 | "validation", 21 | "unobtrusive" 22 | ], 23 | "authors": [ 24 | "Microsoft" 25 | ], 26 | "license": "http://www.microsoft.com/web/webpi/eula/net_library_eula_enu.htm", 27 | "repository": { 28 | "type": "git", 29 | "url": "git://github.com/aspnet/jquery-validation-unobtrusive.git" 30 | }, 31 | "dependencies": { 32 | "jquery-validation": ">=1.8", 33 | "jquery": ">=1.8" 34 | }, 35 | "_release": "3.2.6", 36 | "_resolution": { 37 | "type": "version", 38 | "tag": "v3.2.6", 39 | "commit": "13386cd1b5947d8a5d23a12b531ce3960be1eba7" 40 | }, 41 | "_source": "git://github.com/aspnet/jquery-validation-unobtrusive.git", 42 | "_target": "3.2.6", 43 | "_originalSource": "jquery-validation-unobtrusive" 44 | } -------------------------------------------------------------------------------- /ChatRoom/wwwroot/lib/jquery-validation/.bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "jquery-validation", 3 | "homepage": "http://jqueryvalidation.org/", 4 | "repository": { 5 | "type": "git", 6 | "url": "git://github.com/jzaefferer/jquery-validation.git" 7 | }, 8 | "authors": [ 9 | "Jörn Zaefferer " 10 | ], 11 | "description": "Form validation made easy", 12 | "main": "dist/jquery.validate.js", 13 | "keywords": [ 14 | "forms", 15 | "validation", 16 | "validate" 17 | ], 18 | "license": "MIT", 19 | "ignore": [ 20 | "**/.*", 21 | "node_modules", 22 | "bower_components", 23 | "test", 24 | "demo", 25 | "lib" 26 | ], 27 | "dependencies": { 28 | "jquery": ">= 1.7.2" 29 | }, 30 | "version": "1.14.0", 31 | "_release": "1.14.0", 32 | "_resolution": { 33 | "type": "version", 34 | "tag": "1.14.0", 35 | "commit": "c1343fb9823392aa9acbe1c3ffd337b8c92fed48" 36 | }, 37 | "_source": "git://github.com/jzaefferer/jquery-validation.git", 38 | "_target": ">=1.8", 39 | "_originalSource": "jquery-validation" 40 | } -------------------------------------------------------------------------------- /ChatRoom/wwwroot/lib/jquery-validation/LICENSE.md: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | ===================== 3 | 4 | Copyright Jörn Zaefferer 5 | 6 | Permission is hereby granted, free of charge, to any person obtaining a copy 7 | of this software and associated documentation files (the "Software"), to deal 8 | in the Software without restriction, including without limitation the rights 9 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 10 | copies of the Software, and to permit persons to whom the Software is 11 | furnished to do so, subject to the following conditions: 12 | 13 | The above copyright notice and this permission notice shall be included in 14 | all copies or substantial portions of the Software. 15 | 16 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 19 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 21 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 22 | THE SOFTWARE. 23 | -------------------------------------------------------------------------------- /ChatRoom/wwwroot/lib/jquery/.bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "jquery", 3 | "main": "dist/jquery.js", 4 | "license": "MIT", 5 | "ignore": [ 6 | "package.json" 7 | ], 8 | "keywords": [ 9 | "jquery", 10 | "javascript", 11 | "browser", 12 | "library" 13 | ], 14 | "homepage": "https://github.com/jquery/jquery-dist", 15 | "version": "2.2.0", 16 | "_release": "2.2.0", 17 | "_resolution": { 18 | "type": "version", 19 | "tag": "2.2.0", 20 | "commit": "6fc01e29bdad0964f62ef56d01297039cdcadbe5" 21 | }, 22 | "_source": "git://github.com/jquery/jquery-dist.git", 23 | "_target": "2.2.0", 24 | "_originalSource": "jquery" 25 | } -------------------------------------------------------------------------------- /ChatRoom/wwwroot/lib/jquery/LICENSE.txt: -------------------------------------------------------------------------------- 1 | Copyright jQuery Foundation and other contributors, https://jquery.org/ 2 | 3 | This software consists of voluntary contributions made by many 4 | individuals. For exact contribution history, see the revision history 5 | available at https://github.com/jquery/jquery 6 | 7 | The following license applies to all parts of this software except as 8 | documented below: 9 | 10 | ==== 11 | 12 | Permission is hereby granted, free of charge, to any person obtaining 13 | a copy of this software and associated documentation files (the 14 | "Software"), to deal in the Software without restriction, including 15 | without limitation the rights to use, copy, modify, merge, publish, 16 | distribute, sublicense, and/or sell copies of the Software, and to 17 | permit persons to whom the Software is furnished to do so, subject to 18 | the following conditions: 19 | 20 | The above copyright notice and this permission notice shall be 21 | included in all copies or substantial portions of the Software. 22 | 23 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 24 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 25 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 26 | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE 27 | LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION 28 | OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION 29 | WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 30 | 31 | ==== 32 | 33 | All files located in the node_modules and external directories are 34 | externally maintained libraries used by this software which have their 35 | own licenses; we recommend you read them, as their terms may differ from 36 | the terms above. 37 | -------------------------------------------------------------------------------- /ChatRoom/wwwroot/lib/moment/.bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "moment", 3 | "license": "MIT", 4 | "main": "moment.js", 5 | "ignore": [ 6 | "**/.*", 7 | "benchmarks", 8 | "bower_components", 9 | "meteor", 10 | "node_modules", 11 | "scripts", 12 | "tasks", 13 | "test", 14 | "component.json", 15 | "composer.json", 16 | "CONTRIBUTING.md", 17 | "ender.js", 18 | "Gruntfile.js", 19 | "Moment.js.nuspec", 20 | "package.js", 21 | "package.json", 22 | "ISSUE_TEMPLATE.md", 23 | "typing-tests" 24 | ], 25 | "homepage": "https://github.com/moment/moment", 26 | "version": "2.17.1", 27 | "_release": "2.17.1", 28 | "_resolution": { 29 | "type": "version", 30 | "tag": "2.17.1", 31 | "commit": "c83c4058b4c88d0a2ab10aac28ac787e31993c39" 32 | }, 33 | "_source": "https://github.com/moment/moment.git", 34 | "_target": "2.17.1", 35 | "_originalSource": "moment", 36 | "_direct": true 37 | } -------------------------------------------------------------------------------- /ChatRoom/wwwroot/lib/moment/LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) JS Foundation and other contributors 2 | 3 | Permission is hereby granted, free of charge, to any person 4 | obtaining a copy of this software and associated documentation 5 | files (the "Software"), to deal in the Software without 6 | restriction, including without limitation the rights to use, 7 | copy, modify, merge, publish, distribute, sublicense, and/or sell 8 | copies of the Software, and to permit persons to whom the 9 | Software is furnished to do so, subject to the following 10 | conditions: 11 | 12 | The above copyright notice and this permission notice shall be 13 | included in all copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 16 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 17 | OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 18 | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 19 | HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 20 | WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 21 | FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 22 | OTHER DEALINGS IN THE SOFTWARE. 23 | -------------------------------------------------------------------------------- /ChatRoom/wwwroot/lib/moment/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "moment", 3 | "license": "MIT", 4 | "main": "moment.js", 5 | "ignore": [ 6 | "**/.*", 7 | "benchmarks", 8 | "bower_components", 9 | "meteor", 10 | "node_modules", 11 | "scripts", 12 | "tasks", 13 | "test", 14 | "component.json", 15 | "composer.json", 16 | "CONTRIBUTING.md", 17 | "ender.js", 18 | "Gruntfile.js", 19 | "Moment.js.nuspec", 20 | "package.js", 21 | "package.json", 22 | "ISSUE_TEMPLATE.md", 23 | "typing-tests" 24 | ] 25 | } 26 | -------------------------------------------------------------------------------- /ChatRoom/wwwroot/lib/moment/locale/ar-tn.js: -------------------------------------------------------------------------------- 1 | //! moment.js locale configuration 2 | //! locale : Arabic (Tunisia) [ar-tn] 3 | //! author : Nader Toukabri : https://github.com/naderio 4 | 5 | ;(function (global, factory) { 6 | typeof exports === 'object' && typeof module !== 'undefined' 7 | && typeof require === 'function' ? factory(require('../moment')) : 8 | typeof define === 'function' && define.amd ? define(['../moment'], factory) : 9 | factory(global.moment) 10 | }(this, (function (moment) { 'use strict'; 11 | 12 | 13 | var arTn = moment.defineLocale('ar-tn', { 14 | months: 'جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split('_'), 15 | monthsShort: 'جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split('_'), 16 | weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'), 17 | weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'), 18 | weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'), 19 | weekdaysParseExact : true, 20 | longDateFormat: { 21 | LT: 'HH:mm', 22 | LTS: 'HH:mm:ss', 23 | L: 'DD/MM/YYYY', 24 | LL: 'D MMMM YYYY', 25 | LLL: 'D MMMM YYYY HH:mm', 26 | LLLL: 'dddd D MMMM YYYY HH:mm' 27 | }, 28 | calendar: { 29 | sameDay: '[اليوم على الساعة] LT', 30 | nextDay: '[غدا على الساعة] LT', 31 | nextWeek: 'dddd [على الساعة] LT', 32 | lastDay: '[أمس على الساعة] LT', 33 | lastWeek: 'dddd [على الساعة] LT', 34 | sameElse: 'L' 35 | }, 36 | relativeTime: { 37 | future: 'في %s', 38 | past: 'منذ %s', 39 | s: 'ثوان', 40 | m: 'دقيقة', 41 | mm: '%d دقائق', 42 | h: 'ساعة', 43 | hh: '%d ساعات', 44 | d: 'يوم', 45 | dd: '%d أيام', 46 | M: 'شهر', 47 | MM: '%d أشهر', 48 | y: 'سنة', 49 | yy: '%d سنوات' 50 | }, 51 | week: { 52 | dow: 1, // Monday is the first day of the week. 53 | doy: 4 // The week that contains Jan 4th is the first week of the year. 54 | } 55 | }); 56 | 57 | return arTn; 58 | 59 | }))); 60 | -------------------------------------------------------------------------------- /ChatRoom/wwwroot/lib/moment/locale/km.js: -------------------------------------------------------------------------------- 1 | //! moment.js locale configuration 2 | //! locale : Cambodian [km] 3 | //! author : Kruy Vanna : https://github.com/kruyvanna 4 | 5 | ;(function (global, factory) { 6 | typeof exports === 'object' && typeof module !== 'undefined' 7 | && typeof require === 'function' ? factory(require('../moment')) : 8 | typeof define === 'function' && define.amd ? define(['../moment'], factory) : 9 | factory(global.moment) 10 | }(this, (function (moment) { 'use strict'; 11 | 12 | 13 | var km = moment.defineLocale('km', { 14 | months: 'មករា_កុម្ភៈ_មីនា_មេសា_ឧសភា_មិថុនា_កក្កដា_សីហា_កញ្ញា_តុលា_វិច្ឆិកា_ធ្នូ'.split('_'), 15 | monthsShort: 'មករា_កុម្ភៈ_មីនា_មេសា_ឧសភា_មិថុនា_កក្កដា_សីហា_កញ្ញា_តុលា_វិច្ឆិកា_ធ្នូ'.split('_'), 16 | weekdays: 'អាទិត្យ_ច័ន្ទ_អង្គារ_ពុធ_ព្រហស្បតិ៍_សុក្រ_សៅរ៍'.split('_'), 17 | weekdaysShort: 'អាទិត្យ_ច័ន្ទ_អង្គារ_ពុធ_ព្រហស្បតិ៍_សុក្រ_សៅរ៍'.split('_'), 18 | weekdaysMin: 'អាទិត្យ_ច័ន្ទ_អង្គារ_ពុធ_ព្រហស្បតិ៍_សុក្រ_សៅរ៍'.split('_'), 19 | longDateFormat: { 20 | LT: 'HH:mm', 21 | LTS : 'HH:mm:ss', 22 | L: 'DD/MM/YYYY', 23 | LL: 'D MMMM YYYY', 24 | LLL: 'D MMMM YYYY HH:mm', 25 | LLLL: 'dddd, D MMMM YYYY HH:mm' 26 | }, 27 | calendar: { 28 | sameDay: '[ថ្ងៃនេះ ម៉ោង] LT', 29 | nextDay: '[ស្អែក ម៉ោង] LT', 30 | nextWeek: 'dddd [ម៉ោង] LT', 31 | lastDay: '[ម្សិលមិញ ម៉ោង] LT', 32 | lastWeek: 'dddd [សប្តាហ៍មុន] [ម៉ោង] LT', 33 | sameElse: 'L' 34 | }, 35 | relativeTime: { 36 | future: '%sទៀត', 37 | past: '%sមុន', 38 | s: 'ប៉ុន្មានវិនាទី', 39 | m: 'មួយនាទី', 40 | mm: '%d នាទី', 41 | h: 'មួយម៉ោង', 42 | hh: '%d ម៉ោង', 43 | d: 'មួយថ្ងៃ', 44 | dd: '%d ថ្ងៃ', 45 | M: 'មួយខែ', 46 | MM: '%d ខែ', 47 | y: 'មួយឆ្នាំ', 48 | yy: '%d ឆ្នាំ' 49 | }, 50 | week: { 51 | dow: 1, // Monday is the first day of the week. 52 | doy: 4 // The week that contains Jan 4th is the first week of the year. 53 | } 54 | }); 55 | 56 | return km; 57 | 58 | }))); 59 | -------------------------------------------------------------------------------- /ChatRoom/wwwroot/lib/moment/locale/ko.js: -------------------------------------------------------------------------------- 1 | //! moment.js locale configuration 2 | //! locale : Korean [ko] 3 | //! author : Kyungwook, Park : https://github.com/kyungw00k 4 | //! author : Jeeeyul Lee 5 | 6 | ;(function (global, factory) { 7 | typeof exports === 'object' && typeof module !== 'undefined' 8 | && typeof require === 'function' ? factory(require('../moment')) : 9 | typeof define === 'function' && define.amd ? define(['../moment'], factory) : 10 | factory(global.moment) 11 | }(this, (function (moment) { 'use strict'; 12 | 13 | 14 | var ko = moment.defineLocale('ko', { 15 | months : '1월_2월_3월_4월_5월_6월_7월_8월_9월_10월_11월_12월'.split('_'), 16 | monthsShort : '1월_2월_3월_4월_5월_6월_7월_8월_9월_10월_11월_12월'.split('_'), 17 | weekdays : '일요일_월요일_화요일_수요일_목요일_금요일_토요일'.split('_'), 18 | weekdaysShort : '일_월_화_수_목_금_토'.split('_'), 19 | weekdaysMin : '일_월_화_수_목_금_토'.split('_'), 20 | longDateFormat : { 21 | LT : 'A h시 m분', 22 | LTS : 'A h시 m분 s초', 23 | L : 'YYYY.MM.DD', 24 | LL : 'YYYY년 MMMM D일', 25 | LLL : 'YYYY년 MMMM D일 A h시 m분', 26 | LLLL : 'YYYY년 MMMM D일 dddd A h시 m분' 27 | }, 28 | calendar : { 29 | sameDay : '오늘 LT', 30 | nextDay : '내일 LT', 31 | nextWeek : 'dddd LT', 32 | lastDay : '어제 LT', 33 | lastWeek : '지난주 dddd LT', 34 | sameElse : 'L' 35 | }, 36 | relativeTime : { 37 | future : '%s 후', 38 | past : '%s 전', 39 | s : '몇 초', 40 | ss : '%d초', 41 | m : '일분', 42 | mm : '%d분', 43 | h : '한 시간', 44 | hh : '%d시간', 45 | d : '하루', 46 | dd : '%d일', 47 | M : '한 달', 48 | MM : '%d달', 49 | y : '일 년', 50 | yy : '%d년' 51 | }, 52 | ordinalParse : /\d{1,2}일/, 53 | ordinal : '%d일', 54 | meridiemParse : /오전|오후/, 55 | isPM : function (token) { 56 | return token === '오후'; 57 | }, 58 | meridiem : function (hour, minute, isUpper) { 59 | return hour < 12 ? '오전' : '오후'; 60 | } 61 | }); 62 | 63 | return ko; 64 | 65 | }))); 66 | -------------------------------------------------------------------------------- /ChatRoom/wwwroot/lib/moment/locale/uz.js: -------------------------------------------------------------------------------- 1 | //! moment.js locale configuration 2 | //! locale : Uzbek [uz] 3 | //! author : Sardor Muminov : https://github.com/muminoff 4 | 5 | ;(function (global, factory) { 6 | typeof exports === 'object' && typeof module !== 'undefined' 7 | && typeof require === 'function' ? factory(require('../moment')) : 8 | typeof define === 'function' && define.amd ? define(['../moment'], factory) : 9 | factory(global.moment) 10 | }(this, (function (moment) { 'use strict'; 11 | 12 | 13 | var uz = moment.defineLocale('uz', { 14 | months : 'январ_феврал_март_апрел_май_июн_июл_август_сентябр_октябр_ноябр_декабр'.split('_'), 15 | monthsShort : 'янв_фев_мар_апр_май_июн_июл_авг_сен_окт_ноя_дек'.split('_'), 16 | weekdays : 'Якшанба_Душанба_Сешанба_Чоршанба_Пайшанба_Жума_Шанба'.split('_'), 17 | weekdaysShort : 'Якш_Душ_Сеш_Чор_Пай_Жум_Шан'.split('_'), 18 | weekdaysMin : 'Як_Ду_Се_Чо_Па_Жу_Ша'.split('_'), 19 | longDateFormat : { 20 | LT : 'HH:mm', 21 | LTS : 'HH:mm:ss', 22 | L : 'DD/MM/YYYY', 23 | LL : 'D MMMM YYYY', 24 | LLL : 'D MMMM YYYY HH:mm', 25 | LLLL : 'D MMMM YYYY, dddd HH:mm' 26 | }, 27 | calendar : { 28 | sameDay : '[Бугун соат] LT [да]', 29 | nextDay : '[Эртага] LT [да]', 30 | nextWeek : 'dddd [куни соат] LT [да]', 31 | lastDay : '[Кеча соат] LT [да]', 32 | lastWeek : '[Утган] dddd [куни соат] LT [да]', 33 | sameElse : 'L' 34 | }, 35 | relativeTime : { 36 | future : 'Якин %s ичида', 37 | past : 'Бир неча %s олдин', 38 | s : 'фурсат', 39 | m : 'бир дакика', 40 | mm : '%d дакика', 41 | h : 'бир соат', 42 | hh : '%d соат', 43 | d : 'бир кун', 44 | dd : '%d кун', 45 | M : 'бир ой', 46 | MM : '%d ой', 47 | y : 'бир йил', 48 | yy : '%d йил' 49 | }, 50 | week : { 51 | dow : 1, // Monday is the first day of the week. 52 | doy : 7 // The week that contains Jan 4th is the first week of the year. 53 | } 54 | }); 55 | 56 | return uz; 57 | 58 | }))); 59 | -------------------------------------------------------------------------------- /ChatRoom/wwwroot/lib/moment/src/lib/create/check-overflow.js: -------------------------------------------------------------------------------- 1 | import { daysInMonth } from '../units/month'; 2 | import { YEAR, MONTH, DATE, HOUR, MINUTE, SECOND, MILLISECOND, WEEK, WEEKDAY } from '../units/constants'; 3 | import getParsingFlags from '../create/parsing-flags'; 4 | 5 | export default function checkOverflow (m) { 6 | var overflow; 7 | var a = m._a; 8 | 9 | if (a && getParsingFlags(m).overflow === -2) { 10 | overflow = 11 | a[MONTH] < 0 || a[MONTH] > 11 ? MONTH : 12 | a[DATE] < 1 || a[DATE] > daysInMonth(a[YEAR], a[MONTH]) ? DATE : 13 | a[HOUR] < 0 || a[HOUR] > 24 || (a[HOUR] === 24 && (a[MINUTE] !== 0 || a[SECOND] !== 0 || a[MILLISECOND] !== 0)) ? HOUR : 14 | a[MINUTE] < 0 || a[MINUTE] > 59 ? MINUTE : 15 | a[SECOND] < 0 || a[SECOND] > 59 ? SECOND : 16 | a[MILLISECOND] < 0 || a[MILLISECOND] > 999 ? MILLISECOND : 17 | -1; 18 | 19 | if (getParsingFlags(m)._overflowDayOfYear && (overflow < YEAR || overflow > DATE)) { 20 | overflow = DATE; 21 | } 22 | if (getParsingFlags(m)._overflowWeeks && overflow === -1) { 23 | overflow = WEEK; 24 | } 25 | if (getParsingFlags(m)._overflowWeekday && overflow === -1) { 26 | overflow = WEEKDAY; 27 | } 28 | 29 | getParsingFlags(m).overflow = overflow; 30 | } 31 | 32 | return m; 33 | } 34 | 35 | -------------------------------------------------------------------------------- /ChatRoom/wwwroot/lib/moment/src/lib/create/date-from-array.js: -------------------------------------------------------------------------------- 1 | export function createDate (y, m, d, h, M, s, ms) { 2 | //can't just apply() to create a date: 3 | //http://stackoverflow.com/questions/181348/instantiating-a-javascript-object-by-calling-prototype-constructor-apply 4 | var date = new Date(y, m, d, h, M, s, ms); 5 | 6 | //the date constructor remaps years 0-99 to 1900-1999 7 | if (y < 100 && y >= 0 && isFinite(date.getFullYear())) { 8 | date.setFullYear(y); 9 | } 10 | return date; 11 | } 12 | 13 | export function createUTCDate (y) { 14 | var date = new Date(Date.UTC.apply(null, arguments)); 15 | 16 | //the Date.UTC function remaps years 0-99 to 1900-1999 17 | if (y < 100 && y >= 0 && isFinite(date.getUTCFullYear())) { 18 | date.setUTCFullYear(y); 19 | } 20 | return date; 21 | } 22 | -------------------------------------------------------------------------------- /ChatRoom/wwwroot/lib/moment/src/lib/create/from-object.js: -------------------------------------------------------------------------------- 1 | import { normalizeObjectUnits } from '../units/aliases'; 2 | import { configFromArray } from './from-array'; 3 | import map from '../utils/map'; 4 | 5 | export function configFromObject(config) { 6 | if (config._d) { 7 | return; 8 | } 9 | 10 | var i = normalizeObjectUnits(config._i); 11 | config._a = map([i.year, i.month, i.day || i.date, i.hour, i.minute, i.second, i.millisecond], function (obj) { 12 | return obj && parseInt(obj, 10); 13 | }); 14 | 15 | configFromArray(config); 16 | } 17 | -------------------------------------------------------------------------------- /ChatRoom/wwwroot/lib/moment/src/lib/create/from-string-and-array.js: -------------------------------------------------------------------------------- 1 | import { copyConfig } from '../moment/constructor'; 2 | import { configFromStringAndFormat } from './from-string-and-format'; 3 | import getParsingFlags from './parsing-flags'; 4 | import { isValid } from './valid'; 5 | import extend from '../utils/extend'; 6 | 7 | // date from string and array of format strings 8 | export function configFromStringAndArray(config) { 9 | var tempConfig, 10 | bestMoment, 11 | 12 | scoreToBeat, 13 | i, 14 | currentScore; 15 | 16 | if (config._f.length === 0) { 17 | getParsingFlags(config).invalidFormat = true; 18 | config._d = new Date(NaN); 19 | return; 20 | } 21 | 22 | for (i = 0; i < config._f.length; i++) { 23 | currentScore = 0; 24 | tempConfig = copyConfig({}, config); 25 | if (config._useUTC != null) { 26 | tempConfig._useUTC = config._useUTC; 27 | } 28 | tempConfig._f = config._f[i]; 29 | configFromStringAndFormat(tempConfig); 30 | 31 | if (!isValid(tempConfig)) { 32 | continue; 33 | } 34 | 35 | // if there is any input that was not parsed add a penalty for that format 36 | currentScore += getParsingFlags(tempConfig).charsLeftOver; 37 | 38 | //or tokens 39 | currentScore += getParsingFlags(tempConfig).unusedTokens.length * 10; 40 | 41 | getParsingFlags(tempConfig).score = currentScore; 42 | 43 | if (scoreToBeat == null || currentScore < scoreToBeat) { 44 | scoreToBeat = currentScore; 45 | bestMoment = tempConfig; 46 | } 47 | } 48 | 49 | extend(config, bestMoment || tempConfig); 50 | } 51 | -------------------------------------------------------------------------------- /ChatRoom/wwwroot/lib/moment/src/lib/create/local.js: -------------------------------------------------------------------------------- 1 | import { createLocalOrUTC } from './from-anything'; 2 | 3 | export function createLocal (input, format, locale, strict) { 4 | return createLocalOrUTC(input, format, locale, strict, false); 5 | } 6 | -------------------------------------------------------------------------------- /ChatRoom/wwwroot/lib/moment/src/lib/create/parsing-flags.js: -------------------------------------------------------------------------------- 1 | function defaultParsingFlags() { 2 | // We need to deep clone this object. 3 | return { 4 | empty : false, 5 | unusedTokens : [], 6 | unusedInput : [], 7 | overflow : -2, 8 | charsLeftOver : 0, 9 | nullInput : false, 10 | invalidMonth : null, 11 | invalidFormat : false, 12 | userInvalidated : false, 13 | iso : false, 14 | parsedDateParts : [], 15 | meridiem : null 16 | }; 17 | } 18 | 19 | export default function getParsingFlags(m) { 20 | if (m._pf == null) { 21 | m._pf = defaultParsingFlags(); 22 | } 23 | return m._pf; 24 | } 25 | -------------------------------------------------------------------------------- /ChatRoom/wwwroot/lib/moment/src/lib/create/utc.js: -------------------------------------------------------------------------------- 1 | import { createLocalOrUTC } from './from-anything'; 2 | 3 | export function createUTC (input, format, locale, strict) { 4 | return createLocalOrUTC(input, format, locale, strict, true).utc(); 5 | } 6 | -------------------------------------------------------------------------------- /ChatRoom/wwwroot/lib/moment/src/lib/create/valid.js: -------------------------------------------------------------------------------- 1 | import extend from '../utils/extend'; 2 | import { createUTC } from './utc'; 3 | import getParsingFlags from '../create/parsing-flags'; 4 | import some from '../utils/some'; 5 | 6 | export function isValid(m) { 7 | if (m._isValid == null) { 8 | var flags = getParsingFlags(m); 9 | var parsedParts = some.call(flags.parsedDateParts, function (i) { 10 | return i != null; 11 | }); 12 | var isNowValid = !isNaN(m._d.getTime()) && 13 | flags.overflow < 0 && 14 | !flags.empty && 15 | !flags.invalidMonth && 16 | !flags.invalidWeekday && 17 | !flags.nullInput && 18 | !flags.invalidFormat && 19 | !flags.userInvalidated && 20 | (!flags.meridiem || (flags.meridiem && parsedParts)); 21 | 22 | if (m._strict) { 23 | isNowValid = isNowValid && 24 | flags.charsLeftOver === 0 && 25 | flags.unusedTokens.length === 0 && 26 | flags.bigHour === undefined; 27 | } 28 | 29 | if (Object.isFrozen == null || !Object.isFrozen(m)) { 30 | m._isValid = isNowValid; 31 | } 32 | else { 33 | return isNowValid; 34 | } 35 | } 36 | return m._isValid; 37 | } 38 | 39 | export function createInvalid (flags) { 40 | var m = createUTC(NaN); 41 | if (flags != null) { 42 | extend(getParsingFlags(m), flags); 43 | } 44 | else { 45 | getParsingFlags(m).userInvalidated = true; 46 | } 47 | 48 | return m; 49 | } 50 | -------------------------------------------------------------------------------- /ChatRoom/wwwroot/lib/moment/src/lib/duration/abs.js: -------------------------------------------------------------------------------- 1 | var mathAbs = Math.abs; 2 | 3 | export function abs () { 4 | var data = this._data; 5 | 6 | this._milliseconds = mathAbs(this._milliseconds); 7 | this._days = mathAbs(this._days); 8 | this._months = mathAbs(this._months); 9 | 10 | data.milliseconds = mathAbs(data.milliseconds); 11 | data.seconds = mathAbs(data.seconds); 12 | data.minutes = mathAbs(data.minutes); 13 | data.hours = mathAbs(data.hours); 14 | data.months = mathAbs(data.months); 15 | data.years = mathAbs(data.years); 16 | 17 | return this; 18 | } 19 | -------------------------------------------------------------------------------- /ChatRoom/wwwroot/lib/moment/src/lib/duration/add-subtract.js: -------------------------------------------------------------------------------- 1 | import { createDuration } from './create'; 2 | 3 | function addSubtract (duration, input, value, direction) { 4 | var other = createDuration(input, value); 5 | 6 | duration._milliseconds += direction * other._milliseconds; 7 | duration._days += direction * other._days; 8 | duration._months += direction * other._months; 9 | 10 | return duration._bubble(); 11 | } 12 | 13 | // supports only 2.0-style add(1, 's') or add(duration) 14 | export function add (input, value) { 15 | return addSubtract(this, input, value, 1); 16 | } 17 | 18 | // supports only 2.0-style subtract(1, 's') or subtract(duration) 19 | export function subtract (input, value) { 20 | return addSubtract(this, input, value, -1); 21 | } 22 | -------------------------------------------------------------------------------- /ChatRoom/wwwroot/lib/moment/src/lib/duration/bubble.js: -------------------------------------------------------------------------------- 1 | import absFloor from '../utils/abs-floor'; 2 | import absCeil from '../utils/abs-ceil'; 3 | import { createUTCDate } from '../create/date-from-array'; 4 | 5 | export function bubble () { 6 | var milliseconds = this._milliseconds; 7 | var days = this._days; 8 | var months = this._months; 9 | var data = this._data; 10 | var seconds, minutes, hours, years, monthsFromDays; 11 | 12 | // if we have a mix of positive and negative values, bubble down first 13 | // check: https://github.com/moment/moment/issues/2166 14 | if (!((milliseconds >= 0 && days >= 0 && months >= 0) || 15 | (milliseconds <= 0 && days <= 0 && months <= 0))) { 16 | milliseconds += absCeil(monthsToDays(months) + days) * 864e5; 17 | days = 0; 18 | months = 0; 19 | } 20 | 21 | // The following code bubbles up values, see the tests for 22 | // examples of what that means. 23 | data.milliseconds = milliseconds % 1000; 24 | 25 | seconds = absFloor(milliseconds / 1000); 26 | data.seconds = seconds % 60; 27 | 28 | minutes = absFloor(seconds / 60); 29 | data.minutes = minutes % 60; 30 | 31 | hours = absFloor(minutes / 60); 32 | data.hours = hours % 24; 33 | 34 | days += absFloor(hours / 24); 35 | 36 | // convert days to months 37 | monthsFromDays = absFloor(daysToMonths(days)); 38 | months += monthsFromDays; 39 | days -= absCeil(monthsToDays(monthsFromDays)); 40 | 41 | // 12 months -> 1 year 42 | years = absFloor(months / 12); 43 | months %= 12; 44 | 45 | data.days = days; 46 | data.months = months; 47 | data.years = years; 48 | 49 | return this; 50 | } 51 | 52 | export function daysToMonths (days) { 53 | // 400 years have 146097 days (taking into account leap year rules) 54 | // 400 years have 12 months === 4800 55 | return days * 4800 / 146097; 56 | } 57 | 58 | export function monthsToDays (months) { 59 | // the reverse of daysToMonths 60 | return months * 146097 / 4800; 61 | } 62 | -------------------------------------------------------------------------------- /ChatRoom/wwwroot/lib/moment/src/lib/duration/constructor.js: -------------------------------------------------------------------------------- 1 | import { normalizeObjectUnits } from '../units/aliases'; 2 | import { getLocale } from '../locale/locales'; 3 | 4 | export function Duration (duration) { 5 | var normalizedInput = normalizeObjectUnits(duration), 6 | years = normalizedInput.year || 0, 7 | quarters = normalizedInput.quarter || 0, 8 | months = normalizedInput.month || 0, 9 | weeks = normalizedInput.week || 0, 10 | days = normalizedInput.day || 0, 11 | hours = normalizedInput.hour || 0, 12 | minutes = normalizedInput.minute || 0, 13 | seconds = normalizedInput.second || 0, 14 | milliseconds = normalizedInput.millisecond || 0; 15 | 16 | // representation for dateAddRemove 17 | this._milliseconds = +milliseconds + 18 | seconds * 1e3 + // 1000 19 | minutes * 6e4 + // 1000 * 60 20 | hours * 1000 * 60 * 60; //using 1000 * 60 * 60 instead of 36e5 to avoid floating point rounding errors https://github.com/moment/moment/issues/2978 21 | // Because of dateAddRemove treats 24 hours as different from a 22 | // day when working around DST, we need to store them separately 23 | this._days = +days + 24 | weeks * 7; 25 | // It is impossible translate months into days without knowing 26 | // which months you are are talking about, so we have to store 27 | // it separately. 28 | this._months = +months + 29 | quarters * 3 + 30 | years * 12; 31 | 32 | this._data = {}; 33 | 34 | this._locale = getLocale(); 35 | 36 | this._bubble(); 37 | } 38 | 39 | export function isDuration (obj) { 40 | return obj instanceof Duration; 41 | } 42 | -------------------------------------------------------------------------------- /ChatRoom/wwwroot/lib/moment/src/lib/duration/duration.js: -------------------------------------------------------------------------------- 1 | // Side effect imports 2 | import './prototype'; 3 | 4 | import { createDuration } from './create'; 5 | import { isDuration } from './constructor'; 6 | import { 7 | getSetRelativeTimeRounding, 8 | getSetRelativeTimeThreshold 9 | } from './humanize'; 10 | 11 | export { 12 | createDuration, 13 | isDuration, 14 | getSetRelativeTimeRounding, 15 | getSetRelativeTimeThreshold 16 | }; 17 | -------------------------------------------------------------------------------- /ChatRoom/wwwroot/lib/moment/src/lib/duration/get.js: -------------------------------------------------------------------------------- 1 | import { normalizeUnits } from '../units/aliases'; 2 | import absFloor from '../utils/abs-floor'; 3 | 4 | export function get (units) { 5 | units = normalizeUnits(units); 6 | return this[units + 's'](); 7 | } 8 | 9 | function makeGetter(name) { 10 | return function () { 11 | return this._data[name]; 12 | }; 13 | } 14 | 15 | export var milliseconds = makeGetter('milliseconds'); 16 | export var seconds = makeGetter('seconds'); 17 | export var minutes = makeGetter('minutes'); 18 | export var hours = makeGetter('hours'); 19 | export var days = makeGetter('days'); 20 | export var months = makeGetter('months'); 21 | export var years = makeGetter('years'); 22 | 23 | export function weeks () { 24 | return absFloor(this.days() / 7); 25 | } 26 | -------------------------------------------------------------------------------- /ChatRoom/wwwroot/lib/moment/src/lib/duration/iso-string.js: -------------------------------------------------------------------------------- 1 | import absFloor from '../utils/abs-floor'; 2 | var abs = Math.abs; 3 | 4 | export function toISOString() { 5 | // for ISO strings we do not use the normal bubbling rules: 6 | // * milliseconds bubble up until they become hours 7 | // * days do not bubble at all 8 | // * months bubble up until they become years 9 | // This is because there is no context-free conversion between hours and days 10 | // (think of clock changes) 11 | // and also not between days and months (28-31 days per month) 12 | var seconds = abs(this._milliseconds) / 1000; 13 | var days = abs(this._days); 14 | var months = abs(this._months); 15 | var minutes, hours, years; 16 | 17 | // 3600 seconds -> 60 minutes -> 1 hour 18 | minutes = absFloor(seconds / 60); 19 | hours = absFloor(minutes / 60); 20 | seconds %= 60; 21 | minutes %= 60; 22 | 23 | // 12 months -> 1 year 24 | years = absFloor(months / 12); 25 | months %= 12; 26 | 27 | 28 | // inspired by https://github.com/dordille/moment-isoduration/blob/master/moment.isoduration.js 29 | var Y = years; 30 | var M = months; 31 | var D = days; 32 | var h = hours; 33 | var m = minutes; 34 | var s = seconds; 35 | var total = this.asSeconds(); 36 | 37 | if (!total) { 38 | // this is the same as C#'s (Noda) and python (isodate)... 39 | // but not other JS (goog.date) 40 | return 'P0D'; 41 | } 42 | 43 | return (total < 0 ? '-' : '') + 44 | 'P' + 45 | (Y ? Y + 'Y' : '') + 46 | (M ? M + 'M' : '') + 47 | (D ? D + 'D' : '') + 48 | ((h || m || s) ? 'T' : '') + 49 | (h ? h + 'H' : '') + 50 | (m ? m + 'M' : '') + 51 | (s ? s + 'S' : ''); 52 | } 53 | -------------------------------------------------------------------------------- /ChatRoom/wwwroot/lib/moment/src/lib/duration/prototype.js: -------------------------------------------------------------------------------- 1 | import { Duration } from './constructor'; 2 | 3 | var proto = Duration.prototype; 4 | 5 | import { abs } from './abs'; 6 | import { add, subtract } from './add-subtract'; 7 | import { as, asMilliseconds, asSeconds, asMinutes, asHours, asDays, asWeeks, asMonths, asYears, valueOf } from './as'; 8 | import { bubble } from './bubble'; 9 | import { get, milliseconds, seconds, minutes, hours, days, months, years, weeks } from './get'; 10 | import { humanize } from './humanize'; 11 | import { toISOString } from './iso-string'; 12 | import { lang, locale, localeData } from '../moment/locale'; 13 | 14 | proto.abs = abs; 15 | proto.add = add; 16 | proto.subtract = subtract; 17 | proto.as = as; 18 | proto.asMilliseconds = asMilliseconds; 19 | proto.asSeconds = asSeconds; 20 | proto.asMinutes = asMinutes; 21 | proto.asHours = asHours; 22 | proto.asDays = asDays; 23 | proto.asWeeks = asWeeks; 24 | proto.asMonths = asMonths; 25 | proto.asYears = asYears; 26 | proto.valueOf = valueOf; 27 | proto._bubble = bubble; 28 | proto.get = get; 29 | proto.milliseconds = milliseconds; 30 | proto.seconds = seconds; 31 | proto.minutes = minutes; 32 | proto.hours = hours; 33 | proto.days = days; 34 | proto.weeks = weeks; 35 | proto.months = months; 36 | proto.years = years; 37 | proto.humanize = humanize; 38 | proto.toISOString = toISOString; 39 | proto.toString = toISOString; 40 | proto.toJSON = toISOString; 41 | proto.locale = locale; 42 | proto.localeData = localeData; 43 | 44 | // Deprecations 45 | import { deprecate } from '../utils/deprecate'; 46 | 47 | proto.toIsoString = deprecate('toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)', toISOString); 48 | proto.lang = lang; 49 | -------------------------------------------------------------------------------- /ChatRoom/wwwroot/lib/moment/src/lib/locale/base-config.js: -------------------------------------------------------------------------------- 1 | import { defaultCalendar } from './calendar'; 2 | import { defaultLongDateFormat } from './formats'; 3 | import { defaultInvalidDate } from './invalid'; 4 | import { defaultOrdinal, defaultOrdinalParse } from './ordinal'; 5 | import { defaultRelativeTime } from './relative'; 6 | 7 | // months 8 | import { 9 | defaultLocaleMonths, 10 | defaultLocaleMonthsShort, 11 | } from '../units/month'; 12 | 13 | // week 14 | import { defaultLocaleWeek } from '../units/week'; 15 | 16 | // weekdays 17 | import { 18 | defaultLocaleWeekdays, 19 | defaultLocaleWeekdaysMin, 20 | defaultLocaleWeekdaysShort, 21 | } from '../units/day-of-week'; 22 | 23 | // meridiem 24 | import { defaultLocaleMeridiemParse } from '../units/hour'; 25 | 26 | export var baseConfig = { 27 | calendar: defaultCalendar, 28 | longDateFormat: defaultLongDateFormat, 29 | invalidDate: defaultInvalidDate, 30 | ordinal: defaultOrdinal, 31 | ordinalParse: defaultOrdinalParse, 32 | relativeTime: defaultRelativeTime, 33 | 34 | months: defaultLocaleMonths, 35 | monthsShort: defaultLocaleMonthsShort, 36 | 37 | week: defaultLocaleWeek, 38 | 39 | weekdays: defaultLocaleWeekdays, 40 | weekdaysMin: defaultLocaleWeekdaysMin, 41 | weekdaysShort: defaultLocaleWeekdaysShort, 42 | 43 | meridiemParse: defaultLocaleMeridiemParse 44 | }; 45 | -------------------------------------------------------------------------------- /ChatRoom/wwwroot/lib/moment/src/lib/locale/calendar.js: -------------------------------------------------------------------------------- 1 | export var defaultCalendar = { 2 | sameDay : '[Today at] LT', 3 | nextDay : '[Tomorrow at] LT', 4 | nextWeek : 'dddd [at] LT', 5 | lastDay : '[Yesterday at] LT', 6 | lastWeek : '[Last] dddd [at] LT', 7 | sameElse : 'L' 8 | }; 9 | 10 | import isFunction from '../utils/is-function'; 11 | 12 | export function calendar (key, mom, now) { 13 | var output = this._calendar[key] || this._calendar['sameElse']; 14 | return isFunction(output) ? output.call(mom, now) : output; 15 | } 16 | -------------------------------------------------------------------------------- /ChatRoom/wwwroot/lib/moment/src/lib/locale/constructor.js: -------------------------------------------------------------------------------- 1 | export function Locale(config) { 2 | if (config != null) { 3 | this.set(config); 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /ChatRoom/wwwroot/lib/moment/src/lib/locale/en.js: -------------------------------------------------------------------------------- 1 | import './prototype'; 2 | import { getSetGlobalLocale } from './locales'; 3 | import toInt from '../utils/to-int'; 4 | 5 | getSetGlobalLocale('en', { 6 | ordinalParse: /\d{1,2}(th|st|nd|rd)/, 7 | ordinal : function (number) { 8 | var b = number % 10, 9 | output = (toInt(number % 100 / 10) === 1) ? 'th' : 10 | (b === 1) ? 'st' : 11 | (b === 2) ? 'nd' : 12 | (b === 3) ? 'rd' : 'th'; 13 | return number + output; 14 | } 15 | }); 16 | -------------------------------------------------------------------------------- /ChatRoom/wwwroot/lib/moment/src/lib/locale/formats.js: -------------------------------------------------------------------------------- 1 | export var defaultLongDateFormat = { 2 | LTS : 'h:mm:ss A', 3 | LT : 'h:mm A', 4 | L : 'MM/DD/YYYY', 5 | LL : 'MMMM D, YYYY', 6 | LLL : 'MMMM D, YYYY h:mm A', 7 | LLLL : 'dddd, MMMM D, YYYY h:mm A' 8 | }; 9 | 10 | export function longDateFormat (key) { 11 | var format = this._longDateFormat[key], 12 | formatUpper = this._longDateFormat[key.toUpperCase()]; 13 | 14 | if (format || !formatUpper) { 15 | return format; 16 | } 17 | 18 | this._longDateFormat[key] = formatUpper.replace(/MMMM|MM|DD|dddd/g, function (val) { 19 | return val.slice(1); 20 | }); 21 | 22 | return this._longDateFormat[key]; 23 | } 24 | -------------------------------------------------------------------------------- /ChatRoom/wwwroot/lib/moment/src/lib/locale/invalid.js: -------------------------------------------------------------------------------- 1 | export var defaultInvalidDate = 'Invalid date'; 2 | 3 | export function invalidDate () { 4 | return this._invalidDate; 5 | } 6 | -------------------------------------------------------------------------------- /ChatRoom/wwwroot/lib/moment/src/lib/locale/locale.js: -------------------------------------------------------------------------------- 1 | // Side effect imports 2 | import './prototype'; 3 | 4 | import { 5 | getSetGlobalLocale, 6 | defineLocale, 7 | updateLocale, 8 | getLocale, 9 | listLocales 10 | } from './locales'; 11 | 12 | import { 13 | listMonths, 14 | listMonthsShort, 15 | listWeekdays, 16 | listWeekdaysShort, 17 | listWeekdaysMin 18 | } from './lists'; 19 | 20 | export { 21 | getSetGlobalLocale, 22 | defineLocale, 23 | updateLocale, 24 | getLocale, 25 | listLocales, 26 | listMonths, 27 | listMonthsShort, 28 | listWeekdays, 29 | listWeekdaysShort, 30 | listWeekdaysMin 31 | }; 32 | 33 | import { deprecate } from '../utils/deprecate'; 34 | import { hooks } from '../utils/hooks'; 35 | 36 | hooks.lang = deprecate('moment.lang is deprecated. Use moment.locale instead.', getSetGlobalLocale); 37 | hooks.langData = deprecate('moment.langData is deprecated. Use moment.localeData instead.', getLocale); 38 | 39 | import './en'; 40 | -------------------------------------------------------------------------------- /ChatRoom/wwwroot/lib/moment/src/lib/locale/ordinal.js: -------------------------------------------------------------------------------- 1 | export var defaultOrdinal = '%d'; 2 | export var defaultOrdinalParse = /\d{1,2}/; 3 | 4 | export function ordinal (number) { 5 | return this._ordinal.replace('%d', number); 6 | } 7 | 8 | -------------------------------------------------------------------------------- /ChatRoom/wwwroot/lib/moment/src/lib/locale/pre-post-format.js: -------------------------------------------------------------------------------- 1 | export function preParsePostFormat (string) { 2 | return string; 3 | } 4 | -------------------------------------------------------------------------------- /ChatRoom/wwwroot/lib/moment/src/lib/locale/relative.js: -------------------------------------------------------------------------------- 1 | export var defaultRelativeTime = { 2 | future : 'in %s', 3 | past : '%s ago', 4 | s : 'a few seconds', 5 | m : 'a minute', 6 | mm : '%d minutes', 7 | h : 'an hour', 8 | hh : '%d hours', 9 | d : 'a day', 10 | dd : '%d days', 11 | M : 'a month', 12 | MM : '%d months', 13 | y : 'a year', 14 | yy : '%d years' 15 | }; 16 | 17 | import isFunction from '../utils/is-function'; 18 | 19 | export function relativeTime (number, withoutSuffix, string, isFuture) { 20 | var output = this._relativeTime[string]; 21 | return (isFunction(output)) ? 22 | output(number, withoutSuffix, string, isFuture) : 23 | output.replace(/%d/i, number); 24 | } 25 | 26 | export function pastFuture (diff, output) { 27 | var format = this._relativeTime[diff > 0 ? 'future' : 'past']; 28 | return isFunction(format) ? format(output) : format.replace(/%s/i, output); 29 | } 30 | -------------------------------------------------------------------------------- /ChatRoom/wwwroot/lib/moment/src/lib/locale/set.js: -------------------------------------------------------------------------------- 1 | import isFunction from '../utils/is-function'; 2 | import extend from '../utils/extend'; 3 | import isObject from '../utils/is-object'; 4 | import hasOwnProp from '../utils/has-own-prop'; 5 | 6 | export function set (config) { 7 | var prop, i; 8 | for (i in config) { 9 | prop = config[i]; 10 | if (isFunction(prop)) { 11 | this[i] = prop; 12 | } else { 13 | this['_' + i] = prop; 14 | } 15 | } 16 | this._config = config; 17 | // Lenient ordinal parsing accepts just a number in addition to 18 | // number + (possibly) stuff coming from _ordinalParseLenient. 19 | this._ordinalParseLenient = new RegExp(this._ordinalParse.source + '|' + (/\d{1,2}/).source); 20 | } 21 | 22 | export function mergeConfigs(parentConfig, childConfig) { 23 | var res = extend({}, parentConfig), prop; 24 | for (prop in childConfig) { 25 | if (hasOwnProp(childConfig, prop)) { 26 | if (isObject(parentConfig[prop]) && isObject(childConfig[prop])) { 27 | res[prop] = {}; 28 | extend(res[prop], parentConfig[prop]); 29 | extend(res[prop], childConfig[prop]); 30 | } else if (childConfig[prop] != null) { 31 | res[prop] = childConfig[prop]; 32 | } else { 33 | delete res[prop]; 34 | } 35 | } 36 | } 37 | for (prop in parentConfig) { 38 | if (hasOwnProp(parentConfig, prop) && 39 | !hasOwnProp(childConfig, prop) && 40 | isObject(parentConfig[prop])) { 41 | // make sure changes to properties don't modify parent config 42 | res[prop] = extend({}, res[prop]); 43 | } 44 | } 45 | return res; 46 | } 47 | -------------------------------------------------------------------------------- /ChatRoom/wwwroot/lib/moment/src/lib/moment/add-subtract.js: -------------------------------------------------------------------------------- 1 | import { get, set } from './get-set'; 2 | import { setMonth } from '../units/month'; 3 | import { createDuration } from '../duration/create'; 4 | import { deprecateSimple } from '../utils/deprecate'; 5 | import { hooks } from '../utils/hooks'; 6 | import absRound from '../utils/abs-round'; 7 | 8 | 9 | // TODO: remove 'name' arg after deprecation is removed 10 | function createAdder(direction, name) { 11 | return function (val, period) { 12 | var dur, tmp; 13 | //invert the arguments, but complain about it 14 | if (period !== null && !isNaN(+period)) { 15 | deprecateSimple(name, 'moment().' + name + '(period, number) is deprecated. Please use moment().' + name + '(number, period). ' + 16 | 'See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info.'); 17 | tmp = val; val = period; period = tmp; 18 | } 19 | 20 | val = typeof val === 'string' ? +val : val; 21 | dur = createDuration(val, period); 22 | addSubtract(this, dur, direction); 23 | return this; 24 | }; 25 | } 26 | 27 | export function addSubtract (mom, duration, isAdding, updateOffset) { 28 | var milliseconds = duration._milliseconds, 29 | days = absRound(duration._days), 30 | months = absRound(duration._months); 31 | 32 | if (!mom.isValid()) { 33 | // No op 34 | return; 35 | } 36 | 37 | updateOffset = updateOffset == null ? true : updateOffset; 38 | 39 | if (milliseconds) { 40 | mom._d.setTime(mom._d.valueOf() + milliseconds * isAdding); 41 | } 42 | if (days) { 43 | set(mom, 'Date', get(mom, 'Date') + days * isAdding); 44 | } 45 | if (months) { 46 | setMonth(mom, get(mom, 'Month') + months * isAdding); 47 | } 48 | if (updateOffset) { 49 | hooks.updateOffset(mom, days || months); 50 | } 51 | } 52 | 53 | export var add = createAdder(1, 'add'); 54 | export var subtract = createAdder(-1, 'subtract'); 55 | 56 | -------------------------------------------------------------------------------- /ChatRoom/wwwroot/lib/moment/src/lib/moment/calendar.js: -------------------------------------------------------------------------------- 1 | import { createLocal } from '../create/local'; 2 | import { cloneWithOffset } from '../units/offset'; 3 | import isFunction from '../utils/is-function'; 4 | import { hooks } from '../utils/hooks'; 5 | 6 | export function getCalendarFormat(myMoment, now) { 7 | var diff = myMoment.diff(now, 'days', true); 8 | return diff < -6 ? 'sameElse' : 9 | diff < -1 ? 'lastWeek' : 10 | diff < 0 ? 'lastDay' : 11 | diff < 1 ? 'sameDay' : 12 | diff < 2 ? 'nextDay' : 13 | diff < 7 ? 'nextWeek' : 'sameElse'; 14 | } 15 | 16 | export function calendar (time, formats) { 17 | // We want to compare the start of today, vs this. 18 | // Getting start-of-today depends on whether we're local/utc/offset or not. 19 | var now = time || createLocal(), 20 | sod = cloneWithOffset(now, this).startOf('day'), 21 | format = hooks.calendarFormat(this, sod) || 'sameElse'; 22 | 23 | var output = formats && (isFunction(formats[format]) ? formats[format].call(this, now) : formats[format]); 24 | 25 | return this.format(output || this.localeData().calendar(format, this, createLocal(now))); 26 | } 27 | -------------------------------------------------------------------------------- /ChatRoom/wwwroot/lib/moment/src/lib/moment/clone.js: -------------------------------------------------------------------------------- 1 | import { Moment } from './constructor'; 2 | 3 | export function clone () { 4 | return new Moment(this); 5 | } 6 | -------------------------------------------------------------------------------- /ChatRoom/wwwroot/lib/moment/src/lib/moment/creation-data.js: -------------------------------------------------------------------------------- 1 | export function creationData() { 2 | return { 3 | input: this._i, 4 | format: this._f, 5 | locale: this._locale, 6 | isUTC: this._isUTC, 7 | strict: this._strict 8 | }; 9 | } 10 | -------------------------------------------------------------------------------- /ChatRoom/wwwroot/lib/moment/src/lib/moment/format.js: -------------------------------------------------------------------------------- 1 | import { formatMoment } from '../format/format'; 2 | import { hooks } from '../utils/hooks'; 3 | import isFunction from '../utils/is-function'; 4 | 5 | hooks.defaultFormat = 'YYYY-MM-DDTHH:mm:ssZ'; 6 | hooks.defaultFormatUtc = 'YYYY-MM-DDTHH:mm:ss[Z]'; 7 | 8 | export function toString () { 9 | return this.clone().locale('en').format('ddd MMM DD YYYY HH:mm:ss [GMT]ZZ'); 10 | } 11 | 12 | export function toISOString () { 13 | var m = this.clone().utc(); 14 | if (0 < m.year() && m.year() <= 9999) { 15 | if (isFunction(Date.prototype.toISOString)) { 16 | // native implementation is ~50x faster, use it when we can 17 | return this.toDate().toISOString(); 18 | } else { 19 | return formatMoment(m, 'YYYY-MM-DD[T]HH:mm:ss.SSS[Z]'); 20 | } 21 | } else { 22 | return formatMoment(m, 'YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]'); 23 | } 24 | } 25 | 26 | /** 27 | * Return a human readable representation of a moment that can 28 | * also be evaluated to get a new moment which is the same 29 | * 30 | * @link https://nodejs.org/dist/latest/docs/api/util.html#util_custom_inspect_function_on_objects 31 | */ 32 | export function inspect () { 33 | if (!this.isValid()) { 34 | return 'moment.invalid(/* ' + this._i + ' */)'; 35 | } 36 | var func = 'moment'; 37 | var zone = ''; 38 | if (!this.isLocal()) { 39 | func = this.utcOffset() === 0 ? 'moment.utc' : 'moment.parseZone'; 40 | zone = 'Z'; 41 | } 42 | var prefix = '[' + func + '("]'; 43 | var year = (0 < this.year() && this.year() <= 9999) ? 'YYYY' : 'YYYYYY'; 44 | var datetime = '-MM-DD[T]HH:mm:ss.SSS'; 45 | var suffix = zone + '[")]'; 46 | 47 | return this.format(prefix + year + datetime + suffix); 48 | } 49 | 50 | export function format (inputString) { 51 | if (!inputString) { 52 | inputString = this.isUtc() ? hooks.defaultFormatUtc : hooks.defaultFormat; 53 | } 54 | var output = formatMoment(this, inputString); 55 | return this.localeData().postformat(output); 56 | } 57 | -------------------------------------------------------------------------------- /ChatRoom/wwwroot/lib/moment/src/lib/moment/from.js: -------------------------------------------------------------------------------- 1 | import { createDuration } from '../duration/create'; 2 | import { createLocal } from '../create/local'; 3 | import { isMoment } from '../moment/constructor'; 4 | 5 | export function from (time, withoutSuffix) { 6 | if (this.isValid() && 7 | ((isMoment(time) && time.isValid()) || 8 | createLocal(time).isValid())) { 9 | return createDuration({to: this, from: time}).locale(this.locale()).humanize(!withoutSuffix); 10 | } else { 11 | return this.localeData().invalidDate(); 12 | } 13 | } 14 | 15 | export function fromNow (withoutSuffix) { 16 | return this.from(createLocal(), withoutSuffix); 17 | } 18 | -------------------------------------------------------------------------------- /ChatRoom/wwwroot/lib/moment/src/lib/moment/get-set.js: -------------------------------------------------------------------------------- 1 | import { normalizeUnits, normalizeObjectUnits } from '../units/aliases'; 2 | import { getPrioritizedUnits } from '../units/priorities'; 3 | import { hooks } from '../utils/hooks'; 4 | import isFunction from '../utils/is-function'; 5 | 6 | 7 | export function makeGetSet (unit, keepTime) { 8 | return function (value) { 9 | if (value != null) { 10 | set(this, unit, value); 11 | hooks.updateOffset(this, keepTime); 12 | return this; 13 | } else { 14 | return get(this, unit); 15 | } 16 | }; 17 | } 18 | 19 | export function get (mom, unit) { 20 | return mom.isValid() ? 21 | mom._d['get' + (mom._isUTC ? 'UTC' : '') + unit]() : NaN; 22 | } 23 | 24 | export function set (mom, unit, value) { 25 | if (mom.isValid()) { 26 | mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](value); 27 | } 28 | } 29 | 30 | // MOMENTS 31 | 32 | export function stringGet (units) { 33 | units = normalizeUnits(units); 34 | if (isFunction(this[units])) { 35 | return this[units](); 36 | } 37 | return this; 38 | } 39 | 40 | 41 | export function stringSet (units, value) { 42 | if (typeof units === 'object') { 43 | units = normalizeObjectUnits(units); 44 | var prioritized = getPrioritizedUnits(units); 45 | for (var i = 0; i < prioritized.length; i++) { 46 | this[prioritized[i].unit](units[prioritized[i].unit]); 47 | } 48 | } else { 49 | units = normalizeUnits(units); 50 | if (isFunction(this[units])) { 51 | return this[units](value); 52 | } 53 | } 54 | return this; 55 | } 56 | -------------------------------------------------------------------------------- /ChatRoom/wwwroot/lib/moment/src/lib/moment/locale.js: -------------------------------------------------------------------------------- 1 | import { getLocale } from '../locale/locales'; 2 | import { deprecate } from '../utils/deprecate'; 3 | 4 | // If passed a locale key, it will set the locale for this 5 | // instance. Otherwise, it will return the locale configuration 6 | // variables for this instance. 7 | export function locale (key) { 8 | var newLocaleData; 9 | 10 | if (key === undefined) { 11 | return this._locale._abbr; 12 | } else { 13 | newLocaleData = getLocale(key); 14 | if (newLocaleData != null) { 15 | this._locale = newLocaleData; 16 | } 17 | return this; 18 | } 19 | } 20 | 21 | export var lang = deprecate( 22 | 'moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.', 23 | function (key) { 24 | if (key === undefined) { 25 | return this.localeData(); 26 | } else { 27 | return this.locale(key); 28 | } 29 | } 30 | ); 31 | 32 | export function localeData () { 33 | return this._locale; 34 | } 35 | -------------------------------------------------------------------------------- /ChatRoom/wwwroot/lib/moment/src/lib/moment/moment.js: -------------------------------------------------------------------------------- 1 | import { createLocal } from '../create/local'; 2 | import { createUTC } from '../create/utc'; 3 | import { createInvalid } from '../create/valid'; 4 | import { isMoment } from './constructor'; 5 | import { min, max } from './min-max'; 6 | import { now } from './now'; 7 | import momentPrototype from './prototype'; 8 | 9 | function createUnix (input) { 10 | return createLocal(input * 1000); 11 | } 12 | 13 | function createInZone () { 14 | return createLocal.apply(null, arguments).parseZone(); 15 | } 16 | 17 | export { 18 | now, 19 | min, 20 | max, 21 | isMoment, 22 | createUTC, 23 | createUnix, 24 | createLocal, 25 | createInZone, 26 | createInvalid, 27 | momentPrototype 28 | }; 29 | -------------------------------------------------------------------------------- /ChatRoom/wwwroot/lib/moment/src/lib/moment/now.js: -------------------------------------------------------------------------------- 1 | export var now = function () { 2 | return Date.now ? Date.now() : +(new Date()); 3 | }; 4 | -------------------------------------------------------------------------------- /ChatRoom/wwwroot/lib/moment/src/lib/moment/start-end-of.js: -------------------------------------------------------------------------------- 1 | import { normalizeUnits } from '../units/aliases'; 2 | 3 | export function startOf (units) { 4 | units = normalizeUnits(units); 5 | // the following switch intentionally omits break keywords 6 | // to utilize falling through the cases. 7 | switch (units) { 8 | case 'year': 9 | this.month(0); 10 | /* falls through */ 11 | case 'quarter': 12 | case 'month': 13 | this.date(1); 14 | /* falls through */ 15 | case 'week': 16 | case 'isoWeek': 17 | case 'day': 18 | case 'date': 19 | this.hours(0); 20 | /* falls through */ 21 | case 'hour': 22 | this.minutes(0); 23 | /* falls through */ 24 | case 'minute': 25 | this.seconds(0); 26 | /* falls through */ 27 | case 'second': 28 | this.milliseconds(0); 29 | } 30 | 31 | // weeks are a special case 32 | if (units === 'week') { 33 | this.weekday(0); 34 | } 35 | if (units === 'isoWeek') { 36 | this.isoWeekday(1); 37 | } 38 | 39 | // quarters are also special 40 | if (units === 'quarter') { 41 | this.month(Math.floor(this.month() / 3) * 3); 42 | } 43 | 44 | return this; 45 | } 46 | 47 | export function endOf (units) { 48 | units = normalizeUnits(units); 49 | if (units === undefined || units === 'millisecond') { 50 | return this; 51 | } 52 | 53 | // 'date' is an alias for 'day', so it should be considered as such. 54 | if (units === 'date') { 55 | units = 'day'; 56 | } 57 | 58 | return this.startOf(units).add(1, (units === 'isoWeek' ? 'week' : units)).subtract(1, 'ms'); 59 | } 60 | -------------------------------------------------------------------------------- /ChatRoom/wwwroot/lib/moment/src/lib/moment/to-type.js: -------------------------------------------------------------------------------- 1 | export function valueOf () { 2 | return this._d.valueOf() - ((this._offset || 0) * 60000); 3 | } 4 | 5 | export function unix () { 6 | return Math.floor(this.valueOf() / 1000); 7 | } 8 | 9 | export function toDate () { 10 | return new Date(this.valueOf()); 11 | } 12 | 13 | export function toArray () { 14 | var m = this; 15 | return [m.year(), m.month(), m.date(), m.hour(), m.minute(), m.second(), m.millisecond()]; 16 | } 17 | 18 | export function toObject () { 19 | var m = this; 20 | return { 21 | years: m.year(), 22 | months: m.month(), 23 | date: m.date(), 24 | hours: m.hours(), 25 | minutes: m.minutes(), 26 | seconds: m.seconds(), 27 | milliseconds: m.milliseconds() 28 | }; 29 | } 30 | 31 | export function toJSON () { 32 | // new Date(NaN).toJSON() === null 33 | return this.isValid() ? this.toISOString() : null; 34 | } 35 | -------------------------------------------------------------------------------- /ChatRoom/wwwroot/lib/moment/src/lib/moment/to.js: -------------------------------------------------------------------------------- 1 | import { createDuration } from '../duration/create'; 2 | import { createLocal } from '../create/local'; 3 | import { isMoment } from '../moment/constructor'; 4 | 5 | export function to (time, withoutSuffix) { 6 | if (this.isValid() && 7 | ((isMoment(time) && time.isValid()) || 8 | createLocal(time).isValid())) { 9 | return createDuration({from: this, to: time}).locale(this.locale()).humanize(!withoutSuffix); 10 | } else { 11 | return this.localeData().invalidDate(); 12 | } 13 | } 14 | 15 | export function toNow (withoutSuffix) { 16 | return this.to(createLocal(), withoutSuffix); 17 | } 18 | -------------------------------------------------------------------------------- /ChatRoom/wwwroot/lib/moment/src/lib/moment/valid.js: -------------------------------------------------------------------------------- 1 | import { isValid as _isValid } from '../create/valid'; 2 | import extend from '../utils/extend'; 3 | import getParsingFlags from '../create/parsing-flags'; 4 | 5 | export function isValid () { 6 | return _isValid(this); 7 | } 8 | 9 | export function parsingFlags () { 10 | return extend({}, getParsingFlags(this)); 11 | } 12 | 13 | export function invalidAt () { 14 | return getParsingFlags(this).overflow; 15 | } 16 | -------------------------------------------------------------------------------- /ChatRoom/wwwroot/lib/moment/src/lib/parse/token.js: -------------------------------------------------------------------------------- 1 | import hasOwnProp from '../utils/has-own-prop'; 2 | import isNumber from '../utils/is-number'; 3 | import toInt from '../utils/to-int'; 4 | 5 | var tokens = {}; 6 | 7 | export function addParseToken (token, callback) { 8 | var i, func = callback; 9 | if (typeof token === 'string') { 10 | token = [token]; 11 | } 12 | if (isNumber(callback)) { 13 | func = function (input, array) { 14 | array[callback] = toInt(input); 15 | }; 16 | } 17 | for (i = 0; i < token.length; i++) { 18 | tokens[token[i]] = func; 19 | } 20 | } 21 | 22 | export function addWeekParseToken (token, callback) { 23 | addParseToken(token, function (input, array, config, token) { 24 | config._w = config._w || {}; 25 | callback(input, config._w, config, token); 26 | }); 27 | } 28 | 29 | export function addTimeToArrayFromToken(token, input, config) { 30 | if (input != null && hasOwnProp(tokens, token)) { 31 | tokens[token](input, config._a, config, token); 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /ChatRoom/wwwroot/lib/moment/src/lib/units/aliases.js: -------------------------------------------------------------------------------- 1 | import hasOwnProp from '../utils/has-own-prop'; 2 | 3 | var aliases = {}; 4 | 5 | export function addUnitAlias (unit, shorthand) { 6 | var lowerCase = unit.toLowerCase(); 7 | aliases[lowerCase] = aliases[lowerCase + 's'] = aliases[shorthand] = unit; 8 | } 9 | 10 | export function normalizeUnits(units) { 11 | return typeof units === 'string' ? aliases[units] || aliases[units.toLowerCase()] : undefined; 12 | } 13 | 14 | export function normalizeObjectUnits(inputObject) { 15 | var normalizedInput = {}, 16 | normalizedProp, 17 | prop; 18 | 19 | for (prop in inputObject) { 20 | if (hasOwnProp(inputObject, prop)) { 21 | normalizedProp = normalizeUnits(prop); 22 | if (normalizedProp) { 23 | normalizedInput[normalizedProp] = inputObject[prop]; 24 | } 25 | } 26 | } 27 | 28 | return normalizedInput; 29 | } 30 | 31 | -------------------------------------------------------------------------------- /ChatRoom/wwwroot/lib/moment/src/lib/units/constants.js: -------------------------------------------------------------------------------- 1 | export var YEAR = 0; 2 | export var MONTH = 1; 3 | export var DATE = 2; 4 | export var HOUR = 3; 5 | export var MINUTE = 4; 6 | export var SECOND = 5; 7 | export var MILLISECOND = 6; 8 | export var WEEK = 7; 9 | export var WEEKDAY = 8; 10 | -------------------------------------------------------------------------------- /ChatRoom/wwwroot/lib/moment/src/lib/units/day-of-month.js: -------------------------------------------------------------------------------- 1 | import { makeGetSet } from '../moment/get-set'; 2 | import { addFormatToken } from '../format/format'; 3 | import { addUnitAlias } from './aliases'; 4 | import { addUnitPriority } from './priorities'; 5 | import { addRegexToken, match1to2, match2 } from '../parse/regex'; 6 | import { addParseToken } from '../parse/token'; 7 | import { DATE } from './constants'; 8 | import toInt from '../utils/to-int'; 9 | 10 | // FORMATTING 11 | 12 | addFormatToken('D', ['DD', 2], 'Do', 'date'); 13 | 14 | // ALIASES 15 | 16 | addUnitAlias('date', 'D'); 17 | 18 | // PRIOROITY 19 | addUnitPriority('date', 9); 20 | 21 | // PARSING 22 | 23 | addRegexToken('D', match1to2); 24 | addRegexToken('DD', match1to2, match2); 25 | addRegexToken('Do', function (isStrict, locale) { 26 | return isStrict ? locale._ordinalParse : locale._ordinalParseLenient; 27 | }); 28 | 29 | addParseToken(['D', 'DD'], DATE); 30 | addParseToken('Do', function (input, array) { 31 | array[DATE] = toInt(input.match(match1to2)[0], 10); 32 | }); 33 | 34 | // MOMENTS 35 | 36 | export var getSetDayOfMonth = makeGetSet('Date', true); 37 | -------------------------------------------------------------------------------- /ChatRoom/wwwroot/lib/moment/src/lib/units/day-of-year.js: -------------------------------------------------------------------------------- 1 | import { addFormatToken } from '../format/format'; 2 | import { addUnitAlias } from './aliases'; 3 | import { addUnitPriority } from './priorities'; 4 | import { addRegexToken, match3, match1to3 } from '../parse/regex'; 5 | import { daysInYear } from './year'; 6 | import { createUTCDate } from '../create/date-from-array'; 7 | import { addParseToken } from '../parse/token'; 8 | import toInt from '../utils/to-int'; 9 | 10 | // FORMATTING 11 | 12 | addFormatToken('DDD', ['DDDD', 3], 'DDDo', 'dayOfYear'); 13 | 14 | // ALIASES 15 | 16 | addUnitAlias('dayOfYear', 'DDD'); 17 | 18 | // PRIORITY 19 | addUnitPriority('dayOfYear', 4); 20 | 21 | // PARSING 22 | 23 | addRegexToken('DDD', match1to3); 24 | addRegexToken('DDDD', match3); 25 | addParseToken(['DDD', 'DDDD'], function (input, array, config) { 26 | config._dayOfYear = toInt(input); 27 | }); 28 | 29 | // HELPERS 30 | 31 | // MOMENTS 32 | 33 | export function getSetDayOfYear (input) { 34 | var dayOfYear = Math.round((this.clone().startOf('day') - this.clone().startOf('year')) / 864e5) + 1; 35 | return input == null ? dayOfYear : this.add((input - dayOfYear), 'd'); 36 | } 37 | -------------------------------------------------------------------------------- /ChatRoom/wwwroot/lib/moment/src/lib/units/minute.js: -------------------------------------------------------------------------------- 1 | import { makeGetSet } from '../moment/get-set'; 2 | import { addFormatToken } from '../format/format'; 3 | import { addUnitAlias } from './aliases'; 4 | import { addUnitPriority } from './priorities'; 5 | import { addRegexToken, match1to2, match2 } from '../parse/regex'; 6 | import { addParseToken } from '../parse/token'; 7 | import { MINUTE } from './constants'; 8 | 9 | // FORMATTING 10 | 11 | addFormatToken('m', ['mm', 2], 0, 'minute'); 12 | 13 | // ALIASES 14 | 15 | addUnitAlias('minute', 'm'); 16 | 17 | // PRIORITY 18 | 19 | addUnitPriority('minute', 14); 20 | 21 | // PARSING 22 | 23 | addRegexToken('m', match1to2); 24 | addRegexToken('mm', match1to2, match2); 25 | addParseToken(['m', 'mm'], MINUTE); 26 | 27 | // MOMENTS 28 | 29 | export var getSetMinute = makeGetSet('Minutes', false); 30 | -------------------------------------------------------------------------------- /ChatRoom/wwwroot/lib/moment/src/lib/units/priorities.js: -------------------------------------------------------------------------------- 1 | var priorities = {}; 2 | 3 | export function addUnitPriority(unit, priority) { 4 | priorities[unit] = priority; 5 | } 6 | 7 | export function getPrioritizedUnits(unitsObj) { 8 | var units = []; 9 | for (var u in unitsObj) { 10 | units.push({unit: u, priority: priorities[u]}); 11 | } 12 | units.sort(function (a, b) { 13 | return a.priority - b.priority; 14 | }); 15 | return units; 16 | } 17 | -------------------------------------------------------------------------------- /ChatRoom/wwwroot/lib/moment/src/lib/units/quarter.js: -------------------------------------------------------------------------------- 1 | import { addFormatToken } from '../format/format'; 2 | import { addUnitAlias } from './aliases'; 3 | import { addUnitPriority } from './priorities'; 4 | import { addRegexToken, match1 } from '../parse/regex'; 5 | import { addParseToken } from '../parse/token'; 6 | import { MONTH } from './constants'; 7 | import toInt from '../utils/to-int'; 8 | 9 | // FORMATTING 10 | 11 | addFormatToken('Q', 0, 'Qo', 'quarter'); 12 | 13 | // ALIASES 14 | 15 | addUnitAlias('quarter', 'Q'); 16 | 17 | // PRIORITY 18 | 19 | addUnitPriority('quarter', 7); 20 | 21 | // PARSING 22 | 23 | addRegexToken('Q', match1); 24 | addParseToken('Q', function (input, array) { 25 | array[MONTH] = (toInt(input) - 1) * 3; 26 | }); 27 | 28 | // MOMENTS 29 | 30 | export function getSetQuarter (input) { 31 | return input == null ? Math.ceil((this.month() + 1) / 3) : this.month((input - 1) * 3 + this.month() % 3); 32 | } 33 | -------------------------------------------------------------------------------- /ChatRoom/wwwroot/lib/moment/src/lib/units/second.js: -------------------------------------------------------------------------------- 1 | import { makeGetSet } from '../moment/get-set'; 2 | import { addFormatToken } from '../format/format'; 3 | import { addUnitAlias } from './aliases'; 4 | import { addUnitPriority } from './priorities'; 5 | import { addRegexToken, match1to2, match2 } from '../parse/regex'; 6 | import { addParseToken } from '../parse/token'; 7 | import { SECOND } from './constants'; 8 | 9 | // FORMATTING 10 | 11 | addFormatToken('s', ['ss', 2], 0, 'second'); 12 | 13 | // ALIASES 14 | 15 | addUnitAlias('second', 's'); 16 | 17 | // PRIORITY 18 | 19 | addUnitPriority('second', 15); 20 | 21 | // PARSING 22 | 23 | addRegexToken('s', match1to2); 24 | addRegexToken('ss', match1to2, match2); 25 | addParseToken(['s', 'ss'], SECOND); 26 | 27 | // MOMENTS 28 | 29 | export var getSetSecond = makeGetSet('Seconds', false); 30 | -------------------------------------------------------------------------------- /ChatRoom/wwwroot/lib/moment/src/lib/units/timestamp.js: -------------------------------------------------------------------------------- 1 | import { addFormatToken } from '../format/format'; 2 | import { addRegexToken, matchTimestamp, matchSigned } from '../parse/regex'; 3 | import { addParseToken } from '../parse/token'; 4 | import toInt from '../utils/to-int'; 5 | 6 | // FORMATTING 7 | 8 | addFormatToken('X', 0, 0, 'unix'); 9 | addFormatToken('x', 0, 0, 'valueOf'); 10 | 11 | // PARSING 12 | 13 | addRegexToken('x', matchSigned); 14 | addRegexToken('X', matchTimestamp); 15 | addParseToken('X', function (input, array, config) { 16 | config._d = new Date(parseFloat(input, 10) * 1000); 17 | }); 18 | addParseToken('x', function (input, array, config) { 19 | config._d = new Date(toInt(input)); 20 | }); 21 | -------------------------------------------------------------------------------- /ChatRoom/wwwroot/lib/moment/src/lib/units/timezone.js: -------------------------------------------------------------------------------- 1 | import { addFormatToken } from '../format/format'; 2 | 3 | // FORMATTING 4 | 5 | addFormatToken('z', 0, 0, 'zoneAbbr'); 6 | addFormatToken('zz', 0, 0, 'zoneName'); 7 | 8 | // MOMENTS 9 | 10 | export function getZoneAbbr () { 11 | return this._isUTC ? 'UTC' : ''; 12 | } 13 | 14 | export function getZoneName () { 15 | return this._isUTC ? 'Coordinated Universal Time' : ''; 16 | } 17 | -------------------------------------------------------------------------------- /ChatRoom/wwwroot/lib/moment/src/lib/units/units.js: -------------------------------------------------------------------------------- 1 | // Side effect imports 2 | import './day-of-month'; 3 | import './day-of-week'; 4 | import './day-of-year'; 5 | import './hour'; 6 | import './millisecond'; 7 | import './minute'; 8 | import './month'; 9 | import './offset'; 10 | import './quarter'; 11 | import './second'; 12 | import './timestamp'; 13 | import './timezone'; 14 | import './week-year'; 15 | import './week'; 16 | import './year'; 17 | 18 | import { normalizeUnits } from './aliases'; 19 | 20 | export { normalizeUnits }; 21 | -------------------------------------------------------------------------------- /ChatRoom/wwwroot/lib/moment/src/lib/units/week.js: -------------------------------------------------------------------------------- 1 | import { addFormatToken } from '../format/format'; 2 | import { addUnitAlias } from './aliases'; 3 | import { addUnitPriority } from './priorities'; 4 | import { addRegexToken, match1to2, match2 } from '../parse/regex'; 5 | import { addWeekParseToken } from '../parse/token'; 6 | import toInt from '../utils/to-int'; 7 | import { createLocal } from '../create/local'; 8 | import { weekOfYear } from './week-calendar-utils'; 9 | 10 | // FORMATTING 11 | 12 | addFormatToken('w', ['ww', 2], 'wo', 'week'); 13 | addFormatToken('W', ['WW', 2], 'Wo', 'isoWeek'); 14 | 15 | // ALIASES 16 | 17 | addUnitAlias('week', 'w'); 18 | addUnitAlias('isoWeek', 'W'); 19 | 20 | // PRIORITIES 21 | 22 | addUnitPriority('week', 5); 23 | addUnitPriority('isoWeek', 5); 24 | 25 | // PARSING 26 | 27 | addRegexToken('w', match1to2); 28 | addRegexToken('ww', match1to2, match2); 29 | addRegexToken('W', match1to2); 30 | addRegexToken('WW', match1to2, match2); 31 | 32 | addWeekParseToken(['w', 'ww', 'W', 'WW'], function (input, week, config, token) { 33 | week[token.substr(0, 1)] = toInt(input); 34 | }); 35 | 36 | // HELPERS 37 | 38 | // LOCALES 39 | 40 | export function localeWeek (mom) { 41 | return weekOfYear(mom, this._week.dow, this._week.doy).week; 42 | } 43 | 44 | export var defaultLocaleWeek = { 45 | dow : 0, // Sunday is the first day of the week. 46 | doy : 6 // The week that contains Jan 1st is the first week of the year. 47 | }; 48 | 49 | export function localeFirstDayOfWeek () { 50 | return this._week.dow; 51 | } 52 | 53 | export function localeFirstDayOfYear () { 54 | return this._week.doy; 55 | } 56 | 57 | // MOMENTS 58 | 59 | export function getSetWeek (input) { 60 | var week = this.localeData().week(this); 61 | return input == null ? week : this.add((input - week) * 7, 'd'); 62 | } 63 | 64 | export function getSetISOWeek (input) { 65 | var week = weekOfYear(this, 1, 4).week; 66 | return input == null ? week : this.add((input - week) * 7, 'd'); 67 | } 68 | -------------------------------------------------------------------------------- /ChatRoom/wwwroot/lib/moment/src/lib/utils/abs-ceil.js: -------------------------------------------------------------------------------- 1 | export default function absCeil (number) { 2 | if (number < 0) { 3 | return Math.floor(number); 4 | } else { 5 | return Math.ceil(number); 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /ChatRoom/wwwroot/lib/moment/src/lib/utils/abs-floor.js: -------------------------------------------------------------------------------- 1 | export default function absFloor (number) { 2 | if (number < 0) { 3 | // -0 -> 0 4 | return Math.ceil(number) || 0; 5 | } else { 6 | return Math.floor(number); 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /ChatRoom/wwwroot/lib/moment/src/lib/utils/abs-round.js: -------------------------------------------------------------------------------- 1 | export default function absRound (number) { 2 | if (number < 0) { 3 | return Math.round(-1 * number) * -1; 4 | } else { 5 | return Math.round(number); 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /ChatRoom/wwwroot/lib/moment/src/lib/utils/compare-arrays.js: -------------------------------------------------------------------------------- 1 | import toInt from './to-int'; 2 | 3 | // compare two arrays, return the number of differences 4 | export default function compareArrays(array1, array2, dontConvert) { 5 | var len = Math.min(array1.length, array2.length), 6 | lengthDiff = Math.abs(array1.length - array2.length), 7 | diffs = 0, 8 | i; 9 | for (i = 0; i < len; i++) { 10 | if ((dontConvert && array1[i] !== array2[i]) || 11 | (!dontConvert && toInt(array1[i]) !== toInt(array2[i]))) { 12 | diffs++; 13 | } 14 | } 15 | return diffs + lengthDiff; 16 | } 17 | -------------------------------------------------------------------------------- /ChatRoom/wwwroot/lib/moment/src/lib/utils/defaults.js: -------------------------------------------------------------------------------- 1 | // Pick the first defined of two or three arguments. 2 | export default function defaults(a, b, c) { 3 | if (a != null) { 4 | return a; 5 | } 6 | if (b != null) { 7 | return b; 8 | } 9 | return c; 10 | } 11 | -------------------------------------------------------------------------------- /ChatRoom/wwwroot/lib/moment/src/lib/utils/deprecate.js: -------------------------------------------------------------------------------- 1 | import extend from './extend'; 2 | import { hooks } from './hooks'; 3 | import isUndefined from './is-undefined'; 4 | 5 | function warn(msg) { 6 | if (hooks.suppressDeprecationWarnings === false && 7 | (typeof console !== 'undefined') && console.warn) { 8 | console.warn('Deprecation warning: ' + msg); 9 | } 10 | } 11 | 12 | export function deprecate(msg, fn) { 13 | var firstTime = true; 14 | 15 | return extend(function () { 16 | if (hooks.deprecationHandler != null) { 17 | hooks.deprecationHandler(null, msg); 18 | } 19 | if (firstTime) { 20 | var args = []; 21 | var arg; 22 | for (var i = 0; i < arguments.length; i++) { 23 | arg = ''; 24 | if (typeof arguments[i] === 'object') { 25 | arg += '\n[' + i + '] '; 26 | for (var key in arguments[0]) { 27 | arg += key + ': ' + arguments[0][key] + ', '; 28 | } 29 | arg = arg.slice(0, -2); // Remove trailing comma and space 30 | } else { 31 | arg = arguments[i]; 32 | } 33 | args.push(arg); 34 | } 35 | warn(msg + '\nArguments: ' + Array.prototype.slice.call(args).join('') + '\n' + (new Error()).stack); 36 | firstTime = false; 37 | } 38 | return fn.apply(this, arguments); 39 | }, fn); 40 | } 41 | 42 | var deprecations = {}; 43 | 44 | export function deprecateSimple(name, msg) { 45 | if (hooks.deprecationHandler != null) { 46 | hooks.deprecationHandler(name, msg); 47 | } 48 | if (!deprecations[name]) { 49 | warn(msg); 50 | deprecations[name] = true; 51 | } 52 | } 53 | 54 | hooks.suppressDeprecationWarnings = false; 55 | hooks.deprecationHandler = null; 56 | -------------------------------------------------------------------------------- /ChatRoom/wwwroot/lib/moment/src/lib/utils/extend.js: -------------------------------------------------------------------------------- 1 | import hasOwnProp from './has-own-prop'; 2 | 3 | export default function extend(a, b) { 4 | for (var i in b) { 5 | if (hasOwnProp(b, i)) { 6 | a[i] = b[i]; 7 | } 8 | } 9 | 10 | if (hasOwnProp(b, 'toString')) { 11 | a.toString = b.toString; 12 | } 13 | 14 | if (hasOwnProp(b, 'valueOf')) { 15 | a.valueOf = b.valueOf; 16 | } 17 | 18 | return a; 19 | } 20 | -------------------------------------------------------------------------------- /ChatRoom/wwwroot/lib/moment/src/lib/utils/has-own-prop.js: -------------------------------------------------------------------------------- 1 | export default function hasOwnProp(a, b) { 2 | return Object.prototype.hasOwnProperty.call(a, b); 3 | } 4 | -------------------------------------------------------------------------------- /ChatRoom/wwwroot/lib/moment/src/lib/utils/hooks.js: -------------------------------------------------------------------------------- 1 | export { hooks, setHookCallback }; 2 | 3 | var hookCallback; 4 | 5 | function hooks () { 6 | return hookCallback.apply(null, arguments); 7 | } 8 | 9 | // This is done to register the method called with moment() 10 | // without creating circular dependencies. 11 | function setHookCallback (callback) { 12 | hookCallback = callback; 13 | } 14 | -------------------------------------------------------------------------------- /ChatRoom/wwwroot/lib/moment/src/lib/utils/index-of.js: -------------------------------------------------------------------------------- 1 | var indexOf; 2 | 3 | if (Array.prototype.indexOf) { 4 | indexOf = Array.prototype.indexOf; 5 | } else { 6 | indexOf = function (o) { 7 | // I know 8 | var i; 9 | for (i = 0; i < this.length; ++i) { 10 | if (this[i] === o) { 11 | return i; 12 | } 13 | } 14 | return -1; 15 | }; 16 | } 17 | 18 | export { indexOf as default }; 19 | -------------------------------------------------------------------------------- /ChatRoom/wwwroot/lib/moment/src/lib/utils/is-array.js: -------------------------------------------------------------------------------- 1 | export default function isArray(input) { 2 | return input instanceof Array || Object.prototype.toString.call(input) === '[object Array]'; 3 | } 4 | -------------------------------------------------------------------------------- /ChatRoom/wwwroot/lib/moment/src/lib/utils/is-date.js: -------------------------------------------------------------------------------- 1 | export default function isDate(input) { 2 | return input instanceof Date || Object.prototype.toString.call(input) === '[object Date]'; 3 | } 4 | -------------------------------------------------------------------------------- /ChatRoom/wwwroot/lib/moment/src/lib/utils/is-function.js: -------------------------------------------------------------------------------- 1 | export default function isFunction(input) { 2 | return input instanceof Function || Object.prototype.toString.call(input) === '[object Function]'; 3 | } 4 | -------------------------------------------------------------------------------- /ChatRoom/wwwroot/lib/moment/src/lib/utils/is-number.js: -------------------------------------------------------------------------------- 1 | export default function isNumber(input) { 2 | return typeof input === 'number' || Object.prototype.toString.call(input) === '[object Number]'; 3 | } 4 | -------------------------------------------------------------------------------- /ChatRoom/wwwroot/lib/moment/src/lib/utils/is-object-empty.js: -------------------------------------------------------------------------------- 1 | export default function isObjectEmpty(obj) { 2 | var k; 3 | for (k in obj) { 4 | // even if its not own property I'd still call it non-empty 5 | return false; 6 | } 7 | return true; 8 | } 9 | -------------------------------------------------------------------------------- /ChatRoom/wwwroot/lib/moment/src/lib/utils/is-object.js: -------------------------------------------------------------------------------- 1 | export default function isObject(input) { 2 | // IE8 will treat undefined and null as object if it wasn't for 3 | // input != null 4 | return input != null && Object.prototype.toString.call(input) === '[object Object]'; 5 | } 6 | -------------------------------------------------------------------------------- /ChatRoom/wwwroot/lib/moment/src/lib/utils/is-undefined.js: -------------------------------------------------------------------------------- 1 | export default function isUndefined(input) { 2 | return input === void 0; 3 | } 4 | -------------------------------------------------------------------------------- /ChatRoom/wwwroot/lib/moment/src/lib/utils/keys.js: -------------------------------------------------------------------------------- 1 | import hasOwnProp from './has-own-prop'; 2 | 3 | var keys; 4 | 5 | if (Object.keys) { 6 | keys = Object.keys; 7 | } else { 8 | keys = function (obj) { 9 | var i, res = []; 10 | for (i in obj) { 11 | if (hasOwnProp(obj, i)) { 12 | res.push(i); 13 | } 14 | } 15 | return res; 16 | }; 17 | } 18 | 19 | export { keys as default }; 20 | -------------------------------------------------------------------------------- /ChatRoom/wwwroot/lib/moment/src/lib/utils/map.js: -------------------------------------------------------------------------------- 1 | export default function map(arr, fn) { 2 | var res = [], i; 3 | for (i = 0; i < arr.length; ++i) { 4 | res.push(fn(arr[i], i)); 5 | } 6 | return res; 7 | } 8 | -------------------------------------------------------------------------------- /ChatRoom/wwwroot/lib/moment/src/lib/utils/some.js: -------------------------------------------------------------------------------- 1 | var some; 2 | if (Array.prototype.some) { 3 | some = Array.prototype.some; 4 | } else { 5 | some = function (fun) { 6 | var t = Object(this); 7 | var len = t.length >>> 0; 8 | 9 | for (var i = 0; i < len; i++) { 10 | if (i in t && fun.call(this, t[i], i, t)) { 11 | return true; 12 | } 13 | } 14 | 15 | return false; 16 | }; 17 | } 18 | 19 | export { some as default }; 20 | -------------------------------------------------------------------------------- /ChatRoom/wwwroot/lib/moment/src/lib/utils/to-int.js: -------------------------------------------------------------------------------- 1 | import absFloor from './abs-floor'; 2 | 3 | export default function toInt(argumentForCoercion) { 4 | var coercedNumber = +argumentForCoercion, 5 | value = 0; 6 | 7 | if (coercedNumber !== 0 && isFinite(coercedNumber)) { 8 | value = absFloor(coercedNumber); 9 | } 10 | 11 | return value; 12 | } 13 | -------------------------------------------------------------------------------- /ChatRoom/wwwroot/lib/moment/src/lib/utils/zero-fill.js: -------------------------------------------------------------------------------- 1 | export default function zeroFill(number, targetLength, forceSign) { 2 | var absNumber = '' + Math.abs(number), 3 | zerosToFill = targetLength - absNumber.length, 4 | sign = number >= 0; 5 | return (sign ? (forceSign ? '+' : '') : '-') + 6 | Math.pow(10, Math.max(0, zerosToFill)).toString().substr(1) + absNumber; 7 | } 8 | -------------------------------------------------------------------------------- /ChatRoom/wwwroot/lib/moment/src/locale/ar-dz.js: -------------------------------------------------------------------------------- 1 | //! moment.js locale configuration 2 | //! locale : Arabic (Algeria) [ar-dz] 3 | //! author : Noureddine LOUAHEDJ : https://github.com/noureddineme 4 | 5 | import moment from '../moment'; 6 | 7 | export default moment.defineLocale('ar-dz', { 8 | months : 'جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split('_'), 9 | monthsShort : 'جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split('_'), 10 | weekdays : 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'), 11 | weekdaysShort : 'احد_اثنين_ثلاثاء_اربعاء_خميس_جمعة_سبت'.split('_'), 12 | weekdaysMin : 'أح_إث_ثلا_أر_خم_جم_سب'.split('_'), 13 | weekdaysParseExact : true, 14 | longDateFormat : { 15 | LT : 'HH:mm', 16 | LTS : 'HH:mm:ss', 17 | L : 'DD/MM/YYYY', 18 | LL : 'D MMMM YYYY', 19 | LLL : 'D MMMM YYYY HH:mm', 20 | LLLL : 'dddd D MMMM YYYY HH:mm' 21 | }, 22 | calendar : { 23 | sameDay: '[اليوم على الساعة] LT', 24 | nextDay: '[غدا على الساعة] LT', 25 | nextWeek: 'dddd [على الساعة] LT', 26 | lastDay: '[أمس على الساعة] LT', 27 | lastWeek: 'dddd [على الساعة] LT', 28 | sameElse: 'L' 29 | }, 30 | relativeTime : { 31 | future : 'في %s', 32 | past : 'منذ %s', 33 | s : 'ثوان', 34 | m : 'دقيقة', 35 | mm : '%d دقائق', 36 | h : 'ساعة', 37 | hh : '%d ساعات', 38 | d : 'يوم', 39 | dd : '%d أيام', 40 | M : 'شهر', 41 | MM : '%d أشهر', 42 | y : 'سنة', 43 | yy : '%d سنوات' 44 | }, 45 | week : { 46 | dow : 0, // Sunday is the first day of the week. 47 | doy : 4 // The week that contains Jan 1st is the first week of the year. 48 | } 49 | }); 50 | 51 | -------------------------------------------------------------------------------- /ChatRoom/wwwroot/lib/moment/src/locale/ar-ma.js: -------------------------------------------------------------------------------- 1 | //! moment.js locale configuration 2 | //! locale : Arabic (Morocco) [ar-ma] 3 | //! author : ElFadili Yassine : https://github.com/ElFadiliY 4 | //! author : Abdel Said : https://github.com/abdelsaid 5 | 6 | import moment from '../moment'; 7 | 8 | export default moment.defineLocale('ar-ma', { 9 | months : 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split('_'), 10 | monthsShort : 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split('_'), 11 | weekdays : 'الأحد_الإتنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'), 12 | weekdaysShort : 'احد_اتنين_ثلاثاء_اربعاء_خميس_جمعة_سبت'.split('_'), 13 | weekdaysMin : 'ح_ن_ث_ر_خ_ج_س'.split('_'), 14 | weekdaysParseExact : true, 15 | longDateFormat : { 16 | LT : 'HH:mm', 17 | LTS : 'HH:mm:ss', 18 | L : 'DD/MM/YYYY', 19 | LL : 'D MMMM YYYY', 20 | LLL : 'D MMMM YYYY HH:mm', 21 | LLLL : 'dddd D MMMM YYYY HH:mm' 22 | }, 23 | calendar : { 24 | sameDay: '[اليوم على الساعة] LT', 25 | nextDay: '[غدا على الساعة] LT', 26 | nextWeek: 'dddd [على الساعة] LT', 27 | lastDay: '[أمس على الساعة] LT', 28 | lastWeek: 'dddd [على الساعة] LT', 29 | sameElse: 'L' 30 | }, 31 | relativeTime : { 32 | future : 'في %s', 33 | past : 'منذ %s', 34 | s : 'ثوان', 35 | m : 'دقيقة', 36 | mm : '%d دقائق', 37 | h : 'ساعة', 38 | hh : '%d ساعات', 39 | d : 'يوم', 40 | dd : '%d أيام', 41 | M : 'شهر', 42 | MM : '%d أشهر', 43 | y : 'سنة', 44 | yy : '%d سنوات' 45 | }, 46 | week : { 47 | dow : 6, // Saturday is the first day of the week. 48 | doy : 12 // The week that contains Jan 1st is the first week of the year. 49 | } 50 | }); 51 | 52 | -------------------------------------------------------------------------------- /ChatRoom/wwwroot/lib/moment/src/locale/ar-tn.js: -------------------------------------------------------------------------------- 1 | //! moment.js locale configuration 2 | //! locale : Arabic (Tunisia) [ar-tn] 3 | //! author : Nader Toukabri : https://github.com/naderio 4 | 5 | import moment from '../moment'; 6 | 7 | export default moment.defineLocale('ar-tn', { 8 | months: 'جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split('_'), 9 | monthsShort: 'جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split('_'), 10 | weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'), 11 | weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'), 12 | weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'), 13 | weekdaysParseExact : true, 14 | longDateFormat: { 15 | LT: 'HH:mm', 16 | LTS: 'HH:mm:ss', 17 | L: 'DD/MM/YYYY', 18 | LL: 'D MMMM YYYY', 19 | LLL: 'D MMMM YYYY HH:mm', 20 | LLLL: 'dddd D MMMM YYYY HH:mm' 21 | }, 22 | calendar: { 23 | sameDay: '[اليوم على الساعة] LT', 24 | nextDay: '[غدا على الساعة] LT', 25 | nextWeek: 'dddd [على الساعة] LT', 26 | lastDay: '[أمس على الساعة] LT', 27 | lastWeek: 'dddd [على الساعة] LT', 28 | sameElse: 'L' 29 | }, 30 | relativeTime: { 31 | future: 'في %s', 32 | past: 'منذ %s', 33 | s: 'ثوان', 34 | m: 'دقيقة', 35 | mm: '%d دقائق', 36 | h: 'ساعة', 37 | hh: '%d ساعات', 38 | d: 'يوم', 39 | dd: '%d أيام', 40 | M: 'شهر', 41 | MM: '%d أشهر', 42 | y: 'سنة', 43 | yy: '%d سنوات' 44 | }, 45 | week: { 46 | dow: 1, // Monday is the first day of the week. 47 | doy: 4 // The week that contains Jan 4th is the first week of the year. 48 | } 49 | }); 50 | 51 | -------------------------------------------------------------------------------- /ChatRoom/wwwroot/lib/moment/src/locale/cv.js: -------------------------------------------------------------------------------- 1 | //! moment.js locale configuration 2 | //! locale : Chuvash [cv] 3 | //! author : Anatoly Mironov : https://github.com/mirontoli 4 | 5 | import moment from '../moment'; 6 | 7 | export default moment.defineLocale('cv', { 8 | months : 'кӑрлач_нарӑс_пуш_ака_май_ҫӗртме_утӑ_ҫурла_авӑн_юпа_чӳк_раштав'.split('_'), 9 | monthsShort : 'кӑр_нар_пуш_ака_май_ҫӗр_утӑ_ҫур_авн_юпа_чӳк_раш'.split('_'), 10 | weekdays : 'вырсарникун_тунтикун_ытларикун_юнкун_кӗҫнерникун_эрнекун_шӑматкун'.split('_'), 11 | weekdaysShort : 'выр_тун_ытл_юн_кӗҫ_эрн_шӑм'.split('_'), 12 | weekdaysMin : 'вр_тн_ыт_юн_кҫ_эр_шм'.split('_'), 13 | longDateFormat : { 14 | LT : 'HH:mm', 15 | LTS : 'HH:mm:ss', 16 | L : 'DD-MM-YYYY', 17 | LL : 'YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ]', 18 | LLL : 'YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ], HH:mm', 19 | LLLL : 'dddd, YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ], HH:mm' 20 | }, 21 | calendar : { 22 | sameDay: '[Паян] LT [сехетре]', 23 | nextDay: '[Ыран] LT [сехетре]', 24 | lastDay: '[Ӗнер] LT [сехетре]', 25 | nextWeek: '[Ҫитес] dddd LT [сехетре]', 26 | lastWeek: '[Иртнӗ] dddd LT [сехетре]', 27 | sameElse: 'L' 28 | }, 29 | relativeTime : { 30 | future : function (output) { 31 | var affix = /сехет$/i.exec(output) ? 'рен' : /ҫул$/i.exec(output) ? 'тан' : 'ран'; 32 | return output + affix; 33 | }, 34 | past : '%s каялла', 35 | s : 'пӗр-ик ҫеккунт', 36 | m : 'пӗр минут', 37 | mm : '%d минут', 38 | h : 'пӗр сехет', 39 | hh : '%d сехет', 40 | d : 'пӗр кун', 41 | dd : '%d кун', 42 | M : 'пӗр уйӑх', 43 | MM : '%d уйӑх', 44 | y : 'пӗр ҫул', 45 | yy : '%d ҫул' 46 | }, 47 | ordinalParse: /\d{1,2}-мӗш/, 48 | ordinal : '%d-мӗш', 49 | week : { 50 | dow : 1, // Monday is the first day of the week. 51 | doy : 7 // The week that contains Jan 1st is the first week of the year. 52 | } 53 | }); 54 | -------------------------------------------------------------------------------- /ChatRoom/wwwroot/lib/moment/src/locale/da.js: -------------------------------------------------------------------------------- 1 | //! moment.js locale configuration 2 | //! locale : Danish [da] 3 | //! author : Ulrik Nielsen : https://github.com/mrbase 4 | 5 | import moment from '../moment'; 6 | 7 | export default moment.defineLocale('da', { 8 | months : 'januar_februar_marts_april_maj_juni_juli_august_september_oktober_november_december'.split('_'), 9 | monthsShort : 'jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec'.split('_'), 10 | weekdays : 'søndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag'.split('_'), 11 | weekdaysShort : 'søn_man_tir_ons_tor_fre_lør'.split('_'), 12 | weekdaysMin : 'sø_ma_ti_on_to_fr_lø'.split('_'), 13 | longDateFormat : { 14 | LT : 'HH:mm', 15 | LTS : 'HH:mm:ss', 16 | L : 'DD/MM/YYYY', 17 | LL : 'D. MMMM YYYY', 18 | LLL : 'D. MMMM YYYY HH:mm', 19 | LLLL : 'dddd [d.] D. MMMM YYYY HH:mm' 20 | }, 21 | calendar : { 22 | sameDay : '[I dag kl.] LT', 23 | nextDay : '[I morgen kl.] LT', 24 | nextWeek : 'dddd [kl.] LT', 25 | lastDay : '[I går kl.] LT', 26 | lastWeek : '[sidste] dddd [kl] LT', 27 | sameElse : 'L' 28 | }, 29 | relativeTime : { 30 | future : 'om %s', 31 | past : '%s siden', 32 | s : 'få sekunder', 33 | m : 'et minut', 34 | mm : '%d minutter', 35 | h : 'en time', 36 | hh : '%d timer', 37 | d : 'en dag', 38 | dd : '%d dage', 39 | M : 'en måned', 40 | MM : '%d måneder', 41 | y : 'et år', 42 | yy : '%d år' 43 | }, 44 | ordinalParse: /\d{1,2}\./, 45 | ordinal : '%d.', 46 | week : { 47 | dow : 1, // Monday is the first day of the week. 48 | doy : 4 // The week that contains Jan 4th is the first week of the year. 49 | } 50 | }); 51 | 52 | -------------------------------------------------------------------------------- /ChatRoom/wwwroot/lib/moment/src/locale/en-au.js: -------------------------------------------------------------------------------- 1 | //! moment.js locale configuration 2 | //! locale : English (Australia) [en-au] 3 | //! author : Jared Morse : https://github.com/jarcoal 4 | 5 | import moment from '../moment'; 6 | 7 | export default moment.defineLocale('en-au', { 8 | months : 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_'), 9 | monthsShort : 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'), 10 | weekdays : 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'), 11 | weekdaysShort : 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'), 12 | weekdaysMin : 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'), 13 | longDateFormat : { 14 | LT : 'h:mm A', 15 | LTS : 'h:mm:ss A', 16 | L : 'DD/MM/YYYY', 17 | LL : 'D MMMM YYYY', 18 | LLL : 'D MMMM YYYY h:mm A', 19 | LLLL : 'dddd, D MMMM YYYY h:mm A' 20 | }, 21 | calendar : { 22 | sameDay : '[Today at] LT', 23 | nextDay : '[Tomorrow at] LT', 24 | nextWeek : 'dddd [at] LT', 25 | lastDay : '[Yesterday at] LT', 26 | lastWeek : '[Last] dddd [at] LT', 27 | sameElse : 'L' 28 | }, 29 | relativeTime : { 30 | future : 'in %s', 31 | past : '%s ago', 32 | s : 'a few seconds', 33 | m : 'a minute', 34 | mm : '%d minutes', 35 | h : 'an hour', 36 | hh : '%d hours', 37 | d : 'a day', 38 | dd : '%d days', 39 | M : 'a month', 40 | MM : '%d months', 41 | y : 'a year', 42 | yy : '%d years' 43 | }, 44 | ordinalParse: /\d{1,2}(st|nd|rd|th)/, 45 | ordinal : function (number) { 46 | var b = number % 10, 47 | output = (~~(number % 100 / 10) === 1) ? 'th' : 48 | (b === 1) ? 'st' : 49 | (b === 2) ? 'nd' : 50 | (b === 3) ? 'rd' : 'th'; 51 | return number + output; 52 | }, 53 | week : { 54 | dow : 1, // Monday is the first day of the week. 55 | doy : 4 // The week that contains Jan 4th is the first week of the year. 56 | } 57 | }); 58 | 59 | -------------------------------------------------------------------------------- /ChatRoom/wwwroot/lib/moment/src/locale/en-ca.js: -------------------------------------------------------------------------------- 1 | //! moment.js locale configuration 2 | //! locale : English (Canada) [en-ca] 3 | //! author : Jonathan Abourbih : https://github.com/jonbca 4 | 5 | import moment from '../moment'; 6 | 7 | export default moment.defineLocale('en-ca', { 8 | months : 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_'), 9 | monthsShort : 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'), 10 | weekdays : 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'), 11 | weekdaysShort : 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'), 12 | weekdaysMin : 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'), 13 | longDateFormat : { 14 | LT : 'h:mm A', 15 | LTS : 'h:mm:ss A', 16 | L : 'YYYY-MM-DD', 17 | LL : 'MMMM D, YYYY', 18 | LLL : 'MMMM D, YYYY h:mm A', 19 | LLLL : 'dddd, MMMM D, YYYY h:mm A' 20 | }, 21 | calendar : { 22 | sameDay : '[Today at] LT', 23 | nextDay : '[Tomorrow at] LT', 24 | nextWeek : 'dddd [at] LT', 25 | lastDay : '[Yesterday at] LT', 26 | lastWeek : '[Last] dddd [at] LT', 27 | sameElse : 'L' 28 | }, 29 | relativeTime : { 30 | future : 'in %s', 31 | past : '%s ago', 32 | s : 'a few seconds', 33 | m : 'a minute', 34 | mm : '%d minutes', 35 | h : 'an hour', 36 | hh : '%d hours', 37 | d : 'a day', 38 | dd : '%d days', 39 | M : 'a month', 40 | MM : '%d months', 41 | y : 'a year', 42 | yy : '%d years' 43 | }, 44 | ordinalParse: /\d{1,2}(st|nd|rd|th)/, 45 | ordinal : function (number) { 46 | var b = number % 10, 47 | output = (~~(number % 100 / 10) === 1) ? 'th' : 48 | (b === 1) ? 'st' : 49 | (b === 2) ? 'nd' : 50 | (b === 3) ? 'rd' : 'th'; 51 | return number + output; 52 | } 53 | }); 54 | -------------------------------------------------------------------------------- /ChatRoom/wwwroot/lib/moment/src/locale/fo.js: -------------------------------------------------------------------------------- 1 | //! moment.js locale configuration 2 | //! locale : Faroese [fo] 3 | //! author : Ragnar Johannesen : https://github.com/ragnar123 4 | 5 | import moment from '../moment'; 6 | 7 | export default moment.defineLocale('fo', { 8 | months : 'januar_februar_mars_apríl_mai_juni_juli_august_september_oktober_november_desember'.split('_'), 9 | monthsShort : 'jan_feb_mar_apr_mai_jun_jul_aug_sep_okt_nov_des'.split('_'), 10 | weekdays : 'sunnudagur_mánadagur_týsdagur_mikudagur_hósdagur_fríggjadagur_leygardagur'.split('_'), 11 | weekdaysShort : 'sun_mán_týs_mik_hós_frí_ley'.split('_'), 12 | weekdaysMin : 'su_má_tý_mi_hó_fr_le'.split('_'), 13 | longDateFormat : { 14 | LT : 'HH:mm', 15 | LTS : 'HH:mm:ss', 16 | L : 'DD/MM/YYYY', 17 | LL : 'D MMMM YYYY', 18 | LLL : 'D MMMM YYYY HH:mm', 19 | LLLL : 'dddd D. MMMM, YYYY HH:mm' 20 | }, 21 | calendar : { 22 | sameDay : '[Í dag kl.] LT', 23 | nextDay : '[Í morgin kl.] LT', 24 | nextWeek : 'dddd [kl.] LT', 25 | lastDay : '[Í gjár kl.] LT', 26 | lastWeek : '[síðstu] dddd [kl] LT', 27 | sameElse : 'L' 28 | }, 29 | relativeTime : { 30 | future : 'um %s', 31 | past : '%s síðani', 32 | s : 'fá sekund', 33 | m : 'ein minutt', 34 | mm : '%d minuttir', 35 | h : 'ein tími', 36 | hh : '%d tímar', 37 | d : 'ein dagur', 38 | dd : '%d dagar', 39 | M : 'ein mánaði', 40 | MM : '%d mánaðir', 41 | y : 'eitt ár', 42 | yy : '%d ár' 43 | }, 44 | ordinalParse: /\d{1,2}\./, 45 | ordinal : '%d.', 46 | week : { 47 | dow : 1, // Monday is the first day of the week. 48 | doy : 4 // The week that contains Jan 4th is the first week of the year. 49 | } 50 | }); 51 | 52 | -------------------------------------------------------------------------------- /ChatRoom/wwwroot/lib/moment/src/locale/fr-ca.js: -------------------------------------------------------------------------------- 1 | //! moment.js locale configuration 2 | //! locale : French (Canada) [fr-ca] 3 | //! author : Jonathan Abourbih : https://github.com/jonbca 4 | 5 | import moment from '../moment'; 6 | 7 | export default moment.defineLocale('fr-ca', { 8 | months : 'janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre'.split('_'), 9 | monthsShort : 'janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.'.split('_'), 10 | monthsParseExact : true, 11 | weekdays : 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'), 12 | weekdaysShort : 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'), 13 | weekdaysMin : 'Di_Lu_Ma_Me_Je_Ve_Sa'.split('_'), 14 | weekdaysParseExact : true, 15 | longDateFormat : { 16 | LT : 'HH:mm', 17 | LTS : 'HH:mm:ss', 18 | L : 'YYYY-MM-DD', 19 | LL : 'D MMMM YYYY', 20 | LLL : 'D MMMM YYYY HH:mm', 21 | LLLL : 'dddd D MMMM YYYY HH:mm' 22 | }, 23 | calendar : { 24 | sameDay: '[Aujourd\'hui à] LT', 25 | nextDay: '[Demain à] LT', 26 | nextWeek: 'dddd [à] LT', 27 | lastDay: '[Hier à] LT', 28 | lastWeek: 'dddd [dernier à] LT', 29 | sameElse: 'L' 30 | }, 31 | relativeTime : { 32 | future : 'dans %s', 33 | past : 'il y a %s', 34 | s : 'quelques secondes', 35 | m : 'une minute', 36 | mm : '%d minutes', 37 | h : 'une heure', 38 | hh : '%d heures', 39 | d : 'un jour', 40 | dd : '%d jours', 41 | M : 'un mois', 42 | MM : '%d mois', 43 | y : 'un an', 44 | yy : '%d ans' 45 | }, 46 | ordinalParse: /\d{1,2}(er|e)/, 47 | ordinal : function (number) { 48 | return number + (number === 1 ? 'er' : 'e'); 49 | } 50 | }); 51 | 52 | -------------------------------------------------------------------------------- /ChatRoom/wwwroot/lib/moment/src/locale/fr-ch.js: -------------------------------------------------------------------------------- 1 | //! moment.js locale configuration 2 | //! locale : French (Switzerland) [fr-ch] 3 | //! author : Gaspard Bucher : https://github.com/gaspard 4 | 5 | import moment from '../moment'; 6 | 7 | export default moment.defineLocale('fr-ch', { 8 | months : 'janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre'.split('_'), 9 | monthsShort : 'janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.'.split('_'), 10 | monthsParseExact : true, 11 | weekdays : 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'), 12 | weekdaysShort : 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'), 13 | weekdaysMin : 'Di_Lu_Ma_Me_Je_Ve_Sa'.split('_'), 14 | weekdaysParseExact : true, 15 | longDateFormat : { 16 | LT : 'HH:mm', 17 | LTS : 'HH:mm:ss', 18 | L : 'DD.MM.YYYY', 19 | LL : 'D MMMM YYYY', 20 | LLL : 'D MMMM YYYY HH:mm', 21 | LLLL : 'dddd D MMMM YYYY HH:mm' 22 | }, 23 | calendar : { 24 | sameDay: '[Aujourd\'hui à] LT', 25 | nextDay: '[Demain à] LT', 26 | nextWeek: 'dddd [à] LT', 27 | lastDay: '[Hier à] LT', 28 | lastWeek: 'dddd [dernier à] LT', 29 | sameElse: 'L' 30 | }, 31 | relativeTime : { 32 | future : 'dans %s', 33 | past : 'il y a %s', 34 | s : 'quelques secondes', 35 | m : 'une minute', 36 | mm : '%d minutes', 37 | h : 'une heure', 38 | hh : '%d heures', 39 | d : 'un jour', 40 | dd : '%d jours', 41 | M : 'un mois', 42 | MM : '%d mois', 43 | y : 'un an', 44 | yy : '%d ans' 45 | }, 46 | ordinalParse: /\d{1,2}(er|e)/, 47 | ordinal : function (number) { 48 | return number + (number === 1 ? 'er' : 'e'); 49 | }, 50 | week : { 51 | dow : 1, // Monday is the first day of the week. 52 | doy : 4 // The week that contains Jan 4th is the first week of the year. 53 | } 54 | }); 55 | 56 | -------------------------------------------------------------------------------- /ChatRoom/wwwroot/lib/moment/src/locale/fr.js: -------------------------------------------------------------------------------- 1 | //! moment.js locale configuration 2 | //! locale : French [fr] 3 | //! author : John Fischer : https://github.com/jfroffice 4 | 5 | import moment from '../moment'; 6 | 7 | export default moment.defineLocale('fr', { 8 | months : 'janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre'.split('_'), 9 | monthsShort : 'janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.'.split('_'), 10 | monthsParseExact : true, 11 | weekdays : 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'), 12 | weekdaysShort : 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'), 13 | weekdaysMin : 'Di_Lu_Ma_Me_Je_Ve_Sa'.split('_'), 14 | weekdaysParseExact : true, 15 | longDateFormat : { 16 | LT : 'HH:mm', 17 | LTS : 'HH:mm:ss', 18 | L : 'DD/MM/YYYY', 19 | LL : 'D MMMM YYYY', 20 | LLL : 'D MMMM YYYY HH:mm', 21 | LLLL : 'dddd D MMMM YYYY HH:mm' 22 | }, 23 | calendar : { 24 | sameDay: '[Aujourd\'hui à] LT', 25 | nextDay: '[Demain à] LT', 26 | nextWeek: 'dddd [à] LT', 27 | lastDay: '[Hier à] LT', 28 | lastWeek: 'dddd [dernier à] LT', 29 | sameElse: 'L' 30 | }, 31 | relativeTime : { 32 | future : 'dans %s', 33 | past : 'il y a %s', 34 | s : 'quelques secondes', 35 | m : 'une minute', 36 | mm : '%d minutes', 37 | h : 'une heure', 38 | hh : '%d heures', 39 | d : 'un jour', 40 | dd : '%d jours', 41 | M : 'un mois', 42 | MM : '%d mois', 43 | y : 'un an', 44 | yy : '%d ans' 45 | }, 46 | ordinalParse: /\d{1,2}(er|)/, 47 | ordinal : function (number) { 48 | return number + (number === 1 ? 'er' : ''); 49 | }, 50 | week : { 51 | dow : 1, // Monday is the first day of the week. 52 | doy : 4 // The week that contains Jan 4th is the first week of the year. 53 | } 54 | }); 55 | 56 | -------------------------------------------------------------------------------- /ChatRoom/wwwroot/lib/moment/src/locale/ja.js: -------------------------------------------------------------------------------- 1 | //! moment.js locale configuration 2 | //! locale : Japanese [ja] 3 | //! author : LI Long : https://github.com/baryon 4 | 5 | import moment from '../moment'; 6 | 7 | export default moment.defineLocale('ja', { 8 | months : '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split('_'), 9 | monthsShort : '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split('_'), 10 | weekdays : '日曜日_月曜日_火曜日_水曜日_木曜日_金曜日_土曜日'.split('_'), 11 | weekdaysShort : '日_月_火_水_木_金_土'.split('_'), 12 | weekdaysMin : '日_月_火_水_木_金_土'.split('_'), 13 | longDateFormat : { 14 | LT : 'Ah時m分', 15 | LTS : 'Ah時m分s秒', 16 | L : 'YYYY/MM/DD', 17 | LL : 'YYYY年M月D日', 18 | LLL : 'YYYY年M月D日Ah時m分', 19 | LLLL : 'YYYY年M月D日Ah時m分 dddd' 20 | }, 21 | meridiemParse: /午前|午後/i, 22 | isPM : function (input) { 23 | return input === '午後'; 24 | }, 25 | meridiem : function (hour, minute, isLower) { 26 | if (hour < 12) { 27 | return '午前'; 28 | } else { 29 | return '午後'; 30 | } 31 | }, 32 | calendar : { 33 | sameDay : '[今日] LT', 34 | nextDay : '[明日] LT', 35 | nextWeek : '[来週]dddd LT', 36 | lastDay : '[昨日] LT', 37 | lastWeek : '[前週]dddd LT', 38 | sameElse : 'L' 39 | }, 40 | ordinalParse : /\d{1,2}日/, 41 | ordinal : function (number, period) { 42 | switch (period) { 43 | case 'd': 44 | case 'D': 45 | case 'DDD': 46 | return number + '日'; 47 | default: 48 | return number; 49 | } 50 | }, 51 | relativeTime : { 52 | future : '%s後', 53 | past : '%s前', 54 | s : '数秒', 55 | m : '1分', 56 | mm : '%d分', 57 | h : '1時間', 58 | hh : '%d時間', 59 | d : '1日', 60 | dd : '%d日', 61 | M : '1ヶ月', 62 | MM : '%dヶ月', 63 | y : '1年', 64 | yy : '%d年' 65 | } 66 | }); 67 | 68 | -------------------------------------------------------------------------------- /ChatRoom/wwwroot/lib/moment/src/locale/km.js: -------------------------------------------------------------------------------- 1 | //! moment.js locale configuration 2 | //! locale : Cambodian [km] 3 | //! author : Kruy Vanna : https://github.com/kruyvanna 4 | 5 | import moment from '../moment'; 6 | 7 | export default moment.defineLocale('km', { 8 | months: 'មករា_កុម្ភៈ_មីនា_មេសា_ឧសភា_មិថុនា_កក្កដា_សីហា_កញ្ញា_តុលា_វិច្ឆិកា_ធ្នូ'.split('_'), 9 | monthsShort: 'មករា_កុម្ភៈ_មីនា_មេសា_ឧសភា_មិថុនា_កក្កដា_សីហា_កញ្ញា_តុលា_វិច្ឆិកា_ធ្នូ'.split('_'), 10 | weekdays: 'អាទិត្យ_ច័ន្ទ_អង្គារ_ពុធ_ព្រហស្បតិ៍_សុក្រ_សៅរ៍'.split('_'), 11 | weekdaysShort: 'អាទិត្យ_ច័ន្ទ_អង្គារ_ពុធ_ព្រហស្បតិ៍_សុក្រ_សៅរ៍'.split('_'), 12 | weekdaysMin: 'អាទិត្យ_ច័ន្ទ_អង្គារ_ពុធ_ព្រហស្បតិ៍_សុក្រ_សៅរ៍'.split('_'), 13 | longDateFormat: { 14 | LT: 'HH:mm', 15 | LTS : 'HH:mm:ss', 16 | L: 'DD/MM/YYYY', 17 | LL: 'D MMMM YYYY', 18 | LLL: 'D MMMM YYYY HH:mm', 19 | LLLL: 'dddd, D MMMM YYYY HH:mm' 20 | }, 21 | calendar: { 22 | sameDay: '[ថ្ងៃនេះ ម៉ោង] LT', 23 | nextDay: '[ស្អែក ម៉ោង] LT', 24 | nextWeek: 'dddd [ម៉ោង] LT', 25 | lastDay: '[ម្សិលមិញ ម៉ោង] LT', 26 | lastWeek: 'dddd [សប្តាហ៍មុន] [ម៉ោង] LT', 27 | sameElse: 'L' 28 | }, 29 | relativeTime: { 30 | future: '%sទៀត', 31 | past: '%sមុន', 32 | s: 'ប៉ុន្មានវិនាទី', 33 | m: 'មួយនាទី', 34 | mm: '%d នាទី', 35 | h: 'មួយម៉ោង', 36 | hh: '%d ម៉ោង', 37 | d: 'មួយថ្ងៃ', 38 | dd: '%d ថ្ងៃ', 39 | M: 'មួយខែ', 40 | MM: '%d ខែ', 41 | y: 'មួយឆ្នាំ', 42 | yy: '%d ឆ្នាំ' 43 | }, 44 | week: { 45 | dow: 1, // Monday is the first day of the week. 46 | doy: 4 // The week that contains Jan 4th is the first week of the year. 47 | } 48 | }); 49 | 50 | -------------------------------------------------------------------------------- /ChatRoom/wwwroot/lib/moment/src/locale/ko.js: -------------------------------------------------------------------------------- 1 | //! moment.js locale configuration 2 | //! locale : Korean [ko] 3 | //! author : Kyungwook, Park : https://github.com/kyungw00k 4 | //! author : Jeeeyul Lee 5 | 6 | import moment from '../moment'; 7 | 8 | export default moment.defineLocale('ko', { 9 | months : '1월_2월_3월_4월_5월_6월_7월_8월_9월_10월_11월_12월'.split('_'), 10 | monthsShort : '1월_2월_3월_4월_5월_6월_7월_8월_9월_10월_11월_12월'.split('_'), 11 | weekdays : '일요일_월요일_화요일_수요일_목요일_금요일_토요일'.split('_'), 12 | weekdaysShort : '일_월_화_수_목_금_토'.split('_'), 13 | weekdaysMin : '일_월_화_수_목_금_토'.split('_'), 14 | longDateFormat : { 15 | LT : 'A h시 m분', 16 | LTS : 'A h시 m분 s초', 17 | L : 'YYYY.MM.DD', 18 | LL : 'YYYY년 MMMM D일', 19 | LLL : 'YYYY년 MMMM D일 A h시 m분', 20 | LLLL : 'YYYY년 MMMM D일 dddd A h시 m분' 21 | }, 22 | calendar : { 23 | sameDay : '오늘 LT', 24 | nextDay : '내일 LT', 25 | nextWeek : 'dddd LT', 26 | lastDay : '어제 LT', 27 | lastWeek : '지난주 dddd LT', 28 | sameElse : 'L' 29 | }, 30 | relativeTime : { 31 | future : '%s 후', 32 | past : '%s 전', 33 | s : '몇 초', 34 | ss : '%d초', 35 | m : '일분', 36 | mm : '%d분', 37 | h : '한 시간', 38 | hh : '%d시간', 39 | d : '하루', 40 | dd : '%d일', 41 | M : '한 달', 42 | MM : '%d달', 43 | y : '일 년', 44 | yy : '%d년' 45 | }, 46 | ordinalParse : /\d{1,2}일/, 47 | ordinal : '%d일', 48 | meridiemParse : /오전|오후/, 49 | isPM : function (token) { 50 | return token === '오후'; 51 | }, 52 | meridiem : function (hour, minute, isUpper) { 53 | return hour < 12 ? '오전' : '오후'; 54 | } 55 | }); 56 | 57 | -------------------------------------------------------------------------------- /ChatRoom/wwwroot/lib/moment/src/locale/lo.js: -------------------------------------------------------------------------------- 1 | //! moment.js locale configuration 2 | //! locale : Lao [lo] 3 | //! author : Ryan Hart : https://github.com/ryanhart2 4 | 5 | import moment from '../moment'; 6 | 7 | export default moment.defineLocale('lo', { 8 | months : 'ມັງກອນ_ກຸມພາ_ມີນາ_ເມສາ_ພຶດສະພາ_ມິຖຸນາ_ກໍລະກົດ_ສິງຫາ_ກັນຍາ_ຕຸລາ_ພະຈິກ_ທັນວາ'.split('_'), 9 | monthsShort : 'ມັງກອນ_ກຸມພາ_ມີນາ_ເມສາ_ພຶດສະພາ_ມິຖຸນາ_ກໍລະກົດ_ສິງຫາ_ກັນຍາ_ຕຸລາ_ພະຈິກ_ທັນວາ'.split('_'), 10 | weekdays : 'ອາທິດ_ຈັນ_ອັງຄານ_ພຸດ_ພະຫັດ_ສຸກ_ເສົາ'.split('_'), 11 | weekdaysShort : 'ທິດ_ຈັນ_ອັງຄານ_ພຸດ_ພະຫັດ_ສຸກ_ເສົາ'.split('_'), 12 | weekdaysMin : 'ທ_ຈ_ອຄ_ພ_ພຫ_ສກ_ສ'.split('_'), 13 | weekdaysParseExact : true, 14 | longDateFormat : { 15 | LT : 'HH:mm', 16 | LTS : 'HH:mm:ss', 17 | L : 'DD/MM/YYYY', 18 | LL : 'D MMMM YYYY', 19 | LLL : 'D MMMM YYYY HH:mm', 20 | LLLL : 'ວັນdddd D MMMM YYYY HH:mm' 21 | }, 22 | meridiemParse: /ຕອນເຊົ້າ|ຕອນແລງ/, 23 | isPM: function (input) { 24 | return input === 'ຕອນແລງ'; 25 | }, 26 | meridiem : function (hour, minute, isLower) { 27 | if (hour < 12) { 28 | return 'ຕອນເຊົ້າ'; 29 | } else { 30 | return 'ຕອນແລງ'; 31 | } 32 | }, 33 | calendar : { 34 | sameDay : '[ມື້ນີ້ເວລາ] LT', 35 | nextDay : '[ມື້ອື່ນເວລາ] LT', 36 | nextWeek : '[ວັນ]dddd[ໜ້າເວລາ] LT', 37 | lastDay : '[ມື້ວານນີ້ເວລາ] LT', 38 | lastWeek : '[ວັນ]dddd[ແລ້ວນີ້ເວລາ] LT', 39 | sameElse : 'L' 40 | }, 41 | relativeTime : { 42 | future : 'ອີກ %s', 43 | past : '%sຜ່ານມາ', 44 | s : 'ບໍ່ເທົ່າໃດວິນາທີ', 45 | m : '1 ນາທີ', 46 | mm : '%d ນາທີ', 47 | h : '1 ຊົ່ວໂມງ', 48 | hh : '%d ຊົ່ວໂມງ', 49 | d : '1 ມື້', 50 | dd : '%d ມື້', 51 | M : '1 ເດືອນ', 52 | MM : '%d ເດືອນ', 53 | y : '1 ປີ', 54 | yy : '%d ປີ' 55 | }, 56 | ordinalParse: /(ທີ່)\d{1,2}/, 57 | ordinal : function (number) { 58 | return 'ທີ່' + number; 59 | } 60 | }); 61 | 62 | -------------------------------------------------------------------------------- /ChatRoom/wwwroot/lib/moment/src/locale/nb.js: -------------------------------------------------------------------------------- 1 | //! moment.js locale configuration 2 | //! locale : Norwegian Bokmål [nb] 3 | //! authors : Espen Hovlandsdal : https://github.com/rexxars 4 | //! Sigurd Gartmann : https://github.com/sigurdga 5 | 6 | import moment from '../moment'; 7 | 8 | export default moment.defineLocale('nb', { 9 | months : 'januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember'.split('_'), 10 | monthsShort : 'jan._feb._mars_april_mai_juni_juli_aug._sep._okt._nov._des.'.split('_'), 11 | monthsParseExact : true, 12 | weekdays : 'søndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag'.split('_'), 13 | weekdaysShort : 'sø._ma._ti._on._to._fr._lø.'.split('_'), 14 | weekdaysMin : 'sø_ma_ti_on_to_fr_lø'.split('_'), 15 | weekdaysParseExact : true, 16 | longDateFormat : { 17 | LT : 'HH:mm', 18 | LTS : 'HH:mm:ss', 19 | L : 'DD.MM.YYYY', 20 | LL : 'D. MMMM YYYY', 21 | LLL : 'D. MMMM YYYY [kl.] HH:mm', 22 | LLLL : 'dddd D. MMMM YYYY [kl.] HH:mm' 23 | }, 24 | calendar : { 25 | sameDay: '[i dag kl.] LT', 26 | nextDay: '[i morgen kl.] LT', 27 | nextWeek: 'dddd [kl.] LT', 28 | lastDay: '[i går kl.] LT', 29 | lastWeek: '[forrige] dddd [kl.] LT', 30 | sameElse: 'L' 31 | }, 32 | relativeTime : { 33 | future : 'om %s', 34 | past : '%s siden', 35 | s : 'noen sekunder', 36 | m : 'ett minutt', 37 | mm : '%d minutter', 38 | h : 'en time', 39 | hh : '%d timer', 40 | d : 'en dag', 41 | dd : '%d dager', 42 | M : 'en måned', 43 | MM : '%d måneder', 44 | y : 'ett år', 45 | yy : '%d år' 46 | }, 47 | ordinalParse: /\d{1,2}\./, 48 | ordinal : '%d.', 49 | week : { 50 | dow : 1, // Monday is the first day of the week. 51 | doy : 4 // The week that contains Jan 4th is the first week of the year. 52 | } 53 | }); 54 | 55 | -------------------------------------------------------------------------------- /ChatRoom/wwwroot/lib/moment/src/locale/nn.js: -------------------------------------------------------------------------------- 1 | //! moment.js locale configuration 2 | //! locale : Nynorsk [nn] 3 | //! author : https://github.com/mechuwind 4 | 5 | import moment from '../moment'; 6 | 7 | export default moment.defineLocale('nn', { 8 | months : 'januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember'.split('_'), 9 | monthsShort : 'jan_feb_mar_apr_mai_jun_jul_aug_sep_okt_nov_des'.split('_'), 10 | weekdays : 'sundag_måndag_tysdag_onsdag_torsdag_fredag_laurdag'.split('_'), 11 | weekdaysShort : 'sun_mån_tys_ons_tor_fre_lau'.split('_'), 12 | weekdaysMin : 'su_må_ty_on_to_fr_lø'.split('_'), 13 | longDateFormat : { 14 | LT : 'HH:mm', 15 | LTS : 'HH:mm:ss', 16 | L : 'DD.MM.YYYY', 17 | LL : 'D. MMMM YYYY', 18 | LLL : 'D. MMMM YYYY [kl.] H:mm', 19 | LLLL : 'dddd D. MMMM YYYY [kl.] HH:mm' 20 | }, 21 | calendar : { 22 | sameDay: '[I dag klokka] LT', 23 | nextDay: '[I morgon klokka] LT', 24 | nextWeek: 'dddd [klokka] LT', 25 | lastDay: '[I går klokka] LT', 26 | lastWeek: '[Føregåande] dddd [klokka] LT', 27 | sameElse: 'L' 28 | }, 29 | relativeTime : { 30 | future : 'om %s', 31 | past : '%s sidan', 32 | s : 'nokre sekund', 33 | m : 'eit minutt', 34 | mm : '%d minutt', 35 | h : 'ein time', 36 | hh : '%d timar', 37 | d : 'ein dag', 38 | dd : '%d dagar', 39 | M : 'ein månad', 40 | MM : '%d månader', 41 | y : 'eit år', 42 | yy : '%d år' 43 | }, 44 | ordinalParse: /\d{1,2}\./, 45 | ordinal : '%d.', 46 | week : { 47 | dow : 1, // Monday is the first day of the week. 48 | doy : 4 // The week that contains Jan 4th is the first week of the year. 49 | } 50 | }); 51 | 52 | -------------------------------------------------------------------------------- /ChatRoom/wwwroot/lib/moment/src/locale/pt-br.js: -------------------------------------------------------------------------------- 1 | //! moment.js locale configuration 2 | //! locale : Portuguese (Brazil) [pt-br] 3 | //! author : Caio Ribeiro Pereira : https://github.com/caio-ribeiro-pereira 4 | 5 | import moment from '../moment'; 6 | 7 | export default moment.defineLocale('pt-br', { 8 | months : 'Janeiro_Fevereiro_Março_Abril_Maio_Junho_Julho_Agosto_Setembro_Outubro_Novembro_Dezembro'.split('_'), 9 | monthsShort : 'Jan_Fev_Mar_Abr_Mai_Jun_Jul_Ago_Set_Out_Nov_Dez'.split('_'), 10 | weekdays : 'Domingo_Segunda-feira_Terça-feira_Quarta-feira_Quinta-feira_Sexta-feira_Sábado'.split('_'), 11 | weekdaysShort : 'Dom_Seg_Ter_Qua_Qui_Sex_Sáb'.split('_'), 12 | weekdaysMin : 'Dom_2ª_3ª_4ª_5ª_6ª_Sáb'.split('_'), 13 | weekdaysParseExact : true, 14 | longDateFormat : { 15 | LT : 'HH:mm', 16 | LTS : 'HH:mm:ss', 17 | L : 'DD/MM/YYYY', 18 | LL : 'D [de] MMMM [de] YYYY', 19 | LLL : 'D [de] MMMM [de] YYYY [às] HH:mm', 20 | LLLL : 'dddd, D [de] MMMM [de] YYYY [às] HH:mm' 21 | }, 22 | calendar : { 23 | sameDay: '[Hoje às] LT', 24 | nextDay: '[Amanhã às] LT', 25 | nextWeek: 'dddd [às] LT', 26 | lastDay: '[Ontem às] LT', 27 | lastWeek: function () { 28 | return (this.day() === 0 || this.day() === 6) ? 29 | '[Último] dddd [às] LT' : // Saturday + Sunday 30 | '[Última] dddd [às] LT'; // Monday - Friday 31 | }, 32 | sameElse: 'L' 33 | }, 34 | relativeTime : { 35 | future : 'em %s', 36 | past : '%s atrás', 37 | s : 'poucos segundos', 38 | m : 'um minuto', 39 | mm : '%d minutos', 40 | h : 'uma hora', 41 | hh : '%d horas', 42 | d : 'um dia', 43 | dd : '%d dias', 44 | M : 'um mês', 45 | MM : '%d meses', 46 | y : 'um ano', 47 | yy : '%d anos' 48 | }, 49 | ordinalParse: /\d{1,2}º/, 50 | ordinal : '%dº' 51 | }); 52 | 53 | -------------------------------------------------------------------------------- /ChatRoom/wwwroot/lib/moment/src/locale/pt.js: -------------------------------------------------------------------------------- 1 | //! moment.js locale configuration 2 | //! locale : Portuguese [pt] 3 | //! author : Jefferson : https://github.com/jalex79 4 | 5 | import moment from '../moment'; 6 | 7 | export default moment.defineLocale('pt', { 8 | months : 'Janeiro_Fevereiro_Março_Abril_Maio_Junho_Julho_Agosto_Setembro_Outubro_Novembro_Dezembro'.split('_'), 9 | monthsShort : 'Jan_Fev_Mar_Abr_Mai_Jun_Jul_Ago_Set_Out_Nov_Dez'.split('_'), 10 | weekdays : 'Domingo_Segunda-Feira_Terça-Feira_Quarta-Feira_Quinta-Feira_Sexta-Feira_Sábado'.split('_'), 11 | weekdaysShort : 'Dom_Seg_Ter_Qua_Qui_Sex_Sáb'.split('_'), 12 | weekdaysMin : 'Dom_2ª_3ª_4ª_5ª_6ª_Sáb'.split('_'), 13 | weekdaysParseExact : true, 14 | longDateFormat : { 15 | LT : 'HH:mm', 16 | LTS : 'HH:mm:ss', 17 | L : 'DD/MM/YYYY', 18 | LL : 'D [de] MMMM [de] YYYY', 19 | LLL : 'D [de] MMMM [de] YYYY HH:mm', 20 | LLLL : 'dddd, D [de] MMMM [de] YYYY HH:mm' 21 | }, 22 | calendar : { 23 | sameDay: '[Hoje às] LT', 24 | nextDay: '[Amanhã às] LT', 25 | nextWeek: 'dddd [às] LT', 26 | lastDay: '[Ontem às] LT', 27 | lastWeek: function () { 28 | return (this.day() === 0 || this.day() === 6) ? 29 | '[Último] dddd [às] LT' : // Saturday + Sunday 30 | '[Última] dddd [às] LT'; // Monday - Friday 31 | }, 32 | sameElse: 'L' 33 | }, 34 | relativeTime : { 35 | future : 'em %s', 36 | past : 'há %s', 37 | s : 'segundos', 38 | m : 'um minuto', 39 | mm : '%d minutos', 40 | h : 'uma hora', 41 | hh : '%d horas', 42 | d : 'um dia', 43 | dd : '%d dias', 44 | M : 'um mês', 45 | MM : '%d meses', 46 | y : 'um ano', 47 | yy : '%d anos' 48 | }, 49 | ordinalParse: /\d{1,2}º/, 50 | ordinal : '%dº', 51 | week : { 52 | dow : 1, // Monday is the first day of the week. 53 | doy : 4 // The week that contains Jan 4th is the first week of the year. 54 | } 55 | }); 56 | 57 | -------------------------------------------------------------------------------- /ChatRoom/wwwroot/lib/moment/src/locale/se.js: -------------------------------------------------------------------------------- 1 | //! moment.js locale configuration 2 | //! locale : Northern Sami [se] 3 | //! authors : Bård Rolstad Henriksen : https://github.com/karamell 4 | 5 | 6 | import moment from '../moment'; 7 | 8 | export default moment.defineLocale('se', { 9 | months : 'ođđajagemánnu_guovvamánnu_njukčamánnu_cuoŋománnu_miessemánnu_geassemánnu_suoidnemánnu_borgemánnu_čakčamánnu_golggotmánnu_skábmamánnu_juovlamánnu'.split('_'), 10 | monthsShort : 'ođđj_guov_njuk_cuo_mies_geas_suoi_borg_čakč_golg_skáb_juov'.split('_'), 11 | weekdays : 'sotnabeaivi_vuossárga_maŋŋebárga_gaskavahkku_duorastat_bearjadat_lávvardat'.split('_'), 12 | weekdaysShort : 'sotn_vuos_maŋ_gask_duor_bear_láv'.split('_'), 13 | weekdaysMin : 's_v_m_g_d_b_L'.split('_'), 14 | longDateFormat : { 15 | LT : 'HH:mm', 16 | LTS : 'HH:mm:ss', 17 | L : 'DD.MM.YYYY', 18 | LL : 'MMMM D. [b.] YYYY', 19 | LLL : 'MMMM D. [b.] YYYY [ti.] HH:mm', 20 | LLLL : 'dddd, MMMM D. [b.] YYYY [ti.] HH:mm' 21 | }, 22 | calendar : { 23 | sameDay: '[otne ti] LT', 24 | nextDay: '[ihttin ti] LT', 25 | nextWeek: 'dddd [ti] LT', 26 | lastDay: '[ikte ti] LT', 27 | lastWeek: '[ovddit] dddd [ti] LT', 28 | sameElse: 'L' 29 | }, 30 | relativeTime : { 31 | future : '%s geažes', 32 | past : 'maŋit %s', 33 | s : 'moadde sekunddat', 34 | m : 'okta minuhta', 35 | mm : '%d minuhtat', 36 | h : 'okta diimmu', 37 | hh : '%d diimmut', 38 | d : 'okta beaivi', 39 | dd : '%d beaivvit', 40 | M : 'okta mánnu', 41 | MM : '%d mánut', 42 | y : 'okta jahki', 43 | yy : '%d jagit' 44 | }, 45 | ordinalParse: /\d{1,2}\./, 46 | ordinal : '%d.', 47 | week : { 48 | dow : 1, // Monday is the first day of the week. 49 | doy : 4 // The week that contains Jan 4th is the first week of the year. 50 | } 51 | }); 52 | -------------------------------------------------------------------------------- /ChatRoom/wwwroot/lib/moment/src/locale/sw.js: -------------------------------------------------------------------------------- 1 | //! moment.js locale configuration 2 | //! locale : Swahili [sw] 3 | //! author : Fahad Kassim : https://github.com/fadsel 4 | 5 | import moment from '../moment'; 6 | 7 | export default moment.defineLocale('sw', { 8 | months : 'Januari_Februari_Machi_Aprili_Mei_Juni_Julai_Agosti_Septemba_Oktoba_Novemba_Desemba'.split('_'), 9 | monthsShort : 'Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ago_Sep_Okt_Nov_Des'.split('_'), 10 | weekdays : 'Jumapili_Jumatatu_Jumanne_Jumatano_Alhamisi_Ijumaa_Jumamosi'.split('_'), 11 | weekdaysShort : 'Jpl_Jtat_Jnne_Jtan_Alh_Ijm_Jmos'.split('_'), 12 | weekdaysMin : 'J2_J3_J4_J5_Al_Ij_J1'.split('_'), 13 | weekdaysParseExact : true, 14 | longDateFormat : { 15 | LT : 'HH:mm', 16 | LTS : 'HH:mm:ss', 17 | L : 'DD.MM.YYYY', 18 | LL : 'D MMMM YYYY', 19 | LLL : 'D MMMM YYYY HH:mm', 20 | LLLL : 'dddd, D MMMM YYYY HH:mm' 21 | }, 22 | calendar : { 23 | sameDay : '[leo saa] LT', 24 | nextDay : '[kesho saa] LT', 25 | nextWeek : '[wiki ijayo] dddd [saat] LT', 26 | lastDay : '[jana] LT', 27 | lastWeek : '[wiki iliyopita] dddd [saat] LT', 28 | sameElse : 'L' 29 | }, 30 | relativeTime : { 31 | future : '%s baadaye', 32 | past : 'tokea %s', 33 | s : 'hivi punde', 34 | m : 'dakika moja', 35 | mm : 'dakika %d', 36 | h : 'saa limoja', 37 | hh : 'masaa %d', 38 | d : 'siku moja', 39 | dd : 'masiku %d', 40 | M : 'mwezi mmoja', 41 | MM : 'miezi %d', 42 | y : 'mwaka mmoja', 43 | yy : 'miaka %d' 44 | }, 45 | week : { 46 | dow : 1, // Monday is the first day of the week. 47 | doy : 7 // The week that contains Jan 1st is the first week of the year. 48 | } 49 | }); 50 | 51 | -------------------------------------------------------------------------------- /ChatRoom/wwwroot/lib/moment/src/locale/th.js: -------------------------------------------------------------------------------- 1 | //! moment.js locale configuration 2 | //! locale : Thai [th] 3 | //! author : Kridsada Thanabulpong : https://github.com/sirn 4 | 5 | import moment from '../moment'; 6 | 7 | export default moment.defineLocale('th', { 8 | months : 'มกราคม_กุมภาพันธ์_มีนาคม_เมษายน_พฤษภาคม_มิถุนายน_กรกฎาคม_สิงหาคม_กันยายน_ตุลาคม_พฤศจิกายน_ธันวาคม'.split('_'), 9 | monthsShort : 'ม.ค._ก.พ._มี.ค._เม.ย._พ.ค._มิ.ย._ก.ค._ส.ค._ก.ย._ต.ค._พ.ย._ธ.ค.'.split('_'), 10 | monthsParseExact: true, 11 | weekdays : 'อาทิตย์_จันทร์_อังคาร_พุธ_พฤหัสบดี_ศุกร์_เสาร์'.split('_'), 12 | weekdaysShort : 'อาทิตย์_จันทร์_อังคาร_พุธ_พฤหัส_ศุกร์_เสาร์'.split('_'), // yes, three characters difference 13 | weekdaysMin : 'อา._จ._อ._พ._พฤ._ศ._ส.'.split('_'), 14 | weekdaysParseExact : true, 15 | longDateFormat : { 16 | LT : 'H:mm', 17 | LTS : 'H:mm:ss', 18 | L : 'YYYY/MM/DD', 19 | LL : 'D MMMM YYYY', 20 | LLL : 'D MMMM YYYY เวลา H:mm', 21 | LLLL : 'วันddddที่ D MMMM YYYY เวลา H:mm' 22 | }, 23 | meridiemParse: /ก่อนเที่ยง|หลังเที่ยง/, 24 | isPM: function (input) { 25 | return input === 'หลังเที่ยง'; 26 | }, 27 | meridiem : function (hour, minute, isLower) { 28 | if (hour < 12) { 29 | return 'ก่อนเที่ยง'; 30 | } else { 31 | return 'หลังเที่ยง'; 32 | } 33 | }, 34 | calendar : { 35 | sameDay : '[วันนี้ เวลา] LT', 36 | nextDay : '[พรุ่งนี้ เวลา] LT', 37 | nextWeek : 'dddd[หน้า เวลา] LT', 38 | lastDay : '[เมื่อวานนี้ เวลา] LT', 39 | lastWeek : '[วัน]dddd[ที่แล้ว เวลา] LT', 40 | sameElse : 'L' 41 | }, 42 | relativeTime : { 43 | future : 'อีก %s', 44 | past : '%sที่แล้ว', 45 | s : 'ไม่กี่วินาที', 46 | m : '1 นาที', 47 | mm : '%d นาที', 48 | h : '1 ชั่วโมง', 49 | hh : '%d ชั่วโมง', 50 | d : '1 วัน', 51 | dd : '%d วัน', 52 | M : '1 เดือน', 53 | MM : '%d เดือน', 54 | y : '1 ปี', 55 | yy : '%d ปี' 56 | } 57 | }); 58 | -------------------------------------------------------------------------------- /ChatRoom/wwwroot/lib/moment/src/locale/tl-ph.js: -------------------------------------------------------------------------------- 1 | //! moment.js locale configuration 2 | //! locale : Tagalog (Philippines) [tl-ph] 3 | //! author : Dan Hagman : https://github.com/hagmandan 4 | 5 | import moment from '../moment'; 6 | 7 | export default moment.defineLocale('tl-ph', { 8 | months : 'Enero_Pebrero_Marso_Abril_Mayo_Hunyo_Hulyo_Agosto_Setyembre_Oktubre_Nobyembre_Disyembre'.split('_'), 9 | monthsShort : 'Ene_Peb_Mar_Abr_May_Hun_Hul_Ago_Set_Okt_Nob_Dis'.split('_'), 10 | weekdays : 'Linggo_Lunes_Martes_Miyerkules_Huwebes_Biyernes_Sabado'.split('_'), 11 | weekdaysShort : 'Lin_Lun_Mar_Miy_Huw_Biy_Sab'.split('_'), 12 | weekdaysMin : 'Li_Lu_Ma_Mi_Hu_Bi_Sab'.split('_'), 13 | longDateFormat : { 14 | LT : 'HH:mm', 15 | LTS : 'HH:mm:ss', 16 | L : 'MM/D/YYYY', 17 | LL : 'MMMM D, YYYY', 18 | LLL : 'MMMM D, YYYY HH:mm', 19 | LLLL : 'dddd, MMMM DD, YYYY HH:mm' 20 | }, 21 | calendar : { 22 | sameDay: 'LT [ngayong araw]', 23 | nextDay: '[Bukas ng] LT', 24 | nextWeek: 'LT [sa susunod na] dddd', 25 | lastDay: 'LT [kahapon]', 26 | lastWeek: 'LT [noong nakaraang] dddd', 27 | sameElse: 'L' 28 | }, 29 | relativeTime : { 30 | future : 'sa loob ng %s', 31 | past : '%s ang nakalipas', 32 | s : 'ilang segundo', 33 | m : 'isang minuto', 34 | mm : '%d minuto', 35 | h : 'isang oras', 36 | hh : '%d oras', 37 | d : 'isang araw', 38 | dd : '%d araw', 39 | M : 'isang buwan', 40 | MM : '%d buwan', 41 | y : 'isang taon', 42 | yy : '%d taon' 43 | }, 44 | ordinalParse: /\d{1,2}/, 45 | ordinal : function (number) { 46 | return number; 47 | }, 48 | week : { 49 | dow : 1, // Monday is the first day of the week. 50 | doy : 4 // The week that contains Jan 4th is the first week of the year. 51 | } 52 | }); 53 | 54 | -------------------------------------------------------------------------------- /ChatRoom/wwwroot/lib/moment/src/locale/tzm-latn.js: -------------------------------------------------------------------------------- 1 | //! moment.js locale configuration 2 | //! locale : Central Atlas Tamazight Latin [tzm-latn] 3 | //! author : Abdel Said : https://github.com/abdelsaid 4 | 5 | import moment from '../moment'; 6 | 7 | export default moment.defineLocale('tzm-latn', { 8 | months : 'innayr_brˤayrˤ_marˤsˤ_ibrir_mayyw_ywnyw_ywlywz_ɣwšt_šwtanbir_ktˤwbrˤ_nwwanbir_dwjnbir'.split('_'), 9 | monthsShort : 'innayr_brˤayrˤ_marˤsˤ_ibrir_mayyw_ywnyw_ywlywz_ɣwšt_šwtanbir_ktˤwbrˤ_nwwanbir_dwjnbir'.split('_'), 10 | weekdays : 'asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas'.split('_'), 11 | weekdaysShort : 'asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas'.split('_'), 12 | weekdaysMin : 'asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas'.split('_'), 13 | longDateFormat : { 14 | LT : 'HH:mm', 15 | LTS : 'HH:mm:ss', 16 | L : 'DD/MM/YYYY', 17 | LL : 'D MMMM YYYY', 18 | LLL : 'D MMMM YYYY HH:mm', 19 | LLLL : 'dddd D MMMM YYYY HH:mm' 20 | }, 21 | calendar : { 22 | sameDay: '[asdkh g] LT', 23 | nextDay: '[aska g] LT', 24 | nextWeek: 'dddd [g] LT', 25 | lastDay: '[assant g] LT', 26 | lastWeek: 'dddd [g] LT', 27 | sameElse: 'L' 28 | }, 29 | relativeTime : { 30 | future : 'dadkh s yan %s', 31 | past : 'yan %s', 32 | s : 'imik', 33 | m : 'minuḍ', 34 | mm : '%d minuḍ', 35 | h : 'saɛa', 36 | hh : '%d tassaɛin', 37 | d : 'ass', 38 | dd : '%d ossan', 39 | M : 'ayowr', 40 | MM : '%d iyyirn', 41 | y : 'asgas', 42 | yy : '%d isgasn' 43 | }, 44 | week : { 45 | dow : 6, // Saturday is the first day of the week. 46 | doy : 12 // The week that contains Jan 1st is the first week of the year. 47 | } 48 | }); 49 | 50 | -------------------------------------------------------------------------------- /ChatRoom/wwwroot/lib/moment/src/locale/tzm.js: -------------------------------------------------------------------------------- 1 | //! moment.js locale configuration 2 | //! locale : Central Atlas Tamazight [tzm] 3 | //! author : Abdel Said : https://github.com/abdelsaid 4 | 5 | import moment from '../moment'; 6 | 7 | export default moment.defineLocale('tzm', { 8 | months : 'ⵉⵏⵏⴰⵢⵔ_ⴱⵕⴰⵢⵕ_ⵎⴰⵕⵚ_ⵉⴱⵔⵉⵔ_ⵎⴰⵢⵢⵓ_ⵢⵓⵏⵢⵓ_ⵢⵓⵍⵢⵓⵣ_ⵖⵓⵛⵜ_ⵛⵓⵜⴰⵏⴱⵉⵔ_ⴽⵟⵓⴱⵕ_ⵏⵓⵡⴰⵏⴱⵉⵔ_ⴷⵓⵊⵏⴱⵉⵔ'.split('_'), 9 | monthsShort : 'ⵉⵏⵏⴰⵢⵔ_ⴱⵕⴰⵢⵕ_ⵎⴰⵕⵚ_ⵉⴱⵔⵉⵔ_ⵎⴰⵢⵢⵓ_ⵢⵓⵏⵢⵓ_ⵢⵓⵍⵢⵓⵣ_ⵖⵓⵛⵜ_ⵛⵓⵜⴰⵏⴱⵉⵔ_ⴽⵟⵓⴱⵕ_ⵏⵓⵡⴰⵏⴱⵉⵔ_ⴷⵓⵊⵏⴱⵉⵔ'.split('_'), 10 | weekdays : 'ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ'.split('_'), 11 | weekdaysShort : 'ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ'.split('_'), 12 | weekdaysMin : 'ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ'.split('_'), 13 | longDateFormat : { 14 | LT : 'HH:mm', 15 | LTS: 'HH:mm:ss', 16 | L : 'DD/MM/YYYY', 17 | LL : 'D MMMM YYYY', 18 | LLL : 'D MMMM YYYY HH:mm', 19 | LLLL : 'dddd D MMMM YYYY HH:mm' 20 | }, 21 | calendar : { 22 | sameDay: '[ⴰⵙⴷⵅ ⴴ] LT', 23 | nextDay: '[ⴰⵙⴽⴰ ⴴ] LT', 24 | nextWeek: 'dddd [ⴴ] LT', 25 | lastDay: '[ⴰⵚⴰⵏⵜ ⴴ] LT', 26 | lastWeek: 'dddd [ⴴ] LT', 27 | sameElse: 'L' 28 | }, 29 | relativeTime : { 30 | future : 'ⴷⴰⴷⵅ ⵙ ⵢⴰⵏ %s', 31 | past : 'ⵢⴰⵏ %s', 32 | s : 'ⵉⵎⵉⴽ', 33 | m : 'ⵎⵉⵏⵓⴺ', 34 | mm : '%d ⵎⵉⵏⵓⴺ', 35 | h : 'ⵙⴰⵄⴰ', 36 | hh : '%d ⵜⴰⵙⵙⴰⵄⵉⵏ', 37 | d : 'ⴰⵙⵙ', 38 | dd : '%d oⵙⵙⴰⵏ', 39 | M : 'ⴰⵢoⵓⵔ', 40 | MM : '%d ⵉⵢⵢⵉⵔⵏ', 41 | y : 'ⴰⵙⴳⴰⵙ', 42 | yy : '%d ⵉⵙⴳⴰⵙⵏ' 43 | }, 44 | week : { 45 | dow : 6, // Saturday is the first day of the week. 46 | doy : 12 // The week that contains Jan 1st is the first week of the year. 47 | } 48 | }); 49 | 50 | -------------------------------------------------------------------------------- /ChatRoom/wwwroot/lib/moment/src/locale/uz.js: -------------------------------------------------------------------------------- 1 | //! moment.js locale configuration 2 | //! locale : Uzbek [uz] 3 | //! author : Sardor Muminov : https://github.com/muminoff 4 | 5 | import moment from '../moment'; 6 | 7 | export default moment.defineLocale('uz', { 8 | months : 'январ_феврал_март_апрел_май_июн_июл_август_сентябр_октябр_ноябр_декабр'.split('_'), 9 | monthsShort : 'янв_фев_мар_апр_май_июн_июл_авг_сен_окт_ноя_дек'.split('_'), 10 | weekdays : 'Якшанба_Душанба_Сешанба_Чоршанба_Пайшанба_Жума_Шанба'.split('_'), 11 | weekdaysShort : 'Якш_Душ_Сеш_Чор_Пай_Жум_Шан'.split('_'), 12 | weekdaysMin : 'Як_Ду_Се_Чо_Па_Жу_Ша'.split('_'), 13 | longDateFormat : { 14 | LT : 'HH:mm', 15 | LTS : 'HH:mm:ss', 16 | L : 'DD/MM/YYYY', 17 | LL : 'D MMMM YYYY', 18 | LLL : 'D MMMM YYYY HH:mm', 19 | LLLL : 'D MMMM YYYY, dddd HH:mm' 20 | }, 21 | calendar : { 22 | sameDay : '[Бугун соат] LT [да]', 23 | nextDay : '[Эртага] LT [да]', 24 | nextWeek : 'dddd [куни соат] LT [да]', 25 | lastDay : '[Кеча соат] LT [да]', 26 | lastWeek : '[Утган] dddd [куни соат] LT [да]', 27 | sameElse : 'L' 28 | }, 29 | relativeTime : { 30 | future : 'Якин %s ичида', 31 | past : 'Бир неча %s олдин', 32 | s : 'фурсат', 33 | m : 'бир дакика', 34 | mm : '%d дакика', 35 | h : 'бир соат', 36 | hh : '%d соат', 37 | d : 'бир кун', 38 | dd : '%d кун', 39 | M : 'бир ой', 40 | MM : '%d ой', 41 | y : 'бир йил', 42 | yy : '%d йил' 43 | }, 44 | week : { 45 | dow : 1, // Monday is the first day of the week. 46 | doy : 7 // The week that contains Jan 4th is the first week of the year. 47 | } 48 | }); 49 | 50 | -------------------------------------------------------------------------------- /ChatRoom/wwwroot/lib/moment/src/locale/yo.js: -------------------------------------------------------------------------------- 1 | //! moment.js locale configuration 2 | //! locale : Yoruba Nigeria [yo] 3 | //! author : Atolagbe Abisoye : https://github.com/andela-batolagbe 4 | 5 | import moment from '../moment'; 6 | 7 | export default moment.defineLocale('yo', { 8 | months : 'Sẹ́rẹ́_Èrèlè_Ẹrẹ̀nà_Ìgbé_Èbibi_Òkùdu_Agẹmo_Ògún_Owewe_Ọ̀wàrà_Bélú_Ọ̀pẹ̀̀'.split('_'), 9 | monthsShort : 'Sẹ́r_Èrl_Ẹrn_Ìgb_Èbi_Òkù_Agẹ_Ògú_Owe_Ọ̀wà_Bél_Ọ̀pẹ̀̀'.split('_'), 10 | weekdays : 'Àìkú_Ajé_Ìsẹ́gun_Ọjọ́rú_Ọjọ́bọ_Ẹtì_Àbámẹ́ta'.split('_'), 11 | weekdaysShort : 'Àìk_Ajé_Ìsẹ́_Ọjr_Ọjb_Ẹtì_Àbá'.split('_'), 12 | weekdaysMin : 'Àì_Aj_Ìs_Ọr_Ọb_Ẹt_Àb'.split('_'), 13 | longDateFormat : { 14 | LT : 'h:mm A', 15 | LTS : 'h:mm:ss A', 16 | L : 'DD/MM/YYYY', 17 | LL : 'D MMMM YYYY', 18 | LLL : 'D MMMM YYYY h:mm A', 19 | LLLL : 'dddd, D MMMM YYYY h:mm A' 20 | }, 21 | calendar : { 22 | sameDay : '[Ònì ni] LT', 23 | nextDay : '[Ọ̀la ni] LT', 24 | nextWeek : 'dddd [Ọsẹ̀ tón\'bọ] [ni] LT', 25 | lastDay : '[Àna ni] LT', 26 | lastWeek : 'dddd [Ọsẹ̀ tólọ́] [ni] LT', 27 | sameElse : 'L' 28 | }, 29 | relativeTime : { 30 | future : 'ní %s', 31 | past : '%s kọjá', 32 | s : 'ìsẹjú aayá die', 33 | m : 'ìsẹjú kan', 34 | mm : 'ìsẹjú %d', 35 | h : 'wákati kan', 36 | hh : 'wákati %d', 37 | d : 'ọjọ́ kan', 38 | dd : 'ọjọ́ %d', 39 | M : 'osù kan', 40 | MM : 'osù %d', 41 | y : 'ọdún kan', 42 | yy : 'ọdún %d' 43 | }, 44 | ordinalParse : /ọjọ́\s\d{1,2}/, 45 | ordinal : 'ọjọ́ %d', 46 | week : { 47 | dow : 1, // Monday is the first day of the week. 48 | doy : 4 // The week that contains Jan 4th is the first week of the year. 49 | } 50 | }); 51 | -------------------------------------------------------------------------------- /ChatRoom/wwwroot/lib/moment/templates/default.js: -------------------------------------------------------------------------------- 1 | ;(function (global, factory) { 2 | typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : 3 | typeof define === 'function' && define.amd ? define(factory) : 4 | global.moment = factory() 5 | }(this, (function () { 'use strict'; 6 | -------------------------------------------------------------------------------- /ChatRoom/wwwroot/lib/moment/templates/locale-header.js: -------------------------------------------------------------------------------- 1 | ;(function (global, factory) { 2 | typeof exports === 'object' && typeof module !== 'undefined' 3 | && typeof require === 'function' ? factory(require('../moment')) : 4 | typeof define === 'function' && define.amd ? define(['../moment'], factory) : 5 | factory(global.moment) 6 | }(this, (function (moment) { 'use strict'; 7 | -------------------------------------------------------------------------------- /ChatRoom/wwwroot/lib/moment/templates/test-header.js: -------------------------------------------------------------------------------- 1 | ;(function (global, factory) { 2 | typeof exports === 'object' && typeof module !== 'undefined' 3 | && typeof require === 'function' ? factory(require('../../moment')) : 4 | typeof define === 'function' && define.amd ? define(['../../moment'], factory) : 5 | factory(global.moment) 6 | }(this, (function (moment) { 'use strict'; 7 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # ChatRoom 2 | 聊天室 3 | --------------------------------------------------------------------------------