From f6e7cbb13d0c91121031f6224c920660d54ffe2f Mon Sep 17 00:00:00 2001 From: Salih Date: Wed, 31 Aug 2022 15:31:40 +0300 Subject: [PATCH] Add moment dependency to the common libraries --- .../AbpAspNetCoreMvcUiPackagesModule.cs | 10 +++++++ .../Moment/MomentScriptContributor.cs | 28 +++++++++++++++++++ .../package.json | 1 + npm/packs/moment/abp.resourcemapping.js | 6 ++++ npm/packs/moment/package.json | 16 +++++++++++ 5 files changed, 61 insertions(+) create mode 100644 framework/src/Volo.Abp.AspNetCore.Mvc.UI.Packages/Volo/Abp/AspNetCore/Mvc/UI/Packages/Moment/MomentScriptContributor.cs create mode 100644 npm/packs/moment/abp.resourcemapping.js create mode 100644 npm/packs/moment/package.json diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Packages/Volo/Abp/AspNetCore/Mvc/UI/Packages/AbpAspNetCoreMvcUiPackagesModule.cs b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Packages/Volo/Abp/AspNetCore/Mvc/UI/Packages/AbpAspNetCoreMvcUiPackagesModule.cs index 0cbd89e91c..5eeac96fd7 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Packages/Volo/Abp/AspNetCore/Mvc/UI/Packages/AbpAspNetCoreMvcUiPackagesModule.cs +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Packages/Volo/Abp/AspNetCore/Mvc/UI/Packages/AbpAspNetCoreMvcUiPackagesModule.cs @@ -1,6 +1,7 @@ using Volo.Abp.AspNetCore.Mvc.UI.Bundling; using Volo.Abp.AspNetCore.Mvc.UI.Packages.BootstrapDatepicker; using Volo.Abp.AspNetCore.Mvc.UI.Packages.JQueryValidation; +using Volo.Abp.AspNetCore.Mvc.UI.Packages.Moment; using Volo.Abp.AspNetCore.Mvc.UI.Packages.Timeago; using Volo.Abp.Localization; using Volo.Abp.Modularity; @@ -25,6 +26,15 @@ public class AbpAspNetCoreMvcUiPackagesModule : AbpModule options.AddLanguageFilesMapOrUpdate(BootstrapDatepickerScriptContributor.PackageName, new NameValue("zh-Hans", "zh-CN"), new NameValue("zh-Hant", "zh-TW")); + + //moment + options.AddLanguagesMapOrUpdate(MomentScriptContributor.PackageName, + new NameValue("zh-Hans", "zh-CN"), + new NameValue("zh-Hant", "zh-TW")); + + options.AddLanguageFilesMapOrUpdate(MomentScriptContributor.PackageName, + new NameValue("zh-Hans", "zh-CN"), + new NameValue("zh-Hant", "zh-TW")); //Timeago options.AddLanguageFilesMapOrUpdate(TimeagoScriptContributor.PackageName, diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Packages/Volo/Abp/AspNetCore/Mvc/UI/Packages/Moment/MomentScriptContributor.cs b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Packages/Volo/Abp/AspNetCore/Mvc/UI/Packages/Moment/MomentScriptContributor.cs new file mode 100644 index 0000000000..da8e244f84 --- /dev/null +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Packages/Volo/Abp/AspNetCore/Mvc/UI/Packages/Moment/MomentScriptContributor.cs @@ -0,0 +1,28 @@ +using System.Collections.Generic; +using Microsoft.Extensions.Options; +using Volo.Abp.AspNetCore.Mvc.UI.Bundling; +using Volo.Abp.AspNetCore.Mvc.UI.Packages.JQuery; +using Volo.Abp.Localization; +using Volo.Abp.Modularity; + +namespace Volo.Abp.AspNetCore.Mvc.UI.Packages.Moment; + +public class MomentScriptContributor : BundleContributor +{ + public const string PackageName = "moment"; + + public override void ConfigureBundle(BundleConfigurationContext context) + { + context.Files.AddIfNotContains("/libs/moment/moment.js"); + } + + public override void ConfigureDynamicResources(BundleConfigurationContext context) + { + var fileName = context.LazyServiceProvider.LazyGetRequiredService>().Value.GetCurrentUICultureLanguageFilesMap(PackageName); + var filePath = $"/libs/moment/locale/{fileName}.js"; + if (context.FileProvider.GetFileInfo(filePath).Exists) + { + context.Files.AddIfNotContains(filePath); + } + } +} diff --git a/npm/packs/aspnetcore.mvc.ui.theme.shared/package.json b/npm/packs/aspnetcore.mvc.ui.theme.shared/package.json index 3121088262..86ce92c348 100644 --- a/npm/packs/aspnetcore.mvc.ui.theme.shared/package.json +++ b/npm/packs/aspnetcore.mvc.ui.theme.shared/package.json @@ -14,6 +14,7 @@ "@abp/bootstrap": "~6.0.0-rc.3", "@abp/bootstrap-datepicker": "~6.0.0-rc.3", "@abp/bootstrap-daterangepicker": "file:../bootstrap-daterangepicker", + "@abp/moment":"file:../moment", "@abp/datatables.net-bs5": "~6.0.0-rc.3", "@abp/font-awesome": "~6.0.0-rc.3", "@abp/jquery-form": "~6.0.0-rc.3", diff --git a/npm/packs/moment/abp.resourcemapping.js b/npm/packs/moment/abp.resourcemapping.js new file mode 100644 index 0000000000..2dcc8778f9 --- /dev/null +++ b/npm/packs/moment/abp.resourcemapping.js @@ -0,0 +1,6 @@ +module.exports = { + mappings: { + "@node_modules/moment/moment.js": "@libs/moment/", + "@node_modules/moment/locale/*.*": "@libs/moment/locale/", + } +} \ No newline at end of file diff --git a/npm/packs/moment/package.json b/npm/packs/moment/package.json new file mode 100644 index 0000000000..de1e684314 --- /dev/null +++ b/npm/packs/moment/package.json @@ -0,0 +1,16 @@ +{ + "version": "6.0.0-rc.3", + "name": "@abp/moment", + "repository": { + "type": "git", + "url": "https://github.com/abpframework/abp.git", + "directory": "npm/packs/moment" + }, + "publishConfig": { + "access": "public" + }, + "dependencies": { + "moment": "^2.9.0" + }, + "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" +}