diff --git a/.github/ISSUE_TEMPLATE/04_article_request.yml b/.github/ISSUE_TEMPLATE/04_article_request.yml index 34082596c5..282ac107bf 100644 --- a/.github/ISSUE_TEMPLATE/04_article_request.yml +++ b/.github/ISSUE_TEMPLATE/04_article_request.yml @@ -6,7 +6,7 @@ body: id: searched attributes: label: Is there an existing article or article request for this? - description: Please search to see if there is an article or article request related to your article request ([community.abp.io](https://community.abp.io/posts), [abp/issues](https://github.com/abpframework/abp/issues?q=is%3Aopen+is%3Aissue+label%3Acommunity-article-request)) + description: Please search to see if there is an article or article request related to your article request ([abp.io/community](https://abp.io/community/articles), [abp/issues](https://github.com/abpframework/abp/issues?q=is%3Aopen+is%3Aissue+label%3Acommunity-article-request)) options: - label: I have searched the existing resources required: true diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml index 2261ab7bab..9fca40ba4f 100644 --- a/.github/ISSUE_TEMPLATE/config.yml +++ b/.github/ISSUE_TEMPLATE/config.yml @@ -1,8 +1,8 @@ blank_issues_enabled: true contact_links: - name: Issue with ABP Commercial - url: https://support.abp.io/QA/Questions - about: Please open ABP Commercial related issues at https://support.abp.io. + url: https://abp.io/support/questions + about: Please open ABP Commercial related issues at https://abp.io/support/questions. - name: Ask a question (community support) url: https://stackoverflow.com/questions/tagged/abp about: Ask a question that will be answered by the ABP community diff --git a/NuGet.md b/NuGet.md index 1073e17b8c..29b17f9e03 100644 --- a/NuGet.md +++ b/NuGet.md @@ -11,21 +11,21 @@ ABP offers an opinionated architecture to build enterprise software solutions wi 🔗GitHub Repository: https://github.com/abpframework/abp -🔗Samples: https://docs.abp.io/en/abp/latest/Samples/Index +🔗Samples: https://abp.io/docs/latest/samples/ 🔗Official Theme: https://www.LeptonTheme.com -🔗Documentation: https://docs.abp.io +🔗Documentation: https://abp.io/docs/latest/ -🔗Community: https://community.abp.io +🔗Community: https://abp.io/community/ -🔗Blog: https://blog.abp.io +🔗Blog: https://abp.io/blog/ 🔗Books: https://abp.io/books 🔗Twitter: https://twitter.com/abpframework -🔗Discord: https://community.abp.io/discord +🔗Discord: https://abp.io/community/discord 🔗Stackoverflow: https://stackoverflow.com/questions/tagged/abp @@ -124,8 +124,8 @@ Support for open-source ABP Framework client-side packages is available at [GitH If you are building an enterprise-level application with pro support, extra tools like a code generator, fancy themes and a microservice template, time to invest in the commercial version! -To understand how it works, see [How it Works]( https://commercial.abp.io/how-it-works) page. +To understand how it works, see [How it Works]( https://abp.io/how-it-works) page. -If you wonder why you should choose ABP Commercial, check out [Why ABP.IO Platform](https://docs.abp.io/en/commercial/latest/why-abp-io-platform) page. +If you wonder why you should choose ABP, check out [Why ABP.IO Platform](https://abp.io/docs/latest/others/why-abp-platform) page. -Official website: [https://commercial.abp.io](https://commercial.abp.io/) +Official website: [https://abp.io](https://abp.io/) diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/ar.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/ar.json index 075ba850c0..5e3a26f6fb 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/ar.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/ar.json @@ -161,7 +161,7 @@ "SearchQuestionPlaceholder": "البحث في الأسئلة المتداولة", "WhatIsTheABPCommercial": "ما هو برنامج ABP التجاري؟", "WhatAreDifferencesThanAbpFramework": "ما هي الاختلافات بين إطار عمل ABP مفتوح المصدر وإطار عمل ABP التجاري؟", - "ABPCommercialExplanation": "ABP Commercial عبارة عن مجموعة من الوحدات النمطية والأدوات والسمات والخدمات المتميزة التي تم إنشاؤها فوق إطار عمل ABP مفتوح المصدر. يتم تطوير ودعم ABP Commercial من قبل نفس الفريق الذي يقف وراء إطار عمل ABP.", + "ABPCommercialExplanation": "ABP Commercial عبارة عن مجموعة من الوحدات النمطية والأدوات والسمات والخدمات المتميزة التي تم إنشاؤها فوق إطار عمل ABP مفتوح المصدر. يتم تطوير ودعم ABP من قبل نفس الفريق الذي يقف وراء إطار عمل ABP.", "WhatAreDifferencesThanABPFrameworkExplanation": "

إطار عمل ABP عبارة عن إطار عمل لتطوير تطبيقات معياري وقابل للتخصيص ومتوافق مع خدمة دقيقة لـ ASP.NET Core. إنه يوفر بنية كاملة وبنية تحتية قوية لتجعلك تركز على رمز عملك الخاص بدلاً من تكرار نفسك لكل مشروع جديد. يعتمد على أفضل ممارسات تطوير البرامج والأدوات الشائعة التي تعرفها بالفعل.

إطار عمل ABP مجاني تمامًا ومفتوح المصدر وقائم على المنتدى. كما أنه يوفر سمة مجانية وبعض الوحدات النمطية مسبقة الصنع (مثل إدارة الهوية وإدارة المستأجر). ", "VisitTheFrameworkVSCommercialDocument": "قم بزيارة الرابط التالي للحصول على مزيد من المعلومات {1} ", "ABPCommercialFollowingBenefits": "يضيف ABP Commercial المزايا التالية إلى جانب إطار عمل ABP ؛", @@ -382,7 +382,7 @@ "TrialLicenseExpireMessage": "أنت تستخدم الترخيص التجريبي وستنتهي صلاحية الترخيص التجريبي في {0}.", "TryForFree": "حاول مجانا", "TrialLicenseExpiredInfo": "انتهت فترة الترخيص التجريبي الخاص بك!", - "CommercialNewsletterConfirmationMessage": "أوافق على البنود والشروط و سياسة الخصوصية .", + "CommercialNewsletterConfirmationMessage": "أوافق على البنود والشروط و سياسة الخصوصية .", "RenewLicenseEarly": "إذا قمت بتجديد رخصتي في وقت مبكر ، هل سأحصل على السنة كاملة؟", "RenewLicenseEarylExplanation": "عند تجديد الترخيص الخاص بك قبل تاريخ انتهاء الترخيص الخاص بك ، ستتم إضافة سنة واحدة إلى تاريخ انتهاء الترخيص الخاص بك. على سبيل المثال ، إذا انتهت صلاحية ترخيصك في {0} -06-06 وقمت بتجديده في {0} -01-01 ، فسيكون تاريخ انتهاء صلاحية الترخيص الجديد {1} -06-06.", "discountForYears": "{0}٪ خصم لمدة {1} سنة (سنوات)", @@ -694,7 +694,7 @@ "Landing_Page_DocsModuleDescription_9": "بالإضافة إلى مصدر GitHub، يسمح ببساطة باستخدام مجلد كمصدر توثيق.", "Landing_Page_FileManagementModuleDescription_1": "تحميل وتنزيل وتنظيم الملفات في هيكل مجلد هرمي.", "Landing_Page_FileManagementModuleDescription_2": "تُستخدم هذه الوحدة لتحميل الملفات وتنزيلها وتنظيمها في هيكل مجلد هرمي. كما أنه متوافق مع تعددية الإيجارات ويمكنك تحديد الحجم الإجمالي للمستأجرين.", - "Landing_Page_FileManagementModuleDescription_3": "تعتمد هذه الوحدة على نظام BLOB تخزين، لذا يمكنها استخدام موفري تخزين مختلفين لتخزين محتويات الملف.", + "Landing_Page_FileManagementModuleDescription_3": "تعتمد هذه الوحدة على نظام BLOB تخزين، لذا يمكنها استخدام موفري تخزين مختلفين لتخزين محتويات الملف.", "Landing_Page_IdentityModuleDescription_1": "تطبق هذه الوحدة نظام المستخدم والدور للتطبيق:", "Landing_Page_IdentityModuleDescription_2": "مبني على مكتبة Microsoft's ASP.NET Core Identity.", "Landing_Page_IdentityModuleDescription_3": "إدارة الأدوار و المستخدمين في النظام. يُسمح للمستخدم بأن يكون له أدوار متعددة .", @@ -710,7 +710,7 @@ "Landing_Page_PaymentModuleDescription_1": "يوفر تكاملاً لبوابات الدفع المختلفة.", "Landing_Page_PaymentModuleDescription_2": "توفر هذه الوحدة تكاملاً لبوابات الدفع ، بحيث يمكنك بسهولة الحصول على مدفوعات من عملائك.", "Landing_Page_PaymentModuleDescription_3": "تدعم هذه الوحدة بوابات الدفع التالية", - "Welcome_Page_UseSameCredentialForCommercialWebsites": "استخدم نفس بيانات الاعتماد لكلا commercial.abp.io و support.abp.io.", + "Welcome_Page_UseSameCredentialForCommercialWebsites": "استخدم نفس بيانات الاعتماد لكلا commercial.abp.io و support.abp.io.", "WatchCrudPagesVideo": "شاهد فيديو \"Creating CRUD Pages with ABP Suite\"!", "WatchGeneratingFromDatabaseVideo": "Watch the \"ABP Suite: Generating CRUD Pages From Existing Database Tables\" Video!", "WatchTakeCloserLookVideo": "شاهد فيديو \"Take a closer look at the code generation: ABP Suite\"!", @@ -784,9 +784,9 @@ "UpgradePaymentInfoSection_LicenseRenewalPrice": "تجديد الرخصة", "Total": "المجموع", "SupportPolicyFaqTitle": "ما هي سياسة الدعم الخاصة بك؟", - "SupportPolicyFaqExplanation": "نحن ندعم فقط الإصدار الرئيسي النشط والسابق. لا نضمن إصدار تصحيح للإصدارات الرئيسية الثالثة والأقدم. على سبيل المثال ، إذا كان الإصدار النشط هو 7.0.0 ، فسنصدر إصدارات تصحيح لكل من 6.x.x و 7.x.x. إلى جانب ذلك ، نحن نقدم الدعم فقط لإطار عمل ABP والقضايا التجارية المتعلقة بـ ABP. هذا يعني أنه لا يتم تقديم أي دعم لتطبيقات الطرف الثالث والخدمات السحابية والمكتبات الطرفية الأخرى التي تستخدمها منتجات ABP. سنبذل جهودًا معقولة تجاريًا لتزويد عملائنا بالدعم الفني خلال ساعات العمل الرسمية لـ \"Volosoft Bilisim A.S\". من ناحية أخرى ، نحن لا نلتزم بوقت استجابة اتفاقية مستوى الخدمة (SLA) ، لكننا سنحاول الرد على المشكلات الفنية في أسرع وقت ممكن خلال ساعات العمل الرسمية لدينا. ما لم يتم إبرام اتفاقية خاصة مع العميل ، فإننا نقدم الدعم فقط على https://support.abp.io. لدينا أيضًا دعم خاص بالبريد الإلكتروني ، وهو متاح فقط لحاملي تراخيص المؤسسة.", + "SupportPolicyFaqExplanation": "نحن ندعم فقط الإصدار الرئيسي النشط والسابق. لا نضمن إصدار تصحيح للإصدارات الرئيسية الثالثة والأقدم. على سبيل المثال ، إذا كان الإصدار النشط هو 7.0.0 ، فسنصدر إصدارات تصحيح لكل من 6.x.x و 7.x.x. إلى جانب ذلك ، نحن نقدم الدعم فقط لإطار عمل ABP والقضايا التجارية المتعلقة بـ ABP. هذا يعني أنه لا يتم تقديم أي دعم لتطبيقات الطرف الثالث والخدمات السحابية والمكتبات الطرفية الأخرى التي تستخدمها منتجات ABP. سنبذل جهودًا معقولة تجاريًا لتزويد عملائنا بالدعم الفني خلال ساعات العمل الرسمية لـ \"Volosoft Bilisim A.S\". من ناحية أخرى ، نحن لا نلتزم بوقت استجابة اتفاقية مستوى الخدمة (SLA) ، لكننا سنحاول الرد على المشكلات الفنية في أسرع وقت ممكن خلال ساعات العمل الرسمية لدينا. ما لم يتم إبرام اتفاقية خاصة مع العميل ، فإننا نقدم الدعم فقط على https://abp.io/support/questions. لدينا أيضًا دعم خاص بالبريد الإلكتروني ، وهو متاح فقط لحاملي تراخيص المؤسسة.", "WhyUseAbpIoPlatform": "لماذا يجب علي استخدام منصة ABP.IO بدلاً من إنشاء حل جديد من البداية؟", - "WhyUseAbpIoPlatformFaqExplanation": "انظر الى هذا المستند للحصول على شرح مفصل لسبب استخدام ABP.IO Platform لفائدته الكبيرة بدلًا من القيام بكل شيء بنفسك.", + "WhyUseAbpIoPlatformFaqExplanation": "انظر الى هذا المستند للحصول على شرح مفصل لسبب استخدام ABP.IO Platform لفائدته الكبيرة بدلًا من القيام بكل شيء بنفسك.", "EulaPageTitle": "اتفاقية ترخيص المستخدم النهائي (EULA)", "PrivacyPolicyPageTitle": "سياسة الخصوصية - سياسة ملفات تعريف الارتباط", "TermsConditionsPageTitle": "الأحكام والشروط", diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/cs.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/cs.json index 9f7d48d78c..30500aab9b 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/cs.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/cs.json @@ -382,7 +382,7 @@ "TrialLicenseExpireMessage": "Používáte zkušební licenci a platnost vaší zkušební licence vyprší dne {0}.", "TryForFree": "Zkus zadarmo", "TrialLicenseExpiredInfo": "Vaše zkušební licenční období vypršelo!", - "CommercialNewsletterConfirmationMessage": "I agree to the Terms & Conditions and Privacy Policy.", + "CommercialNewsletterConfirmationMessage": "I agree to the Terms & Conditions and Privacy Policy.", "ContinueWithNewOrganization": "Pokračujte s novou organizací", "RenewLicenseEarly": "Pokud si předčasně obnovím licenci, dostanu celý rok?", "RenewLicenseEarylExplanation": "Když obnovíte licenci před datem vypršení platnosti licence, bude k datu vypršení platnosti licence přidán 1 rok. Pokud například platnost vaší licence vyprší dne {0}-06-06 a obnovíte ji dne {0}-01-01, bude vaše nové datum vypršení platnosti licence {1}-06-06.", @@ -391,7 +391,7 @@ "OnboardingTrainingFaqTitle": "Máte školení ABP onboarding?", "OnboardingTrainingFaqExplanation": "Ano, máme školicí služby ABP, které vám pomohou rychle zahájit váš projekt ABP. Dozvíte se o ABP od hlavního člena týmu ABP a získáte dovednosti pro zahájení vašeho projektu ABP. Na onboarding školení si vysvětlíme, jak nastavit vaše vývojové prostředí, nainstalovat požadované nástroje, vytvořit plně funkční stránku CRUD. Školení bude probíhat živě a bude se používat aplikace Zoom a jsme otevřeni využití dalších online platforem pro setkávání. Jazykem školení bude angličtina. Během sezení můžete také klást otázky týkající se ABP. Pro obě strany bude naplánován vhodný čas a datum. Chcete-li získat další informace, kontaktujte nás na adrese info@abp.io.", "SupportPolicyFaqTitle": "Jaká je vaše politika podpory?", - "SupportPolicyFaqExplanation": "Podporujeme pouze aktivní a předchozí hlavní verzi. Nezaručujeme vydání opravy pro třetí a starší hlavní verzi. Například pokud je aktivní verze 7.0.0, vydáme opravné verze pro verzi 6.x.x i 7.x.x. Kromě toho poskytujeme podporu pouze pro problémy související s ABP Framework a ABP Commercial. To znamená, že neposkytujeme žádnou podporu aplikacím třetích stran, cloudovým službám a dalším periferním knihovnám používaným produkty ABP. Vynaložíme komerčně přiměřené úsilí, abychom našim zákazníkům poskytli technickou podporu během oficiální pracovní doby společnosti \"Volosoft Bilisim A.S\". Na druhou stranu se nezavazujeme k době odezvy podle dohody o úrovni služeb (SLA), ale budeme se snažit reagovat na technické problémy co nejrychleji v rámci naší oficiální pracovní doby. Pokud není se zákazníkem uzavřena zvláštní dohoda, poskytujeme podporu pouze na adrese https://support.abp.io. Máme také soukromou e-mailovou podporu, která je k dispozici pouze držitelům licence Enterprise.", + "SupportPolicyFaqExplanation": "Podporujeme pouze aktivní a předchozí hlavní verzi. Nezaručujeme vydání opravy pro třetí a starší hlavní verzi. Například pokud je aktivní verze 7.0.0, vydáme opravné verze pro verzi 6.x.x i 7.x.x. Kromě toho poskytujeme podporu pouze pro problémy související s ABP Framework a ABP Commercial. To znamená, že neposkytujeme žádnou podporu aplikacím třetích stran, cloudovým službám a dalším periferním knihovnám používaným produkty ABP. Vynaložíme komerčně přiměřené úsilí, abychom našim zákazníkům poskytli technickou podporu během oficiální pracovní doby společnosti \"Volosoft Bilisim A.S\". Na druhou stranu se nezavazujeme k době odezvy podle dohody o úrovni služeb (SLA), ale budeme se snažit reagovat na technické problémy co nejrychleji v rámci naší oficiální pracovní doby. Pokud není se zákazníkem uzavřena zvláštní dohoda, poskytujeme podporu pouze na adrese https://abp.io/support/questions. Máme také soukromou e-mailovou podporu, která je k dispozici pouze držitelům licence Enterprise.", "DowngradeLicensePlan": "Mohu v budoucnu přejít na nižší licenční plán?", "DowngradeLicensePlanExplanation": "Stávající licenční plán nelze snížit. Můžete si však zakoupit nový nižší licenční plán a pokračovat ve vývoji s novou licencí. Po zakoupení nižší licence se stačí přihlásit k novému licenčnímu plánu pomocí příkazu ABP CLI: abp login -o `.", "LicenseTransfer": "Lze licenci převést z jednoho vývojáře na druhého?", diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/de.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/de.json index 0f599be1ff..210f46ff8b 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/de.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/de.json @@ -382,7 +382,7 @@ "TrialLicenseExpireMessage": "Sie verwenden die Testlizenz und Ihre Testlizenz läuft am {0} ab.", "TryForFree": "Kostenlos testen", "TrialLicenseExpiredInfo": "Ihr Testlizenzzeitraum ist abgelaufen!", - "CommercialNewsletterConfirmationMessage": "Ich stimme den Allgemeinen Geschäftsbedingungen und der Datenschutzerklärung . zu .", + "CommercialNewsletterConfirmationMessage": "Ich stimme den Allgemeinen Geschäftsbedingungen und der Datenschutzerklärung . zu .", "ContinueWithNewOrganization": "Weiter mit einer neuen Organisation", "RenewLicenseEarly": "Erhalte ich das ganze Jahr, wenn ich meine Lizenz vorzeitig erneuere?", "RenewLicenseEarylExplanation": "Wenn Sie Ihre Lizenz vor dem Ablaufdatum Ihrer Lizenz erneuern, wird Ihr Lizenzablaufdatum um 1 Jahr verlängert. Wenn Ihre Lizenz beispielsweise am {0}-06-06 abläuft und Sie sie am {0}-01-01 erneuern, ist das neue Ablaufdatum der Lizenz der {1}-06-06.", diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/en-GB.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/en-GB.json index 1336c8ae0b..fb5064b9a6 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/en-GB.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/en-GB.json @@ -95,14 +95,14 @@ "Or": "Or", "TellUsAboutYourself": "Tell us little bit about yourself", "Surname": "Surname", - "DoYouAgreePrivacyPolicy": "I agree to the Terms & Conditions and Privacy Policy.", + "DoYouAgreePrivacyPolicy": "I agree to the Terms & Conditions and Privacy Policy.", "VolosoftMarketingInformationMessage": "I would like information, tips, and offers about Solutions for Businesses and Organizations and other Volosoft products and services.", "VolosoftSharingInformationMessage": "I would like Volosoft to share my information with select partners so I can receive relevant information about their products and services.", "WeWillSendYouADownloadLink": "We've sent the file to {0}.", "InvalidFormInputs": "Please, type the valid information specified on the form.", "DDDBookEmailBody": "Thank you.
To download your book, click here.", "FreeDDDEBook": "Free DDD E-Book", - "CommercialNewsletterConfirmationMessage": "I agree to the Terms & Conditions and Privacy Policy.", + "CommercialNewsletterConfirmationMessage": "I agree to the Terms & Conditions and Privacy Policy.", "RemoveCurrentUserFromOrganizationWarningMessage": "You are removing yourself from your own organization. You will no longer be able to manage this organization, do you confirm?", "RenewExistingOrganizationOrCreateNewOneMessage": "You can renew the license of your organization(s) by clicking the below \"Extend Now\" button(s) and thus you can extend the license expiry date by 1 year. If you continue to checkout, you will have a new organization. Do you want to continue with a new organization?", "ExtendNow": "Extend / Renew", diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/en.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/en.json index ec77e80c98..ae040e7fd2 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/en.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/en.json @@ -47,7 +47,7 @@ "UnsubscribeLicenseExpirationEmailSuccessTitle": "Successfully unsubscribed", "UnsubscribeLicenseExpirationEmailSuccessMessage": "You will not receive license expiration date reminder emails anymore.", "IndexPageHeroSection": "A complete web development platformbuilt-on framework", - "AbpCommercialShortDescription": "ABP provides pre-built application modules, rapid application development tooling, professional UI themes, premium support and more.", + "AbpCommercialShortDescription": "ABP Commercial provides pre-built application modules, rapid application development tooling, professional UI themes, premium support and more.", "LiveDemo": "Live Demo", "LiveDemoLead": "{1} using your ABP account, {3} to abp.io or fill the form below to create a live demo now", "ThereIsAlreadyAnAccountWithTheGivenEmailAddress": "There is already an account with the given email address: {0}
You should login with your account to proceed.", @@ -67,7 +67,7 @@ "Send": "Send", "WhatIsABPFramework": "WHAT IS THE ABP FRAMEWORK?", "OpenSourceBaseFramework": "Open Source Base Framework", - "ABPFrameworkExplanation": "

ABP commercial version is based on the ABP Framework, an open source and community driven web application framework for ASP.NET Core.

ABP Framework provides an excellent infrastructure to write maintainable, extensible and testable code with the best practices.

Built on and integrated to popular tools you already know. Low learning curve, easy adaptation, comfortable development.

", + "ABPFrameworkExplanation": "

ABP Commercial is based on the ABP Framework, an open source and community driven web application framework for ASP.NET Core.

ABP Framework provides an excellent infrastructure to write maintainable, extensible and testable code with the best practices.

Built on and integrated to popular tools you already know. Low learning curve, easy adaptation, comfortable development.

", "Modular": "Modular", "MicroserviceCompatible": "Microservice compatible", "DomainDrivenDesignInfrastructure": "Domain Driven Design Infrastructure", @@ -81,8 +81,8 @@ "AdvancedLocalization": "Advanced Localization", "ManyMore": "Many more", "ExploreTheABPFramework": "Explore the ABP Framework", - "WhyUseTheABPCommercial": "Why Use The ABP Platform?", - "WhyUseTheABPCommercialExplanation": "

Building enterprise-grade web applications can be complex and time-consuming.

ABP offers the perfect base infrastructure necessary for all the modern enterprise-grade ASP.NET Core based solutions. Right from the design to deployment, the entire development cycle is empowered by the ABP's built-in features & modules.

", + "WhyUseTheABPCommercial": "Why Use The ABP Commercial?", + "WhyUseTheABPCommercialExplanation": "

Building enterprise-grade web applications can be complex and time-consuming.

ABP Commercial offers the perfect base infrastructure necessary for all the modern enterprise-grade ASP.NET Core based solutions. Right from the design to deployment, the entire development cycle is empowered by the ABP's built-in features & modules.

", "StartupTemplatesShortDescription": "Startup templates make you jump-start your project in a few seconds.", "UIFrameworksOptions": "UI frameworks options;", "DatabaseProviderOptions": "Database provider options;", @@ -97,7 +97,7 @@ "TextTemplateManagement": "Text Template Management", "See All Modules": "SeeAllModules", "ABPSuite": "ABP Suite", - "AbpSuiteShortDescription": "ABP Suite is a complementary tool to ABP projects.", + "AbpSuiteShortDescription": "ABP Suite is a complementary tool to ABP Commercial.", "AbpSuiteExplanation": "It allows you to build web pages in a matter of minutes. It's a .NET Core Global tool that can be installed from the command line. It can create a new ABP solution and generate CRUD pages from the database to the front-end.", "Details": "Details", "LeptonTheme": "Lepton Theme", @@ -110,7 +110,7 @@ "DarkBlueTheme": "Dark Blue Theme", "LightTheme": "Light Theme", "ProudToWorkWith": "Proud to Work With", - "OurConsumers": "Thousands of enterprises and developers over 70 countries worldwide rely on ABP.", + "OurConsumers": "Thousands of enterprises and developers over 70 countries worldwide rely on ABP Commercial.", "JoinOurConsumers": "Join them and build amazing products fast.", "AdditionalServicesExplanation": "Do you need additional or custom services? We and our partners can provide;", "CustomProjectDevelopment": "Custom Project Development", @@ -160,50 +160,50 @@ "ABPCLIExplanation": "ABP CLI (Command Line Interface) is a command line tool to perform some common operations for ABP-based solutions.", "ABPSuiteEasilyCURD": "ABP Suite is a tool which allows you to easily create CRUD pages", "WeAreHereToHelp": "We are Here to Help", - "BrowseOrAskQuestion": "You can browse our help topics or search in the frequently asked questions, or you can ask us a question by using the contact form.", + "BrowseOrAskQuestion": "You can browse our help topics or search in the frequently asked questions, or you can ask us a question by using the contact form.", "SearchQuestionPlaceholder": "Search in frequently asked questions", - "WhatIsTheABPCommercial": "What is ABP?", - "WhatAreDifferencesThanAbpFramework": "What are the differences between the open-source ABP and commercial version of ABP?", - "AbpCommercialMetaTitle": " {0} | ABP", + "WhatIsTheABPCommercial": "What is ABP Commercial?", + "WhatAreDifferencesThanAbpFramework": "What are the differences between the open source ABP Framework and ABP Commercial?", + "AbpCommercialMetaTitle": " {0} | ABP Commercial", "AbpCommercialMetaDescription": "A comprehensive web development platform on ABP Framework with pre-built modules, startup templates, rapid dev tools, pro UI themes & premium support.", - "ABPCommercialExplanation": "ABP Platform is a set of premium modules, tools, themes and services that are built on top of the open source ABP framework. ABP is being developed and supported by the same team behind the ABP framework.", + "ABPCommercialExplanation": "ABP Commercial is a set of premium modules, tools, themes and services that are built on top of the open source ABP framework. ABP Commercial is being developed and supported by the same team behind the ABP framework.", "WhatAreDifferencesThanABPFrameworkExplanation": "

ABP framework is a modular, themeable, microservice compatible application development framework for ASP.NET Core. It provides a complete architecture and a strong infrastructure to let you focus on your own business code rather than repeating yourself for every new project. It is based on the best practices of software development and popular tools you already know.

ABP framework is completely free, open source and community-driven. It also provides a free theme and some pre-built modules (e.g. identity management and tenant management).

", "VisitTheFrameworkVSCommercialDocument": "Visit the following link for more information {1} ", - "ABPCommercialFollowingBenefits": "ABP commercial version adds the following benefits on top of the ABP framework:", + "ABPCommercialFollowingBenefits": "ABP Commercial adds the following benefits on top of the ABP framework:", "Professional": "Professional", "UIThemes": "UI Themes", "EnterpriseModules": "Enterprise ready, feature-rich, pre-built Application Modules (e.g. Identity Server management, SaaS management, language management)", "ToolingToSupport": "Tooling to support your development productivity (e.g. ABP Suite)", "PremiumSupportLink": "Premium Support", - "WhatDoIDownloadABPCommercial": "What do I download when I purchase the ABP commercial version?", + "WhatDoIDownloadABPCommercial": "What do I download when I purchase the ABP Commercial?", "CreateUnlimitedSolutions": "Once you purchase an ABP Commercial license, you will be able to create unlimited solutions like described in the Getting Started document.", "ABPCommercialSolutionExplanation": "When you create a new application, you get a Visual Studio solution (a startup template) based on your preferences. The downloaded solution has commercial modules and themes already installed and configured for you. You can remove a pre-installed module or add another module if you like. All modules and themes use NuGet/NPM packages by default.", "StartDevelopWithTutorials": "The downloaded solution is well architected and documented. You can start developing your own business code based on it following the tutorials.", - "TryTheCommercialDemo": "You can try the Live Demo to see a sample application created using the ABP startup template.", - "HowManyProducts": "How many different products/solutions can I build using the ABP?", + "TryTheCommercialDemo": "You can try the Live Demo to see a sample application created using the ABP Commercial startup template.", + "HowManyProducts": "How many different products/solutions can I build using the ABP Commercial?", "HowManyProductsExplanation": "You can create as many projects as you want during your active license period; there is no limit! After your license expires, you cannot create new projects, but you can continue to develop the projects you have downloaded and deploy them to an unlimited count of servers.", - "HowManyDevelopers": "How many developers can work on the ABP?", - "HowManyDevelopersExplanation": "ABP licenses are per developer. Different license types have different developer limits. However, you can add more developers to any license type whenever you need. Check out the Plans & Pricing page for license types, developer limits and additional developer costs.", + "HowManyDevelopers": "How many developers can work on the ABP Commercial?", + "HowManyDevelopersExplanation": "ABP Commercial licenses are per developer. Different license types have different developer limits. However, you can add more developers to any license type whenever you need. Check out the Plans & Pricing page for license types, developer limits and additional developer costs.", "ChangingLicenseType": "Can I upgrade my license type later?", - "ChangingLicenseTypeExplanation": "You can upgrade to a higher license by paying the difference within your active license period. When you upgrade to a higher license plan, you get the benefits of the new plan, but the license upgrade does not change the license expiry date. Besides, you can also add new developer seats to your existing license, check out the \"How many developers can work on the ABP?\" FAQ.", + "ChangingLicenseTypeExplanation": "You can upgrade to a higher license by paying the difference within your active license period. When you upgrade to a higher license plan, you get the benefits of the new plan, but the license upgrade does not change the license expiry date. Besides, you can also add new developer seats to your existing license, check out the \"How many developers can work on the ABP Commercial?\" FAQ.", "LicenseExtendUpgradeDiff": "What is the difference between license extend and upgrade?", "LicenseExtendUpgradeDiffExplanation": "Extending: By extending/renewing your license, you will continue to get premium support and get major or minor updates for the modules and themes. Besides, you will be able to continue creating new projects. And you will still be able to use ABP Suite, which speeds up your development. When you extend your license, 1 year is added to your license expiry date.
Upgrading: By upgrading your license, you will be promoted to a higher license plan, which will allow you to get additional benefits. Check out the license comparison table to see the differences between the license plans. On the other hand, when you upgrade, your license expiry date will not change! To extend your license end date, you need to extend your license.", "LicenseRenewalCost": "What is the license renewal cost after 1 year?", "LicenseRenewalCostExplanation": "The renewal (extend) price of the standard Team License is ${0}, standard Business License is ${1} and standard Enterprise License is ${2}. If you are already a customer, log into your account to review the current renewal pricing.", "HowDoIRenewMyLicense": "How do I renew my license?", "HowDoIRenewMyLicenseExplanation": "You can renew your license by navigating to the organization management page. In order to take advantage of our discounted Early Renewal rates, ensure you renew before your license expires. Don't worry about not knowing when your Early Renewal opportunity closes; you'll receive 3 reminder e-mails before your subscription expires. We'll send them 30 days, 7 days and 1 day before expiration.", - "IsSourceCodeIncluded": "Does my license include the source code of the pro modules and themes?", + "IsSourceCodeIncluded": "Does my license include the source code of the commercial modules and themes?", "IsSourceCodeIncludedExplanation1": "Depends on the license type you've purchased:", "IsSourceCodeIncludedExplanation2": "Team: Your solution uses the modules and themes as NuGet and NPM packages. It doesn't include their source code. This way, you can easily upgrade these modules and themes whenever a new version is available. However, you can not get the source code of these modules and themes.", "IsSourceCodeIncludedExplanation3": "Business/Enterprise: In addition to the Team license, you are able to download the source code of any module or theme you need. You can even remove the NuGet/NPM package references for a particular module and add its source code directly to your solution to fully change it.", - "IsSourceCodeIncludedExplanation4": "

Including the source code of a module to your solution gives you the maximum freedom to customize that module. However, it will then not be possible to automatically upgrade the module when a new version is released.

None of the licenses include the ABP Suite and ABP Studio source code, which is external tools that generates code for you and assists your development.

Check out the Plans & Pricing page for other differences between the license types.

", + "IsSourceCodeIncludedExplanation4": "

Including the source code of a module to your solution gives you the maximum freedom to customize that module. However, it will then not be possible to automatically upgrade the module when a new version is released.

None of the licenses include the ABP Suite source code, which is an external tool that generates code for you and assists your development.

Check out the Plans & Pricing page for other differences between the license types.

", "ChangingDevelopers": "Can I change the registered developers of my organization in the future?", "ChangingDevelopersExplanation": "In addition to adding new developers to your license, you can also change the existing developers (you can remove a developer and add a new one to the same seat) without any additional cost.", "WhatHappensWhenLicenseEnds": "What happens when my license period ends?", - "WhatHappensWhenLicenseEndsExplanation1": "The ABP license is a perpetual license. After your license expires, you can continue developing your project. And you are not obliged to renew your license. Your license comes with a one-year update and support plan out of the box. In order to continue to get new features, performance enhancements, bug fixes, support and continue using ABP Suite, you need to renew your license. When your license expires;", - "WhatHappensWhenLicenseEndsExplanation2": "You can not create new solutions using the ABP commercial version, but you can continue developing your existing applications forever.", + "WhatHappensWhenLicenseEndsExplanation1": "The ABP Commercial license is a perpetual license. After your license expires, you can continue developing your project. And you are not obliged to renew your license. Your license comes with a one-year update and support plan out of the box. In order to continue to get new features, performance enhancements, bug fixes, support and continue using ABP Suite, you need to renew your license. When your license expires;", + "WhatHappensWhenLicenseEndsExplanation2": "You can not create new solutions using the ABP Commercial, but you can continue developing your existing applications forever.", "WhatHappensWhenLicenseEndsExplanation3": "You will be able to get updates for the modules and themes within your MINOR version (except RC or Preview versions). For example, if you are using v3.2.0 of a module, you can still get updates for v3.2.x (v3.2.1, v3.2.5... etc.) of that module. But you cannot get updates for the next major or minor version (like v3.3.0, v3.3.3, 4.x.x.. etc.). For example, when your license expired, the latest release was v4.4.3, and later, it published both 4.4.4 version and 4.5.0 version, you would be able to access the v4.4.X but you wouldn't be access the v4.5.X.", - "WhatHappensWhenLicenseEndsExplanation4": "You can not install new modules and themes added to the ABP commercial platform after your license ends.", + "WhatHappensWhenLicenseEndsExplanation4": "You can not install new modules and themes added to the ABP Commercial platform after your license ends.", "WhatHappensWhenLicenseEndsExplanation5": "You can not use the ABP Suite.", "WhatHappensWhenLicenseEndsExplanation6": "You can not get the premium support anymore.", "WhatHappensWhenLicenseEndsExplanation7": "You can extend (renew) your license if you want to continue getting these benefits. If you extend your license within {3} days after your license expires, the following discounts will be applied: Team License {0}; Business License {1}; Enterprise License {2}.", @@ -212,11 +212,11 @@ "WhenShouldIRenewMyLicense": "When should I renew my license?", "WhenShouldIRenewMyLicenseExplanation": "If you renew your license within {3} days after your license expires, the following discounts will be applied: Team License {0}; Business License {1}; Enterprise License {2}. However, if you renew your license after {3} days since the expiry date of your license, the renewal price will be the same as the license purchase price, and there will be no discount on your renewal.", "TrialPlan": "Do you have a trial plan?", - "TrialPlanExplanation": "Yes, to start your free trial, contact marketing@volosoft.com. We also offer a 30-day money-back guarantee for the Team license, no questions asked! You can request a full refund within the first 30 days of the license purchase. We provide a 60% refund within 30 days for Business and Enterprise licenses. This is because the Business and Enterprise licenses contain the full source-code of all the modules and themes.", + "TrialPlanExplanation": "Yes, to start your free trial, contact marketing@volosoft.com. We also offer a 30-day money-back guarantee for the Team license, no questions asked! You can request a full refund within the first 30 days of the license purchase. We provide a 60% refund within 30 days for Business and Enterprise licenses. This is because the Business and Enterprise licenses contain the full source-code of all the modules and themes.", "DoYouAcceptBankWireTransfer": "Do you accept bank wire transfers?", "DoYouAcceptBankWireTransferExplanation": "Yes, we accept bank wire transfers.
After sending the license fee via bank transfer, send your receipt and requested license type to accounting@volosoft.com.
Our international bank account information:", "HowToUpgrade": "How to upgrade existing applications when a new version is available?", - "HowToUpgradeExplanation1": "When you create a new application using ABP, all the modules and themes are used as NuGet and NPM packages. So, you can easily upgrade the packages when a new version is available.", + "HowToUpgradeExplanation1": "When you create a new application using ABP Commercial, all the modules and themes are used as NuGet and NPM packages. So, you can easily upgrade the packages when a new version is available.", "HowToUpgradeExplanation2": "In addition to the standard NuGet/NPM upgrades, ABP CLI provides an update command that automatically finds and upgrades all ABP-related packages in your solution.", "DatabaseSupport": "Which database systems are supported?", "DatabaseSupportExplanation": "ABP Framework itself is database agnostic and can work with any database provider by its nature. Check out the Data Access document for a list of currently implemented providers.", @@ -225,15 +225,15 @@ "UISupportExplanation": "ABP Framework itself is UI framework agnostic and can work with any UI framework. However, startup templates, module UIs and themes were not implemented for all UI frameworks. Check out the Getting Started document for the up-to-date list of UI options.", "MicroserviceSupport": "Does it support the microservice architecture?", "MicroserviceSupportExplanation1": "One of the major goals of the ABP framework is to provide a convenient infrastructure to create microservice solutions. Check out the Microservice Architecture document to understand how it helps with creating microservice systems.", - "MicroserviceSupportExplanation2": "All the ABP modules are designed to support microservice deployment scenarios (with its own API and database) by following the Module Development Best Practices document.", + "MicroserviceSupportExplanation2": "All the ABP Commercial modules are designed to support microservice deployment scenarios (with its own API and database) by following the Module Development Best Practices document.", "MicroserviceSupportExplanation3": "We provide a sample Microservice Demo Solution that demonstrates a microservice architecture implementation to help you create your own solution.", "MicroserviceSupportExplanation4": "So, the short answer is: \"Yes, it supports microservice architecture\".", "MicroserviceSupportExplanation5": "However, a microservice system is a solution, and every solution will have different requirements, network topology, communication scenarios, authentication possibilities, database sharding/partitioning decisions, runtime configurations, 3rd party system integrations and many more.", - "MicroserviceSupportExplanation6": "ABP provides infrastructure for microservice scenarios, microservice compatible modules, samples and documentation to help you build your own solution. But don't expect to directly download your dream solution pre-built for you. You will need to understand it and bring specific parts together based on your requirements.", + "MicroserviceSupportExplanation6": "The ABP Framework and ABP Commercial provide infrastructure for microservice scenarios, microservice compatible modules, samples and documentation to help you build your own solution. But don't expect to directly download your dream solution pre-built for you. You will need to understand it and bring specific parts together based on your requirements.", "WhereCanIDownloadSourceCode": "Where can I download the source-code?", "WhereCanIDownloadSourceCodeExplanation": "You can download the source code of all the ABP modules, Angular packages and themes via ABP Suite or ABP CLI. Check out How to download the source-code?", "ComputerLimitation": "How many computers can a developer login when developing ABP?", - "ComputerLimitationExplanation": "We specifically permit {0} computers per individual/licensed developer. Whenever there is a need for a developer to develop ABP based products on a third machine, an e-mail should be sent to license@abp.io explaining the situation, and we will then make the appropriate allocation in our system.", + "ComputerLimitationExplanation": "We specifically permit {0} computers per individual/licensed developer. Whenever there is a need for a developer to develop ABP Commercial products on a third machine, an e-mail should be sent to license@abp.io explaining the situation, and we will then make the appropriate allocation in our system.", "RefundPolicy": "Do you have a refund policy?", "RefundPolicyExplanation": "You can request a refund within 30 days of your license purchase. The Business and Enterprise license types have source-code download options; therefore, we provide a 60% refund within 30 days for Business and Enterprise licenses. In addition, no refunds are made for renewals and second license purchases.", "HowCanIRefundVat": "How can I refund VAT?", @@ -243,7 +243,7 @@ "HowCanIGetMyInvoice": "How can I get my invoice?", "HowCanIGetMyInvoiceExplanation": "There are 2 payment gateways for purchasing a license: Iyzico and 2Checkout. If you purchase your license through the 2Checkout gateway, it sends the PDF invoice to your email address; check out 2Checkout invoicing. If you purchase through the Iyzico gateway, with a custom purchase link or via a bank wire transfer, we will prepare and send your invoice. You can request or download your invoice from the organization management page. Before contacting us for the invoice, check your organization management page!", "Forum": "Forum", - "SupportExplanation": "ABP license provides a premium forum support by a team consisting of the ABP Framework experts.", + "SupportExplanation": "ABP Commercial license provides a premium forum support by a team consisting of the ABP Framework experts.", "PrivateTicket": "Private Ticket", "PrivateTicketExplanation": "Enterprise License also includes a private support with e-mail and ticket system.", "AbpSuiteExplanation1": "ABP Suite allows you to build web pages in a matter of minutes. It's a .NET Core Global tool that can be installed from the command line.", @@ -271,7 +271,7 @@ "Document": "Document", "UsingABPSuiteToCURD": "Using ABP Suite for CRUD Page Generation & Tooling", "SeeABPSuiteDocument": "Check out the ABP Suite document to learn the usage of ABP Suite.", - "AskQuestionsOnSupport": "You can ask questions on ABP Support.", + "AskQuestionsOnSupport": "You can ask questions on ABP Commercial Support.", "Documentation": "Documentation", "SeeModulesDocument": "See the modules page for a list of all the PRO modules.", "Pricing": "Pricing", @@ -322,7 +322,7 @@ "GithubUsername": "GitHub username", "PhoneNumber": "Phone number", "Country": "Country", - "DescribeABPCommercialUsage": "Describe the project you are planning to develop based on APB", + "DescribeABPCommercialUsage": "Describe the project you are planning to develop based on APB Commercial", "DiscountRequestCertifyInformationMessage": "I certify that all information is true and correct.", "DiscountRequestReceived": "We have received your discount request.", "DiscountRequestStatusMessage": "We will respond to you after checking the information you have provided.", @@ -371,7 +371,7 @@ "DDDBookEmailBody": "Thank you.
To download your book, click here.", "StartFree": "Start free", "FreeTrial": "Free Trial", - "AcceptsMarketingCommunications": " Yes, I`d like to receive ABP related marketing news.", + "AcceptsMarketingCommunications": " Yes, I`d like to receive ABP Commercial marketing communications.", "PurposeOfUsage": "Purpose of usage", "Choose": "- Choose -", "CompanyOrganizationName": "Company / Organization name", @@ -400,8 +400,8 @@ "DowngradeLicensePlanExplanation": "You cannot downgrade your existing license plan. But you can purchase a new lower license plan and continue your development on the new license. After you purchase a lower license, you just need to login to your new license plan via ABP CLI command: ` abp login -o `.", "LicenseTransfer": "Can a license be transferred from one developer to another?", "LicenseTransferExplanation": "Yes! When you purchase a license, you become the license holder, hence you will have access to the organization management page. An organization has owner and developer roles. Owners can manage the developer seats and assign developers. Each assigned developer will log in via ABP CLI command into the system and will have development and support permissions.", - "UserOwnerDescription": "The 'Owner' of the organization is the admin of this account. He/she manages the organization by purchasing licenses and allocating developers. An 'Owner' cannot write code in the ABP projects, cannot download the ABP sample projects, and cannot ask questions on the support website. If you want to do all these, you have to add yourself as a developer too.", - "UserDeveloperDescription": "The 'Developers' can write code in the ABP projects, download the ABP sample projects, and ask questions on the support website. On the other hand, the 'Developers' cannot manage this organization.", + "UserOwnerDescription": "The 'Owner' of the organization is the admin of this account. He/she manages the organization by purchasing licenses and allocating developers. An 'Owner' cannot write code in the ABP Commercial projects, cannot download the ABP sample projects, and cannot ask questions on the support website. If you want to do all these, you have to add yourself as a developer too.", + "UserDeveloperDescription": "The 'Developers' can write code in the ABP Commercial projects, download the ABP sample projects, and ask questions on the support website. On the other hand, the 'Developers' cannot manage this organization.", "RemoveCurrentUserFromOrganizationWarningMessage": "You are removing yourself from your own organization. You will no longer be able to manage this organization, do you confirm?", "RenewExistingOrganizationOrCreateNewOneMessage": "You can renew the license of your organization(s) by clicking the below \"Extend Now\" button(s) and thus you can extend the license expiration date by 1 year. If you continue to checkout, you will have a new organization. Do you want to continue with a new organization?", "PurchaseTrialOrganizationOrCreateNewOneMessage": "You have a trial license. To purchase your trial license click the Purchase Now button. If you continue to checkout, you will have a new organization. Do you want to continue with a new organization?", @@ -421,7 +421,7 @@ "UIFrameworks": "UI Frameworks", "UsefulLinks": "Useful Links", "Platform": "Platform", - "CoolestCompaniesUseABPCommercial": "The coolest companies already use ABP.", + "CoolestCompaniesUseABPCommercial": "The coolest companies already use ABP Commercial.", "UserInterface": "User Interface", "APIGateway": "API Gateway", "Microservice": "Microservice", @@ -462,12 +462,12 @@ "LightDarkAndSemiDarkThemes": "Light, Dark and Semi-Dark", "LeptonXThemeExplanation": "Lepton Theme can change your theme according to your system settings.", "PRO": "PRO", - "WelcomeToABPCommercial": "Welcome to ABP Platform!", + "WelcomeToABPCommercial": "Welcome to ABP Commercial!", "YourAccountDetails": "Your Account Details", "OrganizationName": "Organization Name", "AddDevelopers": "Add Developers", "StartDevelopment": "Start Development", - "CreateAndRunApplicationUsingStartupTemplate": "Learn how to create and run a new web application using the ABP startup templates.", + "CreateAndRunApplicationUsingStartupTemplate": "Learn how to create and run a new web application using the ABP Commercial startup template.", "CommunityDescription2": "community.abp.io is a place where people can share ABP-related articles. Search for articles, tutorials, code samples, case studies and meet people in the same lane as you.", "UseABPSuiteExplanation": "Use ABP Suite to download the source-code of the modules and themes.", "ManageModulesWithSuite": "You can also manage your ABP modules with Suite.", @@ -480,9 +480,9 @@ "MultipleUIOptionsExplanation": "We love different ways to create the User Interface. This startup solution provides three different UI framework options for your business application.", "MultipleDatabaseOptions": "Multiple Database Options", "MultipleDatabaseOptionsExplanation": "You have two database provider options (in addition to using both in a single application). Use Entity Framework Core to work with any relational database and optionally use Dapper when you need to write low-level queries for better performance. MongoDB is another option if you need to use a document-based NoSQL database. While these providers are well-integrated, abstracted and pre-configured, you can actually interact with any database system that you can use with .NET.", - "ModularArchitectureExplanation2": "Modularity is a first-class citizen in the ABP.IO platform. All the application functionalities are split into well-isolated optional modules. The startup solution already comes with the fundamental ABP modules pre-installed. You can also create your own modules to build a modular system for your own application.", + "ModularArchitectureExplanation2": "Modularity is a first-class citizen in the ABP.IO platform. All the application functionalities are split into well-isolated optional modules. The startup solution already comes with the fundamental ABP Commercial modules pre-installed. You can also create your own modules to build a modular system for your own application.", "MultiTenancyForSaasBusiness": "Multi-Tenancy for your SaaS Business", - "MultiTenancyForSaasBusinessExplanation": "ABP provides a complete, end-to-end multi-tenancy system to create your SaaS (Software-as-a-Service) systems. It allows the tenants to share or have their own databases with on-the-fly database creation and migration system.", + "MultiTenancyForSaasBusinessExplanation": "ABP Commercial provides a complete, end-to-end multi-tenancy system to create your SaaS (Software-as-a-Service) systems. It allows the tenants to share or have their own databases with on-the-fly database creation and migration system.", "MicroserviceStartupSolution": "Microservice Startup Solution", "MicroserviceArchitectureExplanation2": "You can get it for your next microservice system to take advantage of the pre-built base solution and distilled experience.", "PreIntegratedTools": "Pre-Integrated to popular tools", @@ -496,7 +496,7 @@ "LandingWebsite": "Landing Website", "LandingWebsiteExplanation": "A generic landing/public website that can be used for several purposes, like introducing your company, selling your products, etc.", "ABPFrameworkEBook": "Mastering ABP Framework e-book", - "MasteringAbpFrameworkEBookDescription": "Included within your ABP license", + "MasteringAbpFrameworkEBookDescription": "Included within your ABP Commercial license", "FullName": "Full Name", "LicenseTypeNotCorrect": "The license type is not correct!", "Trainings": "Trainings", @@ -517,7 +517,7 @@ "SendTrainingRequest": "Send Training Request", "OnlyEnglishVersionOfThisDocumentIsTheRecentAndValid": "* The English version of this document is the most up-to-date, and the English version will prevail in any dispute.", "Pricing_Page_Title": "Pricing & Plans", - "Pricing_Page_Description": "Choose the features and functionality your business needs today. Buy an ABP license and create unlimited projects.", + "Pricing_Page_Description": "Choose the features and functionality your business needs today. Buy an ABP Commercial license and create unlimited projects.", "Pricing_Page_HurryUp": "Hurry Up!", "Pricing_Page_BuyLicense": "Buy a license at 2021 prices until January 16!", "Pricing_Page_ValidForExistingCustomers": "Also valid for existing customers and license renewals.", @@ -537,16 +537,16 @@ "Pricing_Page_Hint14": "Team and Business licenses have incident/question count limit. If you buy additional developer licenses, your incident limit increases by {0} (for the Team License) or {1} (for the Business License) per developer.", "Pricing_Page_Hint15": "Only Enterprise License includes private support. You can send an e-mail directly to the ABP Team or ask questions on support.abp.io with a private ticket option. The private tickets are not visible to the public.", "Pricing_Page_Hint16": "You can download the source-code of all ABP themes. You may want to add the source code to your solution to make radical changes or just keep it for yourself for security reasons.", - "Pricing_Page_Testimonial_1": "ABP allowed SC Ventures to deliver a bank-grade multi-tenant silo-database SaaS platform in 9 months to support the accounts receivable / accounts payable supply chain financing of significant value invoices from multiple integrated anchors. The modularity of ABP made it possible for the team to deliver in record time, pass all VAPT, and deploy the containerized microservices stack via full CI/CD and pipelines into production.", - "Pricing_Page_Testimonial_2": "We see the value of using ABP to reduce the overhead of custom development projects. The team is able to unify the code pattern in different project streams. We see more potential in the framework for us to build new features faster than before. We trust we will be constantly seeing the value of leveraging ABP.", + "Pricing_Page_Testimonial_1": "ABP Commercial allowed SC Ventures to deliver a bank-grade multi-tenant silo-database SaaS platform in 9 months to support the accounts receivable / accounts payable supply chain financing of significant value invoices from multiple integrated anchors. The modularity of ABP made it possible for the team to deliver in record time, pass all VAPT, and deploy the containerized microservices stack via full CI/CD and pipelines into production.", + "Pricing_Page_Testimonial_2": "We see the value of using ABP Commercial to reduce the overhead of custom development projects. The team is able to unify the code pattern in different project streams. We see more potential in the framework for us to build new features faster than before. We trust we will be constantly seeing the value of leveraging ABP Commercial.", "Pricing_Page_Testimonial_3": "We love ABP. We don't have to write everything from scratch. We start from out-of-the-box features and just focus on what we really need to write. Also, ABP is well-architected and the code is high quality with fewer bugs. If we had to write everything we needed on our own, we might have to spend years. One more thing we like is that the new version, issue fixing, or improvement comes out very soon every other week. We don't wait too long.", - "Pricing_Page_Testimonial_4": "ABP is a fantastic product would recommend. Commercial products to market for our customers in a single configurable platform. The jump starts that the framework and tooling provide any team is worth every cent. ABP was the best fit for our needs.", + "Pricing_Page_Testimonial_4": "ABP Commercial is a fantastic product would recommend. Commercial products to market for our customers in a single configurable platform. The jump starts that the framework and tooling provide any team is worth every cent. ABP Commercial was the best fit for our needs.", "Pricing_Page_Testimonial_5": "ABP Framework is not only a framework, but it is also a guide for project development/management, because it provides DDD, GenericRepository, DI, Microservice, and Modularity training. Even if you are not going to use the framework itself, you can develop yourself with docs.abp.io which is well and professionally prepared (OpenIddict, Redis, Quartz etc.). Because many things are pre-built, it shortens project development time significantly (Such as login page, exception handling, data filtering, seeding, audit logging, localization, auto API controller etc.). As an example from our application, I have used Local Event Bus for stock control. So, I am able to manage order movements by writing stock handler. It is wonderful not to lose time for CreationTime, CreatorId. They are being filled automatically.", - "Pricing_Page_Testimonial_6": "ABP Framework is a good framework but it needs time to understand the different layers, classes, and libraries it uses (especially ABP). I spent a lot of time reading the code base, but ABP saved us time in creating the project specialty entities (AR) and the repository linked to each of them. I liked also the approach used in ABP is very mature; we know is based on DDD and monolith.", + "Pricing_Page_Testimonial_6": "ABP Framework is a good framework but it needs time to understand the different layers, classes, and libraries it uses (especially ABP). I spent a lot of time reading the code base, but ABP Commercial saved us time in creating the project specialty entities (AR) and the repository linked to each of them. I liked also the approach used in ABP is very mature; we know is based on DDD and monolith.", "Pricing_Page_Testimonial_7": "As a startup, we need to iterate quickly and spend minimal time on boilerplate and non-core features.\nOur engineers range from highly experienced to junior engineers, and we needed a common understanding and a way to share technical and domain knowledge, ABP allowed us to do this due to their great guides and documentation. \nThere are things we haven't had to worry about since they work out of the box with ABP. \nABP helped us streamline rapid prototyping and development, less than 4 weeks from feature inception to production. With all its premium features included in the license, ABP has given us, \"Startup in a Box\" on the Software Engineering Side.", - "Pricing_Page_Testimonial_8": "I would recommend ABP to all those who want to expand the range of products available to their customers. It's fantastic when need to use a distributed enterprise environment (Angular, WPF, Win&Linux). In addition to their products, we love their support, which makes our job faster and easier. We already know that we have found a great partner for the future who will support us in expanding our business.", - "Pricing_Page_Testimonial_9": "We are a company of 2 employees that's been in business for over 20 years.\nIn terms of our experience with ABP, we were approached by a client who requested that we develop a new human resources application in a modern environment to replace their 25-year-old Access application. We decided to transition from a desktop solution to a web-based one.\n\nAt the time, we had very little knowledge of web applications and .NET, but we stumbled upon ABP, and with the help of ABP Framework, technical documentation, and ABP Suite, we were able to not only develop the application to the client's specifications but also successfully work within a .NET environment within a year.", - "AbpBookDownloadArea_ClaimYourEBook": "Claim your ABP Framework E-book", + "Pricing_Page_Testimonial_8": "I would recommend ABP commercial to all those who want to expand the range of products available to their customers. It's fantastic when need to use a distributed enterprise environment (Angular, WPF, Win&Linux). In addition to their products, we love their support, which makes our job faster and easier. We already know that we have found a great partner for the future who will support us in expanding our business.", + "Pricing_Page_Testimonial_9": "We are a company of 2 employees that's been in business for over 20 years.\nIn terms of our experience with ABP Commercial, we were approached by a client who requested that we develop a new human resources application in a modern environment to replace their 25-year-old Access application. We decided to transition from a desktop solution to a web-based one.\n\nAt the time, we had very little knowledge of web applications and .NET, but we stumbled upon ABP Commercial, and with the help of ABP Framework, technical documentation, and ABP Suite, we were able to not only develop the application to the client's specifications but also successfully work within a .NET environment within a year.", + "AbpBookDownloadArea_ClaimYourEBook": "Claim your Mastering ABP Framework E-Book", "AddMemberModal_Warning_1": "If the username you are trying to add doesn't exist in the system, please ask your team member to register on {0} and share the username of his/her account with you.", "MyOrganizations_Detail_WelcomeMessage": "Welcome to your organization, {0}", "MyOrganizations_Detail_OrganizationManagement": "Organization Management", @@ -607,7 +607,7 @@ "Purchase_IncludedDeveloperInfo": "{0} {1} included.", "Purchase_LicenseExtraDeveloperPurchaseMessage": "The {0} License includes {1} developers. You can add additional developers.", "StartupTemplates_Page_Title": "ABP Startup Templates", - "StartupTemplates_Page_Description": "ABP allows you to build solutions with any level of complexity. It provides two main pre-built startup solutions. You can select the one close to your requirements and build your own custom solution on top of it.", + "StartupTemplates_Page_Description": "ABP Commercial allows you to build solutions with any level of complexity. It provides two main pre-built startup solutions. You can select the one close to your requirements and build your own custom solution on top of it.", "MicroserviceStartupSolutionForDotnet": "Microservice Startup Solution for .NET", "MonolithSolutionForDotnet": "Monolith (modular) Solution for .NET", "TrainingDetailsHeaderInfo_TrainingHour": "{0} hours", @@ -618,10 +618,10 @@ "TrialForumSupportIncident": "You'll have {0} forum support incidents", "Contact_Page_Title": "Contact with ABP Development Team", "Contact_Page_Description": "Contact with ABP Development team, if you need any help or share your thoughts and opinions! ABP Support Team is ready to help.", - "Demo_Page_Title": "Create a Live Demo", - "Demo_Page_Description": "Create a free live demo to experience the power of ABP Framework with our interactive demos. Explore a variety of real-world web applications.", + "Demo_Page_Title": "Create a Demo", + "Demo_Page_Description": "Create a free demo to see a sample application created using the ABP Commercial startup template. Don't repeat yourself for common application requirements.", "Discounted_Page_Title": "Discounted pricing", - "Discounted_Page_Description": "Choose the features and functionality your business needs today. Buy an ABP license and create unlimited projects", + "Discounted_Page_Description": "Choose the features and functionality your business needs today. Buy an ABP Commercial license and create unlimited projects", "Faq_Page_Title": "Frequently Asked Questions (FAQ)", "Faq_Page_Description": "Do you have any questions? Search frequently asked questions or ask us a question using the contact form.", "Faq_Page_SwiftCode": "SWIFT Code", @@ -634,11 +634,11 @@ "ProjectCreatedSuccess_Page_Title": "Your project created", "ProjectCreatedSuccess_Page_Description": "Your ABP project created successfully!", "Suite_Page_Title": "ABP Suite", - "Suite_Page_Description": "ABP provides rapid application development tooling to increase developer productivity. ABP Suite allows you to create CRUD pages easily.", + "Suite_Page_Description": "ABP Commercial provides rapid application development tooling to increase developer productivity. ABP Suite allows you to create CRUD pages easily.", "Themes_Page_Title": "ABP Themes", - "Themes_Page_Description": "ABP provides multiple professional, modern UI themes. Create a free demo to have a quick view of what the UI looks like.", + "Themes_Page_Description": "ABP Commercial provides multiple professional, modern UI themes. Create a free demo to have a quick view of what the UI looks like.", "Tools_Page_Title": "Rapid Application Development Tools", - "Tools_Page_Description": "ABP provides rapid application development tooling to increase developer productivity. ABP Suite allows you to create CRUD pages easily.", + "Tools_Page_Description": "ABP Commercial provides rapid application development tooling to increase developer productivity. ABP Suite allows you to create CRUD pages easily.", "DeveloperPrice": "Developer Price", "AdditionalDeveloperPaymentInfoSection_AdditionalDevelopers": "{0} developers", "LicenseRemainingDays": "for {0} days", @@ -669,10 +669,10 @@ "Landing_Page_ChatModule": "Chat", "Landing_Page_DocsModule": "Docs", "Landing_Page_FileManagementModule": "File Management", - "Landing_Page_CustomerStory_1": "ABP allowed SC Ventures to deliver a bank-grade multi-tenant silo-database SaaS platform in 9 months to support the accounts receivable / accounts payable supply chain financing of significant value invoices from multiple integrated anchors. The modularity of ABP made it possible for the team to deliver in record time, pass all VAPT, and deploy the containerized microservices stack via full CI/CD and pipelines into production.", - "Landing_Page_CustomerStory_2": "We see the value of using ABP to reduce the overhead of custom development projects. The team can unify the code pattern in different project streams. We see more potential in the framework for us to build new features faster than before. We trust we will be constantly seeing the value of leveraging ABP.", + "Landing_Page_CustomerStory_1": "ABP Commercial allowed SC Ventures to deliver a bank-grade multi-tenant silo-database SaaS platform in 9 months to support the accounts receivable / accounts payable supply chain financing of significant value invoices from multiple integrated anchors. The modularity of ABP made it possible for the team to deliver in record time, pass all VAPT, and deploy the containerized microservices stack via full CI/CD and pipelines into production.", + "Landing_Page_CustomerStory_2": "We see the value of using ABP Commercial to reduce the overhead of custom development projects. The team can unify the code pattern in different project streams. We see more potential in the framework for us to build new features faster than before. We trust we will be constantly seeing the value of leveraging ABP Commercial.", "Landing_Page_CustomerStory_3": "We love ABP. We don't have to write everything from scratch. We start from out-of-the-box features and just focus on what we really need to write. Also, ABP is well-architected and the code is high quality with fewer bugs. If we had to write everything we needed on our own, we might have to spend years. One more thing we like is that the new version, or issue fixing, or improvement comes out very soon\n every other week. We don't wait too long.", - "Landing_Page_CustomerStory_4": "ABP is a fantastic product would recommend. Commercial products to market for our customers in a single configurable platform. The jump starts that the framework and tooling provide any team is worth every cent. ABP was the best fit for our needs.", + "Landing_Page_CustomerStory_4": "ABP Commercial is a fantastic product would recommend. Commercial products to market for our customers in a single configurable platform. The jump starts that the framework and tooling provide any team is worth every cent. ABP Commercial was the best fit for our needs.", "Landing_Page_AdditionalServices": "Custom or volume license, onboarding, live training & support, custom project development, porting existing projects and more...", "Landing_Page_IncludedDeveloperLicenses": "Included {0} developer licenses", "Landing_Page_SeeOnDemo": "See on Demo", @@ -720,7 +720,7 @@ "Landing_Page_DocsModuleDescription_9": "In addition to the GitHub source, allows to simply use a folder as the documentation source.", "Landing_Page_FileManagementModuleDescription_1": "Upload, download and organize files in a hierarchical folder structure.", "Landing_Page_FileManagementModuleDescription_2": "This module is used to upload, download and organize files in a hierarchical folder structure. It is also compatible with multi-tenancy and you can determine the total size limit for your tenants.", - "Landing_Page_FileManagementModuleDescription_3": "This module is based on the BLOB Storing system, so it can use different storage providers to store the file contents.", + "Landing_Page_FileManagementModuleDescription_3": "This module is based on the BLOB Storing system, so it can use different storage providers to store the file contents.", "Landing_Page_IdentityModuleDescription_1": "This module implements the User and Role system of an application;", "Landing_Page_IdentityModuleDescription_2": "Built on the Microsoft's ASP.NET Core Identity library.", "Landing_Page_IdentityModuleDescription_3": "Manage roles and users in the system. A user is allowed to have multiple roles.", @@ -736,7 +736,7 @@ "Landing_Page_PaymentModuleDescription_1": "Provides integration for different payment gateways.", "Landing_Page_PaymentModuleDescription_2": "This module provides integration for payment gateways, so you can easily get payment from your customers.", "Landing_Page_PaymentModuleDescription_3": "This module supports the following payment gateways", - "Welcome_Page_UseSameCredentialForCommercialWebsites": "Use the same credentials for both abp.io and abp.io/support.", + "Welcome_Page_UseSameCredentialForCommercialWebsites": "Use the same credentials for both commercial.abp.io and abp.io/support.", "WatchCrudPagesVideo": "Watch the \"Creating CRUD Pages with ABP Suite\" Video!", "WatchGeneratingFromDatabaseVideo": "Watch the \"ABP Suite: Generating CRUD Pages From Existing Database Tables\" Video!", "WatchTakeCloserLookVideo": "Watch the \"Take a closer look at the code generation: ABP Suite\" Video!", @@ -745,15 +745,15 @@ "GetConfirmationEmail": "Click here to get a verification email if you haven't got it before.", "WhichLicenseTypeYouAreInterestedIn": "Which license type you are interested in?", "DontTakeOurWordForIt": "Don't take our word for it...", - "ReadAbpCommercialUsersWantYouToKnow": "Read what ABP users want you to know", + "ReadAbpCommercialUsersWantYouToKnow": "Read what ABP Commercial users want you to know", "Testimonial_ShortDescription_1": "The modularity of ABP made it possible for the team to deliver in time.", "Testimonial_ShortDescription_2": "Build new features faster than before.", "Testimonial_ShortDescription_3": "We start from out-of-the-box features and just focus on what we really need to write.", - "Testimonial_ShortDescription_4": "ABP was the best fit for our needs.", - "OnlineReviewersOnAbpCommercial": "Online Reviews on ABP", - "SeeWhatToldAboutAbpCommercial": "See what has been told about ABP and write your thoughts if you want.", + "Testimonial_ShortDescription_4": "ABP Commercial was the best fit for our needs.", + "OnlineReviewersOnAbpCommercial": "Online Reviews on ABP Commercial", + "SeeWhatToldAboutAbpCommercial": "See what has been told about ABP Commercial and write your thoughts if you want.", "BlazoriseLicense": "Do we need to buy a Blazorise license?", - "BlazoriseLicenseExplanation": "We have an agreement between Volosoft and Megabit, with this agreement Blazorise license is bundled with ABP products therefore our customers do not need to purchase an extra Blazorise license.", + "BlazoriseLicenseExplanation": "We have an agreement between Volosoft and Megabit, with this agreement Blazorise license is bundled with ABP Commercial products therefore our customers do not need to purchase an extra Blazorise license.", "ExtendPaymentInfoSection_DeveloperPrice": "{0}x Additional Developer(s)", "ExtendPaymentInfoSection_DiscountRate": "Discount {0}%", "TotalNetPrice": "Total Net Price", @@ -812,7 +812,7 @@ "UpgradePaymentInfoSection_LicenseRenewalPrice": "License renewal", "Total": "Total", "SupportPolicyFaqTitle": "What is your support policy?", - "SupportPolicyFaqExplanation": "We do support only the active and the previous major version. We do not guarantee a patch release for the 3rd and older major versions. For example, if the active version is 7.0.0, we will release patch releases for both 6.x.x and 7.x.x. Besides, we provide support only for ABP Framework and ABP related issues. That means no support is given for the 3rd party applications, cloud services and other peripheral libraries used by ABP products. We will use commercially reasonable efforts to provide our customers with technical support during \"Volosoft Bilisim A.S\"s official business hours. On the other hand, we do not commit to a service-level agreement (SLA) response time, but we will try to respond to the technical issues as quickly as possible within our official working hours. Unless a special agreement is made with the customer, we only provide support at https://support.abp.io. We also have private email support, which is only available to Enterprise License holders.", + "SupportPolicyFaqExplanation": "We do support only the active and the previous major version. We do not guarantee a patch release for the 3rd and older major versions. For example, if the active version is 7.0.0, we will release patch releases for both 6.x.x and 7.x.x. Besides, we provide support only for ABP Framework and ABP Commercial related issues. That means no support is given for the 3rd party applications, cloud services and other peripheral libraries used by ABP products. We will use commercially reasonable efforts to provide our customers with technical support during \"Volosoft Bilisim A.S\"s official business hours. On the other hand, we do not commit to a service-level agreement (SLA) response time, but we will try to respond to the technical issues as quickly as possible within our official working hours. Unless a special agreement is made with the customer, we only provide support at https://abp.io/support/questions. We also have private email support, which is only available to Enterprise License holders.", "TotalDevelopers": "Total {0} developer(s)", "CustomPurchaseExplanation": "Tailored to your specific needs", "WhereDidYouHearAboutUs": "Where did you hear about us?", @@ -832,9 +832,7 @@ "WhyUseAbpIoPlatform": "Why should I use the ABP.IO Platform instead of creating a new solution from scratch?", "WhyUseAbpIoPlatformFaqExplanation": "See that page for a detailed explanation of why using ABP.IO Platform has a significant advantage over doing everything yourself.", "EulaPageTitle": "End User License Agreement (EULA)", - "EulaPageDescription": "Review ABP's End User License Agreement (EULA) to understand the terms and conditions to use our software, including rights, restrictions, obligations.", - "PrivacyPolicyPageTitle": "Privacy Policy | Cookie Policy", - "PrivacyPolicyPageDescription": "Discover how ABP ensures your privacy and protection. Learn about our commitment to safeguarding your information and the measures we take to secure data.", + "PrivacyPolicyPageTitle": "Privacy Policy - Cookie Policy", "TermsConditionsPageTitle": "Terms and Conditions", "TrainingsPageTitle": "ABP Training Packages", "ModulesPageTitle": "ABP Pre-Built Application Modules", @@ -847,11 +845,11 @@ "BlazoriseSupportExplanation1": "Sign up for a new account at blazorise.com/support/register with the same email address as your abp.io account. Leave the \"License Key\" entry blank. It must be the same email address as your email account on abp.io.", "BlazoriseSupportExplanation2": "Verify your email address by checking your email box. Check your spam box if you don't see an email in your inbox!", "BlazoriseSupportExplanation3": "Log into the Blazorise support website at blazorise.com/support/login.", - "BlazoriseSupportExplanation4": "If you have an active ABP Paid License, you will also have a Blazorise PRO license. You can get your Blazorise license key at blazorise.com/support/user/manage/license.", + "BlazoriseSupportExplanation4": "If you have an active ABP Commercial license, you will also have a Blazorise PRO license. You can get your Blazorise license key at blazorise.com/support/user/manage/license.", "BlazoriseSupportExplanation5": "You can post your questions on the support website and generate a product token for your application.", "AbpLiveTrainingPackages": "ABP Live Training Packages", "Releases": "Releases", - "ReleasesDescription": "This page contains detailed information about each release. You can see all the closed pull requests for a specific release. For overall milestone developments, you can check out the brief release notes page.", + "ReleasesDescription": "This page contains detailed information about each release. You can see all the closed pull requests for a specific release. For overall milestone developments, you can check out the brief release notes page.", "ReleaseDate": "Release Date", "Labels": "Labels", "PreRelease": "Pre-release", @@ -888,8 +886,8 @@ "DevelopYourSolution_Description1": "ABP’s infrastructure makes you focus on your own business code by automating the repetitive work and providing pre-built infrastructure and application features.", "DevelopYourSolution_Description2": "In the following code block, you can see how the ABP Framework seamlessly integrates into your code and automates the repetitive tasks for you.", "DevelopYourSolution_Description3": "Even in this shortcode block, ABP does a lot of things for you.", - "DevelopYourSolution_Description4": "It provides base classes to apply conventions, like \n dependency injection. Generic \n repository services provide a convenient \n way to interact with the database. Declarative \n authorization works with a fine-tuned permission system.", - "DevelopYourSolution_Description5": "ABP completely automates \n unit of work (for database connection and transaction management), \n exception handling, \n validation\n and audit logging. It provides many more building blocks to simplify your daily development tasks and focus on your own code while creating production-ready \n applications.", + "DevelopYourSolution_Description4": "It provides base classes to apply conventions, like \n dependency injection. Generic \n repository services provide a convenient \n way to interact with the database. Declarative \n authorization works with a fine-tuned permission system.", + "DevelopYourSolution_Description5": "ABP completely automates \n unit of work (for database connection and transaction management), \n exception handling, \n validation\n and audit logging. It provides many more building blocks to simplify your daily development tasks and focus on your own code while creating production-ready \n applications.", "DevelopYourSolution_Description6": "You can imagine how much that code block can be long and complicated if you would do it all manually.", "SuiteCrudGenerationInFewSeconds": "In addition to hand coding your solution, you can create fully working advanced CRUD pages in a few minutes using the ABP Suite tooling. It generates the code into your solution, so you can fine-tune it based on your custom requirements.", "DeployAnywhere_Description1": "At the end of the day, you have a pure .NET solution. You can deploy your solution to your own server, to a cloud platform, to Kubernetes or anywhere you want. You can deploy to as many servers as you want. ABP is a deployment environment agnostic tool.", @@ -909,7 +907,7 @@ "ReleaseLogs_Pr": "Pull Request #{0} - {1}", "NoLabels": "No labels", "DoesTheSubscriptionRenewAutomatically": "Does the subscription renew automatically?", - "DoesTheSubscriptionRenewAutomaticallyExplanation": "ABP.IO platform does not have an auto-renewal billing model. Therefore your subscription will not be automatically renewed at the end of your license period. If you want to continue to have the benefits of ABP.IO platform, you need to manually renew it at the organization management page. If you have multiple organizations, click the \"Manage\" button at your expiring organization and then click the \"Extend Now\" button to renew your license. You may also want to take a look at the What Happens When My License Ends? section.", + "DoesTheSubscriptionRenewAutomaticallyExplanation": "The ABP does not have an auto-renewal billing model. Therefore your subscription will not be automatically renewed at the end of your license period. If you want to continue to have the benefits of ABP, you need to manually renew it at the organization management page. If you have multiple organizations, click the \"Manage\" button at your expiring organization and then click the \"Extend Now\" button to renew your license. You may also want to take a look at the What Happens When My License Ends? section.", "DoesTheSubscriptionRenewAutomaticallyExplanationAutoRenewal": "ABP allows you to auto-renew your license. This is an optional service. You can toggle this feature when you purchase a new license or later enable it from your organization management page. Auto-renewal toggle is in the 'Payments Method' section of the organization management page. If you want to turn off auto-renewal, visit organization management page, go to the 'Payments Method' section and uncheck the 'Automatic Renewal' checkbox. When you turn off the auto-renewal feature, you must renew your license yourself.", "ExtraQuestionCreditsFaqTitle": "Can I purchase extra support question credits?", "ExtraQuestionCreditsFaqExplanation": "Yes, you can. To buy extra question credits, send an e-mail to info@abp.io with your organization's name. Here's the price list for the extra question credits:
  • 50 questions pack $999
  • 25 questions pack $625
  • 15 questions pack $450
", @@ -947,9 +945,9 @@ "PricingExplanation2": "30 days money back guarantee — Learn more", "MoneyBackGuaranteeText": "* 30-day money-back guarantee on all licenses! 100% refund on Team, 60% refund on Business and Enterprise licenses within 30 days.", "MobileApplicationStartupTemplates": "Mobile Application Startup Templates", - "MobileApplicationStartupTemplates_Description1": "Integrated mobile application startup templates for your ABP solutions.", + "MobileApplicationStartupTemplates_Description1": "Integrated mobile application startup templates for your ABP Commercial solutions.", "CreatePowerfulLineOfBusinessApplicationsUsingABPMobileStartupTemplates": "Create Powerful line-of-business Applications using ABP Mobile Startup Templates", - "CreatePowerfulLineOfBusinessApplicationsUsingABPMobileStartupTemplates_Description1": "ABP provides two mobile application startup templates implemented with React Native and .NET MAUI. When you create your new ABP-based solution, you will also have basic startup applications connected to your backend APIs.", + "CreatePowerfulLineOfBusinessApplicationsUsingABPMobileStartupTemplates_Description1": "ABP Commercial provides two mobile application startup templates implemented with React Native and .NET MAUI. When you create your new ABP-based solution, you will also have basic startup applications connected to your backend APIs.", "CreatePowerfulLineOfBusinessApplicationsUsingABPMobileStartupTemplates_Description2": "The application has a pre-built authentication token cycle, multi-language support, multi-tenancy support, login, forgot password, profile management and a user management page. You can add your own business logic and customize it based on your requirements.", "TwoFrameworkOptions": "Two Framework Options", "TwoFrameworkOptions_Description": "ABP provides both React Native and .NET MAUI mobile startup templates. This way, you can choose the one that best suits your needs. Both apps reuse code at the highest rate between iOS and Android platforms.", @@ -1006,14 +1004,14 @@ "CreatingAnEmptySolution_THEPROBLEM_Description4": "How do you integrate to 3rd-party libraries?", "CreatingAnEmptySolution_THEPROBLEM_Description5": "How to set up automated tests?", "ABPSOLUTION": "ABP SOLUTION", - "CreatingAnEmptySolution_ABPSOLUTION_Description": "ABP provides a well-architected, layered and production-ready startup solution based on the Domain Driven Design principles. The solution also includes a pre-configured unit and integration test projects for each layer.", + "CreatingAnEmptySolution_ABPSOLUTION_Description": "ABP provides a well-architected, layered and production-ready startup solution based on the Domain Driven Design principles. The solution also includes a pre-configured unit and integration test projects for each layer.", "CommonLibraries": "Common Libraries", "CommonLibraries_THEPROBLEM_Description": "Which libraries should you use to implement common requirements? The software development ecosystem is highly dynamic, making it challenging to keep up with the latest tools, libraries, trends, and approaches.", "CommonLibraries_ABPSOLUTION_Description": "ABP pre-integrates popular, mature, and up-to-date libraries into the solution. You don't need to spend time integrating them or making them communicate with each other. They work properly out of the box.", "UITheme&Layout": "UI Theme & Layout", "UITheme&Layout_THEPROBLEM_Description": "When addressing UI concerns, a range of challenges surfaces. These include establishing the groundwork for a responsive, contemporary, and adaptable UI kit with a consistent appearance and a host of features like navigation menus, headers, toolbars, footers, widgets, and more.", "UITheme&Layout_THEPROBLEM_Description2": "Even if you opt for a pre-designed theme, seamlessly integrating it into your project could demand days of development. An additional hurdle lies in upgrading such themes. Frequently, the theme's HTML/CSS structure becomes intertwined with your UI code, rendering future theme changes or upgrades intricate tasks. This interweaving of code and design complicates the flexibility of making adjustments down the line.", - "UITheme&Layout_ABPSOLUTION_Description": "ABP Framework offers a distinctive theming system that liberates your UI code from theme constraints. Themes exist in isolation, packaged as NuGet or NPM packages, making theme installation or upgrades a matter of minutes. While you retain the option to develop your custom theme or integrate an existing one, ABP presents a collection of polished and contemporary themes.", + "UITheme&Layout_ABPSOLUTION_Description": "ABP Framework offers a distinctive theming system that liberates your UI code from theme constraints. Themes exist in isolation, packaged as NuGet or NPM packages, making theme installation or upgrades a matter of minutes. While you retain the option to develop your custom theme or integrate an existing one, ABP Commercial presents a collection of polished and contemporary themes.", "UITheme&Layout_ABPSOLUTION_Description2": "Additionally, there are UI component providers like Telerik and DevExpress. However, these providers primarily furnish individual components, placing the onus on you to establish your layout system. When working within ABP-based projects, you can seamlessly incorporate these libraries, similar to how you would in any other project.", "TestInfrastructure": "Test Infrastructure", "TestInfrastructure_THEPROBLEM_Description": "Establishing a robust testing environment is a time-consuming endeavor. It involves setting up dedicated test projects within your solution, carefully selecting the necessary tools, creating service and database mocks, crafting essential base classes and utility services to minimize redundant code across tests, and addressing various related tasks.", @@ -1024,7 +1022,7 @@ "KeepingYourSolutionUpToDate": "Keeping Your Solution Up to Date", "KeepingYourSolutionUpToDate_THEPROBLEM_Description": "After you start your development, you must keep track of the new versions of the libraries you use for upgrades & patches.", "KeepingYourSolutionUpToDate_ABPSOLUTION_Description": "We regularly update all packages to the latest versions and test them before the stable release. When you update the ABP Framework, all its dependencies are upgraded to edge technology.", - "KeepingYourSolutionUpToDate_ABPSOLUTION_Description2": "Abp update CLI command automatically discovers and upgrades all ABP-dependant NuGet and NPM packages in a solution. With ABP, it is easier to stay with the latest versions.", + "KeepingYourSolutionUpToDate_ABPSOLUTION_Description2": "Abp update CLI command automatically discovers and upgrades all ABP-dependant NuGet and NPM packages in a solution. With ABP, it is easier to stay with the latest versions.", "DRY": "Don't Repeat Yourself!", "DRY_Description": "Creating a base solution takes significant time and requires good architectural experience. However, this is just the beginning! As you start developing, you will likely have to write lots of repetitive code; that would be great if all this could be handled automatically.", "DRY_Description2": "ABP automates and simplifies repeating code as much as possible by following the convention over configuration principle. However, it doesn't restrict you when you need to switch to manual gear. The control is always in your hands.", @@ -1065,15 +1063,15 @@ "Modularity_THEPROBLEM_Description": "Building a truly modular system is not easy! All the aspects of the system (database, entities, APIs, UI pages/components) can be split into modules, and each module can be re-usable without others. The plain ASP.NET Core doesn't provide such a modular architecture. If you need it, you should think about it from scratch.", "Modularity_ABPSOLUTION_Description": "The ABP Framework is born to be a modular application development structure. Every feature in the framework is developed to be compatible with modularity. Documentation and guides explain how to develop re-usable modules in a standard way.", "SaaSMultiTenancy": "SaaS / Multi-Tenancy", - "SaaSMultiTenancy_THEPROBLEM_Description": "Multi-Tenancy is a common way to implement SaaS systems. However, implementing a consistent multi-tenant infrastructure may become complicated.", + "SaaSMultiTenancy_THEPROBLEM_Description": "Multi-Tenancy is a common way to implement SaaS systems. However, implementing a consistent multi-tenant infrastructure may become complicated.", "SaaSMultiTenancy_ABPSOLUTION_Description": "ABP Framework provides a complete multi-tenant infrastructure and abstract complexity from your business code. Your application code will be mostly multi-tenancy aware, while the ABP Framework automatically isolates the database, cache and other details of the tenants from each other. It supports single database, per tenant database and hybrid approaches. It properly configures the libraries like Microsoft Identity and OpenIddict, which are not normally multi-tenancy compatible.", "Microservices": "Microservices", "Microservices_THEPROBLEM_Description": "Building a microservice system requires many infrastructure details: Authenticating and authorizing applications and microservices and implementing asynchronous messaging and synchronous (Rest/GRPC) communication patterns between microservices are the most fundamental issues.", - "Microservices_ABPSOLUTION_Description": "The ABP Framework provides services, guides, and samples to help you implement your microservice solution using the industry standard tools.", - "Microservices_ABPSOLUTION_Description2": "ABP commercial version even goes one step further and provides a complete startup template to kick-start your microservice solution.", + "Microservices_ABPSOLUTION_Description": "The ABP Framework provides services, guides, and samples to help you implement your microservice solution using the industry standard tools.", + "Microservices_ABPSOLUTION_Description2": "ABP Commercial even goes one step further and provides a complete startup template to kick-start your microservice solution.", "PreBuiltModules": "Pre-Built Modules", "PreBuiltModules_THEPROBLEM_Description": "All of us have similar but slightly different business requirements. However, we all should re-invent the wheel since no one's code can directly work in our solution. They are all embedded parts of a larger solution.", - "PreBuiltModules_ABPSOLUTION_Description": "ABP modules provides a lot of re-usable application modules like payment, chat, file management, audit log reporting... etc. All of these modules are easily installed into your solution and directly work. We are constantly adding more modules.", + "PreBuiltModules_ABPSOLUTION_Description": "ABP Commercial modules provides a lot of re-usable application modules like payment, chat, file management, audit log reporting... etc. All of these modules are easily installed into your solution and directly work. We are constantly adding more modules.", "PreBuiltModules_ABPSOLUTION_Description2": "All modules are designed as customizable for your business requirements. If you need complete control, you can download the full source code of any module and completely customize based on your specific business requirements.", "ABPCommunity": "ABP Community", "ABPCommunity_Description": "Finally, Being in a big community where everyone follows similar coding styles and principles and shares a common infrastructure brings power when you have troubles or need help with design decisions. Since we write code similarly, we can help each other much better. ABP is a community-backed project with more than 10K stars on GitHub.", @@ -1129,13 +1127,13 @@ "CardAlias": "Card Alias (Optional)", "AbpDoesNotSaveYourPaymentDetails_Description": "The payment data will be saved in {2} security vaults and you can remove stored data anytime. Enabling auto-renewal ensures that your ABP subscription will automatically renew prior to expiration, providing a valid credit card. Disabling auto-renewal means you will have to renew your subscription manually. To continue your project development without interruption, we suggest you enable the Auto-Renewal option.", "AddBillingInformation": "Add Billing Information", - "YouHaveNoCardsSaved": "Card not saved yet.", + "YouHaveNoCardsSaved": "You have no cards saved.", "CreateCreditCardModal_BillingDetails_Description": "You must save your billing details to be able to add your credit card.", "TaxNo": "Tax No", "CardNumber": "Card Number", "NameOnCard": "Name on Card", "BillingDetails": "Billing Details", - "ThereIsNoDeveloper": "No developer added.", + "ThereIsNoDeveloper": "There is no developer.", "CardDetails": "Debit/Credit Card Details", "YearCantBeNull": "Year field cannot be empty.", "CardHolderName": "Name on Card", @@ -1182,7 +1180,7 @@ "ReturnOfInvestmentPageAbout": "This page covers the fundamental steps of developing a software solution and explains how the ABP.IO Platform reduces your development costs at each step.", "LearnMore": "Learn More", "ReturnOfInvestment": "Return of Investment", - "ReturnOfInvestment_Description": "Learn about the return on investment when using ABP Framework, highlighting cost-effectiveness and efficiency.", + "ReturnOfInvestment_Description": "Learn how to reduce your development costs by more than %50.", "Previous": "Previous", "PricingDiscount": "Save", "PricingTeamTitle": "Team", @@ -1210,7 +1208,7 @@ "Application{0}": "Application {0}", "PreBuiltApplicationModulesTitle": "Pre-Built Application Modules", "RegisterDemo": "Register", - "TrainingDescription": "We are offering the following training packages for who want to get expertise on ABP.", + "TrainingDescription": "We are offering the following training packages for who want to get expertise on the ABP Framework and the ABP.", "PurchaseDevelopers": "developers", "LinkExpiredMessage": "The payment link has expired! Contact us at sales@volosoft.com to update the link or click here to navigate to the contact page." diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/es.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/es.json index da6b73e5f8..8d68f0c60f 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/es.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/es.json @@ -96,7 +96,7 @@ "TextTemplateManagement": "Gestión de plantillas de texto", "See All Modules": "Ver todos los módulos", "ABPSuite": "Suite ABP", - "AbpSuiteShortDescription": "ABP Suite es una herramienta complementaria a ABP Commercial.", + "AbpSuiteShortDescription": "ABP Suite es una herramienta complementaria a ABP.", "AbpSuiteExplanation": "Te permite crear páginas web en cuestión de minutos. Es una herramienta global de .NET Core que se puede instalar desde la línea de comandos. Puede crear una nueva solución ABP, generar páginas CRUD desde la base de datos al front-end.", "Details": "Detalles", "LeptonTheme": "Tema de Lepton", @@ -382,7 +382,7 @@ "TrialLicenseExpireMessage": "Está utilizando la licencia de prueba y su licencia de prueba caducará el {0}.", "TryForFree": "Prueba gratis", "TrialLicenseExpiredInfo": "¡Su período de licencia de prueba ha expirado!", - "CommercialNewsletterConfirmationMessage": "Acepto los Términos y condiciones y la Política de privacidad .", + "CommercialNewsletterConfirmationMessage": "Acepto los Términos y condiciones y la Política de privacidad .", "ContinueWithNewOrganization": "Continuar con una nueva organización", "RenewLicenseEarly": "Si renuevo mi licencia antes, ¿obtendré el año completo?", "RenewLicenseEarylExplanation": "Cuando renueve su licencia antes de la fecha de vencimiento de su licencia, se agregará 1 año a la fecha de vencimiento de su licencia. Por ejemplo, si su licencia vence el {0} -06-06 y la renueva el {0} -01-01, la fecha de vencimiento de su nueva licencia será {1} -06-06.", diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/fi.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/fi.json index 6e7713a84f..8a85358884 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/fi.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/fi.json @@ -718,7 +718,7 @@ "Landing_Page_DocsModuleDescription_9": "GitHub-lähteen lisäksi mahdollistaa tavallisen kansion käytön dokumentaatiolähteenä.", "Landing_Page_FileManagementModuleDescription_1": "Lataa, lataa ja järjestä tiedostoja hierarkkisessa kansiorakenteessa.", "Landing_Page_FileManagementModuleDescription_2": "Tätä moduulia käytetään tiedostojen lataamiseen, lataamiseen ja järjestämiseen hierarkkisessa kansiorakenteessa. Se on myös yhteensopiva usean vuokrauksen kanssa, ja voit määrittää vuokralaisten kokonaiskokorajan.", - "Landing_Page_FileManagementModuleDescription_3": "Tämä moduuli perustuu BLOB-tallennusjärjestelmään, joten se voi käyttää eri tallennuspalveluita tiedoston sisällön tallentamiseen.", + "Landing_Page_FileManagementModuleDescription_3": "Tämä moduuli perustuu BLOB-tallennusjärjestelmään, joten se voi käyttää eri tallennuspalveluita tiedoston sisällön tallentamiseen.", "Landing_Page_IdentityModuleDescription_1": "Tämä moduuli toteuttaa sovelluksen käyttäjä- ja roolijärjestelmän;", "Landing_Page_IdentityModuleDescription_2": "Luotu käyttäen Microsoftin ASP.NET Core Identity -kirjastoa.", "Landing_Page_IdentityModuleDescription_3": "Hallinnoi rooleja ja käyttäjiä järjestelmässä. Käyttäjällä voi olla useita rooleja.", @@ -734,7 +734,7 @@ "Landing_Page_PaymentModuleDescription_1": "Tarjoaa integroinnin eri maksuyhdyskäytäville.", "Landing_Page_PaymentModuleDescription_2": "Tämä moduuli integroi maksuyhdyskäytäviä, joten saat helposti maksuja asiakkailtasi.", "Landing_Page_PaymentModuleDescription_3": "Tämä moduuli tukee seuraavia maksuyhdyskäytäviä", - "Welcome_Page_UseSameCredentialForCommercialWebsites": "Käytä samoja kirjautumistietoja sekä commercial.abp.io- että support.abp.io.", + "Welcome_Page_UseSameCredentialForCommercialWebsites": "Käytä samoja kirjautumistietoja sekä commercial.abp.io- että support.abp.io.", "WatchCrudPagesVideo": "Katso \"CRUD-sivujen luominen ABP Suiten avulla\" -video!", "WatchGeneratingFromDatabaseVideo": "Katso \"ABP Suite: CRUD-sivujen luominen olemassa olevista tietokantataulukoista\" -video!", "WatchTakeCloserLookVideo": "Katso \"Katso tarkemmin koodin sukupolvea: ABP Suite\" -video!", @@ -809,7 +809,7 @@ "UpgradePaymentInfoSection_LicenseRenewalPrice": "Lisenssin uusiminen", "Total": "Kaikki yhteensä", "SupportPolicyFaqTitle": "Mikä on tukipolitiikkanne?", - "SupportPolicyFaqExplanation": "Tuemme vain aktiivista ja edellistä pääversiota. Emme takaa korjausjulkaisua 3. ja vanhemmille pääversioille. Jos aktiivinen versio on esimerkiksi 7.0.0, julkaisemme korjaustiedostoja sekä versioista 6.x.x että 7.x.x. Lisäksi tarjoamme tukea vain ABP Frameworkiin ja ABP Commercialiin liittyville ongelmille. Tämä tarkoittaa, että tukea ei anneta kolmannen osapuolen sovelluksille, pilvipalveluille ja muille ABP-tuotteiden käyttämille oheiskirjastoille. Käytämme kaupallisesti kohtuullisia keinoja tarjotaksemme asiakkaillemme teknistä tukea \"Volosoft Bilisim A.S\"-yhtiön virallisina työaikoina. Toisaalta emme sitoudu palvelutasosopimuksen (SLA) mukaiseen vastausaikaan, mutta pyrimme vastaamaan teknisiin ongelmiin mahdollisimman nopeasti virallisten työaikojemme puitteissa. Ellei asiakkaan kanssa ole tehty erityistä sopimusta, tarjoamme tukea vain osoitteessa https://support.abp.io. Meillä on myös yksityinen sähköpostituki, joka on vain Enterprise-lisenssin haltijoiden käytettävissä.", + "SupportPolicyFaqExplanation": "Tuemme vain aktiivista ja edellistä pääversiota. Emme takaa korjausjulkaisua 3. ja vanhemmille pääversioille. Jos aktiivinen versio on esimerkiksi 7.0.0, julkaisemme korjaustiedostoja sekä versioista 6.x.x että 7.x.x. Lisäksi tarjoamme tukea vain ABP Frameworkiin ja ABP Commercialiin liittyville ongelmille. Tämä tarkoittaa, että tukea ei anneta kolmannen osapuolen sovelluksille, pilvipalveluille ja muille ABP-tuotteiden käyttämille oheiskirjastoille. Käytämme kaupallisesti kohtuullisia keinoja tarjotaksemme asiakkaillemme teknistä tukea \"Volosoft Bilisim A.S\"-yhtiön virallisina työaikoina. Toisaalta emme sitoudu palvelutasosopimuksen (SLA) mukaiseen vastausaikaan, mutta pyrimme vastaamaan teknisiin ongelmiin mahdollisimman nopeasti virallisten työaikojemme puitteissa. Ellei asiakkaan kanssa ole tehty erityistä sopimusta, tarjoamme tukea vain osoitteessa https://abp.io/support/questions. Meillä on myös yksityinen sähköpostituki, joka on vain Enterprise-lisenssin haltijoiden käytettävissä.", "TotalDevelopers": "Yhteensä {0} kehittäjää", "CustomPurchaseExplanation": "Räätälöity sinun tarpeidesi mukaan", "WhereDidYouHearAboutUs": "Mistä kuulit meistä?", @@ -827,7 +827,7 @@ "ExpirationDate": "Viimeinen käyttöpäivä", "SpringCampaignDiscount": "Kevään kampanja-alennus", "WhyUseAbpIoPlatform": "Miksi minun pitäisi käyttää ABP.IO-alustaa sen sijaan, että luon uuden ratkaisun tyhjästä?", - "WhyUseAbpIoPlatformFaqExplanation": "Katso kyseisestä asiakirjasta yksityiskohtainen selitys siitä, miksi ABP.IO Platformin käyttäminen on huomattavasti edullisempaa kuin kaiken tekeminen itse.", + "WhyUseAbpIoPlatformFaqExplanation": "Katso kyseisestä asiakirjasta yksityiskohtainen selitys siitä, miksi ABP.IO Platformin käyttäminen on huomattavasti edullisempaa kuin kaiken tekeminen itse.", "MultipleOrganizationInfo": "Katso kaikki organisaatiosi", "PaymentFailedInfo": "Anteeksi, maksu epäonnistui! ", "UsedPayment": "Tämä maksu on jo käytetty", diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/fr.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/fr.json index 9f597be12c..998d0d9129 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/fr.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/fr.json @@ -382,7 +382,7 @@ "TrialLicenseExpireMessage": "Vous utilisez la licence d'essai et votre licence d'essai expirera le {0}.", "TryForFree": "Essayer gratuitement", "TrialLicenseExpiredInfo": "Votre période de licence d'essai a expiré !", - "CommercialNewsletterConfirmationMessage": "J'accepte les Conditions générales et la Politique de confidentialité .", + "CommercialNewsletterConfirmationMessage": "J'accepte les Conditions générales et la Politique de confidentialité .", "ContinueWithNewOrganization": "Continuer avec une nouvelle organisation", "RenewLicenseEarly": "Si je renouvelle ma licence plus tôt, obtiendrai-je l'année complète ?", "RenewLicenseEarylExplanation": "Lorsque vous renouvelez votre licence avant la date d'expiration de votre licence, 1 an sera ajouté à la date d'expiration de votre licence. Par exemple, si votre licence expire le {0}-06-06 et que vous la renouvelez le {0}-01-01, la nouvelle date d'expiration de votre licence sera le {1}-06-06.", @@ -391,7 +391,7 @@ "OnboardingTrainingFaqTitle": "Avez-vous une formation d'accueil ABP ?", "OnboardingTrainingFaqExplanation": "Oui, nous avons des services de formation ABP pour vous aider à démarrer rapidement votre projet ABP. Vous en apprendrez plus sur l'ABP auprès d'un membre de l'équipe principale d'ABP et vous acquerrez les compétences nécessaires pour commencer votre projet ABP. Dans la formation d'intégration, nous vous expliquerons comment configurer votre environnement de développement, installer les outils requis, créer une page CRUD entièrement fonctionnelle. La formation sera en direct et l'application Zoom sera utilisée, et nous sommes ouverts à l'utilisation d'autres plateformes de réunion en ligne. La langue de la formation sera l'anglais. Vous pouvez également poser vos questions sur l'ABP pendant les séances. Une heure et une date convenables seront prévues pour les deux parties. Pour obtenir plus d'informations, contactez-nous à info@abp.io.", "SupportPolicyFaqTitle": "Quelle est votre politique de soutien ?", - "SupportPolicyFaqExplanation": "Nous ne prenons en charge que la version active et la version majeure précédente. Nous ne garantissons pas la publication d'un correctif pour la troisième version majeure et la version majeure antérieure. Par exemple, si la version active est 7.0.0, nous publierons des correctifs pour les versions 6.x.x et 7.x.x. En outre, nous n'assurons le support que pour les problèmes liés à ABP Framework et ABP Commercial. Cela signifie qu'aucun support n'est fourni pour les applications tierces, les services cloud et les autres bibliothèques périphériques utilisées par les produits ABP. Nous ferons des efforts commercialement raisonnables pour fournir à nos clients une assistance technique pendant les heures de bureau officielles de \"Volosoft Bilisim A.S\". D'autre part, nous ne nous engageons pas à respecter un accord de niveau de service (SLA) sur le temps de réponse, mais nous essaierons de répondre aux problèmes techniques aussi rapidement que possible pendant nos heures de travail officielles. Sauf accord spécial avec le client, nous ne fournissons une assistance qu'à l'adresse https://support.abp.io. Nous disposons également d'une assistance privée par courrier électronique, qui n'est accessible qu'aux détenteurs d'une licence d'entreprise.", + "SupportPolicyFaqExplanation": "Nous ne prenons en charge que la version active et la version majeure précédente. Nous ne garantissons pas la publication d'un correctif pour la troisième version majeure et la version majeure antérieure. Par exemple, si la version active est 7.0.0, nous publierons des correctifs pour les versions 6.x.x et 7.x.x. En outre, nous n'assurons le support que pour les problèmes liés à ABP Framework et ABP Commercial. Cela signifie qu'aucun support n'est fourni pour les applications tierces, les services cloud et les autres bibliothèques périphériques utilisées par les produits ABP. Nous ferons des efforts commercialement raisonnables pour fournir à nos clients une assistance technique pendant les heures de bureau officielles de \"Volosoft Bilisim A.S\". D'autre part, nous ne nous engageons pas à respecter un accord de niveau de service (SLA) sur le temps de réponse, mais nous essaierons de répondre aux problèmes techniques aussi rapidement que possible pendant nos heures de travail officielles. Sauf accord spécial avec le client, nous ne fournissons une assistance qu'à l'adresse https://abp.io/support/questions. Nous disposons également d'une assistance privée par courrier électronique, qui n'est accessible qu'aux détenteurs d'une licence d'entreprise.", "DowngradeLicensePlan": "Puis-je passer à un plan de licence inférieur à l'avenir ?", "DowngradeLicensePlanExplanation": "Vous ne pouvez pas rétrograder votre plan de licence existant. Mais vous pouvez acheter un nouveau plan de licence inférieur et continuer votre développement sur la nouvelle licence. Après avoir acheté une licence inférieure, il vous suffit de vous connecter à votre nouveau plan de licence via la commande CLI d'ABP : ` abp login -o `.", "LicenseTransfer": "Une licence peut-elle être transférée d'un développeur à un autre ?", diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/hi.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/hi.json index 8ed7a3dd2a..3adb4d3108 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/hi.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/hi.json @@ -382,13 +382,13 @@ "TrialLicenseExpireMessage": "आप परीक्षण लाइसेंस का उपयोग कर रहे हैं और आपका परीक्षण लाइसेंस {0} को समाप्त हो जाएगा।", "TryForFree": "मुफ्त में आजमाइये", "TrialLicenseExpiredInfo": "आपके परीक्षण लाइसेंस की अवधि समाप्त हो गई है!", - "CommercialNewsletterConfirmationMessage": "मैं नियम और शर्तों और गोपनीयता नीति से सहमत हूं .", + "CommercialNewsletterConfirmationMessage": "मैं नियम और शर्तों और गोपनीयता नीति से सहमत हूं .", "discountForYears": "{1}वर्ष(वर्षों) के लिए {0}% छूट", "BlackFridayDiscount": "ब्लैक फ्राइडे छूट", "OnboardingTrainingFaqTitle": "क्या आपके पास एबीपी ऑनबोर्डिंग प्रशिक्षण है?", "OnboardingTrainingFaqExplanation": "हां, आपके एबीपी प्रोजेक्ट को तेजी से शुरू करने में आपकी मदद करने के लिए हमारे पास एबीपी प्रशिक्षण सेवाएं हैं। आप ABP कोर टीम के सदस्य से ABP के बारे में जानेंगे और आपको अपना ABP प्रोजेक्ट शुरू करने का कौशल प्राप्त होगा। ऑनबोर्डिंग प्रशिक्षण में, हम समझाएंगे कि अपने विकास के माहौल को कैसे स्थापित करें, आवश्यक उपकरण कैसे स्थापित करें, पूरी तरह कार्यात्मक CRUD पेज कैसे बनाएं। प्रशिक्षण लाइव होगा और जूम एप्लिकेशन का उपयोग किया जाएगा, और हम अन्य ऑनलाइन मीटिंग प्लेटफॉर्म का उपयोग करने के लिए तैयार हैं। प्रशिक्षण की भाषा अंग्रेजी होगी। आप सत्रों के दौरान ABP के बारे में अपने प्रश्न भी पूछ सकते हैं। दोनों पक्षों के लिए एक सुविधाजनक समय और तारीख की योजना बनाई जाएगी। अधिक जानकारी प्राप्त करने के लिए, info@abp.io पर हमसे संपर्क करें।", "SupportPolicyFaqTitle": "आपकी समर्थन नीति क्या है?", - "SupportPolicyFaqExplanation": "हम केवल सक्रिय और पिछले प्रमुख संस्करण का समर्थन करते हैं। हम तीसरे और पुराने प्रमुख संस्करणों के लिए पैच रिलीज़ की गारंटी नहीं देते हैं। उदाहरण के लिए, यदि सक्रिय संस्करण 7.0.0 है, तो हम 6.x.x और 7.x.x दोनों के लिए पैच रिलीज़ जारी करेंगे। इसके अलावा, हम केवल ABP फ्रेमवर्क और ABP कमर्शियल संबंधित मुद्दों के लिए समर्थन प्रदान करते हैं। इसका मतलब है कि तीसरे पक्ष के अनुप्रयोगों, क्लाउड सेवाओं और एबीपी उत्पादों द्वारा उपयोग किए जाने वाले अन्य परिधीय पुस्तकालयों के लिए कोई समर्थन नहीं दिया गया है। हम अपने ग्राहकों को \"Volosoft Bilisim A.S\" के आधिकारिक व्यावसायिक घंटों के दौरान तकनीकी सहायता प्रदान करने के लिए व्यावसायिक रूप से उचित प्रयासों का उपयोग करेंगे। दूसरी ओर, हम सर्विस-लेवल एग्रीमेंट (SLA) प्रतिक्रिया समय के लिए प्रतिबद्ध नहीं हैं, लेकिन हम अपने आधिकारिक कामकाजी घंटों के भीतर जितनी जल्दी हो सके तकनीकी मुद्दों पर प्रतिक्रिया देने का प्रयास करेंगे। जब तक ग्राहक के साथ कोई विशेष समझौता नहीं किया जाता है, हम केवल https://support.abp.io पर सहायता प्रदान करते हैं। हमारे पास निजी ईमेल समर्थन भी है, जो केवल एंटरप्राइज़ लाइसेंस धारकों के लिए उपलब्ध है।", + "SupportPolicyFaqExplanation": "हम केवल सक्रिय और पिछले प्रमुख संस्करण का समर्थन करते हैं। हम तीसरे और पुराने प्रमुख संस्करणों के लिए पैच रिलीज़ की गारंटी नहीं देते हैं। उदाहरण के लिए, यदि सक्रिय संस्करण 7.0.0 है, तो हम 6.x.x और 7.x.x दोनों के लिए पैच रिलीज़ जारी करेंगे। इसके अलावा, हम केवल ABP फ्रेमवर्क और ABP कमर्शियल संबंधित मुद्दों के लिए समर्थन प्रदान करते हैं। इसका मतलब है कि तीसरे पक्ष के अनुप्रयोगों, क्लाउड सेवाओं और एबीपी उत्पादों द्वारा उपयोग किए जाने वाले अन्य परिधीय पुस्तकालयों के लिए कोई समर्थन नहीं दिया गया है। हम अपने ग्राहकों को \"Volosoft Bilisim A.S\" के आधिकारिक व्यावसायिक घंटों के दौरान तकनीकी सहायता प्रदान करने के लिए व्यावसायिक रूप से उचित प्रयासों का उपयोग करेंगे। दूसरी ओर, हम सर्विस-लेवल एग्रीमेंट (SLA) प्रतिक्रिया समय के लिए प्रतिबद्ध नहीं हैं, लेकिन हम अपने आधिकारिक कामकाजी घंटों के भीतर जितनी जल्दी हो सके तकनीकी मुद्दों पर प्रतिक्रिया देने का प्रयास करेंगे। जब तक ग्राहक के साथ कोई विशेष समझौता नहीं किया जाता है, हम केवल https://abp.io/support/questions पर सहायता प्रदान करते हैं। हमारे पास निजी ईमेल समर्थन भी है, जो केवल एंटरप्राइज़ लाइसेंस धारकों के लिए उपलब्ध है।", "DowngradeLicensePlan": "क्या मैं भविष्य में कम लाइसेंस योजना में डाउनग्रेड कर सकता हूँ?", "DowngradeLicensePlanExplanation": "आप अपनी मौजूदा लाइसेंस योजना को डाउनग्रेड नहीं कर सकते। लेकिन आप नया लोअर लाइसेंस प्लान खरीद सकते हैं और नए लाइसेंस पर अपना विकास जारी रख सकते हैं। आपके द्वारा कम लाइसेंस खरीदने के बाद, आपको एबीपी सीएलआई कमांड के माध्यम से अपनी नई लाइसेंस योजना में प्रवेश करने की आवश्यकता है: `एबीपी लॉगिन <उपयोगकर्ता नाम> -ओ <संगठन>`।", "LicenseTransfer": "क्या लाइसेंस एक डेवलपर से दूसरे डेवलपर को ट्रांसफर किया जा सकता है?", diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/hr.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/hr.json index 7d268d1d87..d7865bf455 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/hr.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/hr.json @@ -541,7 +541,7 @@ "Pricing_Page_Testimonial_2": "Vidimo vrijednost korištenja ABP Commerciala za smanjenje režijskih troškova prilagođenih razvojnih projekata. Tim je u mogućnosti objediniti uzorak koda u različitim tokovima projekta. Vidimo više potencijala u okviru za izgradnju novih značajki brže nego prije. Vjerujemo da ćemo stalno uviđati vrijednost iskorištavanja ABP Commerciala.", "Pricing_Page_Testimonial_3": "Volimo ABP. Ne moramo sve pisati ispočetka. Počinjemo od značajki izvan okvira i fokusiramo se samo na ono što stvarno trebamo napisati. Također, ABP je dobro projektiran i kod je visoke kvalitete s manje grešaka. Kad bismo morali sami napisati sve što nam treba, možda bismo morali potrošiti godine. Još jedna stvar koja nam se sviđa je što nova verzija, popravak problema ili poboljšanje izlazi vrlo brzo svaki drugi tjedan. Ne čekamo predugo.", "Pricing_Page_Testimonial_4": "ABP Commercial je fantastičan proizvod koji bih preporučio. Komercijalni proizvodi za tržište za naše kupce na jednoj platformi koja se može konfigurirati. Skok počinje da okvir i alati pružaju bilo koji tim vrijedan svakog centa. ABP Commercial najbolje je odgovarao našim potrebama.", - "Pricing_Page_Testimonial_5": "ABP Framework nije samo okvir, već je i vodič za razvoj/upravljanje projektom jer pruža DDD, GenericRepository, DI, Microservice i obuku o modularnosti. Čak i ako nećete koristiti sam framework, možete se razvijati s docs.abp.io koji je dobro i profesionalno pripremljen (OpenIddict, Redis, Quartz itd.). Budući da su mnoge stvari unaprijed izgrađene, značajno skraćuje vrijeme razvoja projekta (kao što je stranica za prijavu, rukovanje iznimkama, filtriranje podataka, sijanje, revizijsko bilježenje, lokalizacija, automatski API kontroler itd.). Kao primjer iz naše aplikacije, koristio sam Local Event Bus za kontrolu zaliha. Dakle, mogu upravljati kretanjem narudžbi pisanjem rukovatelja zalihama. Divno je ne gubiti vrijeme za CreationTime, CreatorId. Pune se automatski.", + "Pricing_Page_Testimonial_5": "ABP Framework nije samo okvir, već je i vodič za razvoj/upravljanje projektom jer pruža DDD, GenericRepository, DI, Microservice i obuku o modularnosti. Čak i ako nećete koristiti sam framework, možete se razvijati s abp.io koji je dobro i profesionalno pripremljen (OpenIddict, Redis, Quartz itd.). Budući da su mnoge stvari unaprijed izgrađene, značajno skraćuje vrijeme razvoja projekta (kao što je stranica za prijavu, rukovanje iznimkama, filtriranje podataka, sijanje, revizijsko bilježenje, lokalizacija, automatski API kontroler itd.). Kao primjer iz naše aplikacije, koristio sam Local Event Bus za kontrolu zaliha. Dakle, mogu upravljati kretanjem narudžbi pisanjem rukovatelja zalihama. Divno je ne gubiti vrijeme za CreationTime, CreatorId. Pune se automatski.", "Pricing_Page_Testimonial_6": "ABP Framework je dobar okvir, ali mu treba vremena da razumije različite slojeve, klase i biblioteke koje koristi (osobito ABP). Proveo sam puno vremena čitajući bazu koda, ali ABP Commercial uštedio nam je vrijeme u stvaranju posebnih entiteta projekta (AR) i repozitorija povezanog sa svakim od njih. Svidio mi se i pristup korišten u ABP-u koji je vrlo zreo; znamo da se temelji na DDD i monolitu.", "Pricing_Page_Testimonial_7": "Kao startup, moramo brzo ponavljati i potrošiti minimalno vremena na standardne i sporedne značajke. \n Naši inženjeri variraju od vrlo iskusnih do mlađih inženjera, a bilo nam je potrebno zajedničko razumijevanje i način dijeljenja tehničkog i domenskog znanja, ABP nam je to omogućio zahvaljujući njihovim sjajnim vodičima i dokumentaciji. \n Postoje stvari o kojima se ne moramo brinuti budući da rade izvan kutije s ABP-om. \n ABP pomogao nam je pojednostaviti brzu izradu prototipova i razvoj, manje od 4 tjedna od početka značajke do proizvodnje. Sa svim svojim premium značajkama uključenim u licencu, ABP nam je dao "Startup in a Box" na strani softverskog inženjeringa.", "Pricing_Page_Testimonial_8": "ABP komercijalu bih preporučio svima onima koji žele proširiti ponudu proizvoda dostupnih svojim kupcima. Fantastično je kada je potrebno koristiti distribuirano poslovno okruženje (Angular, WPF, Win&Linux). Osim njihovih proizvoda, volimo i njihovu podršku, koja nam posao čini bržim i lakšim. Već znamo da smo pronašli odličnog partnera za budućnost koji će nas podržati u širenju poslovanja.", @@ -720,7 +720,7 @@ "Landing_Page_DocsModuleDescription_9": "Osim izvora GitHub, omogućuje jednostavno korištenje mape kao izvora dokumentacije.", "Landing_Page_FileManagementModuleDescription_1": "Prijenos, preuzimanje i organiziranje datoteka u hijerarhijsku strukturu mapa.", "Landing_Page_FileManagementModuleDescription_2": "Ovaj se modul koristi za učitavanje, preuzimanje i organiziranje datoteka u hijerarhijskoj strukturi mapa. Također je kompatibilan s višestrukim zakupom i možete odrediti ograničenje ukupne veličine za svoje stanare.", - "Landing_Page_FileManagementModuleDescription_3": "Ovaj se modul temelji na BLOB sustavu pohrane , tako da može koristiti različite pružatelje pohrane za pohranjivanje sadržaja datoteke.", + "Landing_Page_FileManagementModuleDescription_3": "Ovaj se modul temelji na BLOB sustavu pohrane , tako da može koristiti različite pružatelje pohrane za pohranjivanje sadržaja datoteke.", "Landing_Page_IdentityModuleDescription_1": "Ovaj modul implementira sustav korisnika i uloga aplikacije;", "Landing_Page_IdentityModuleDescription_2": "Izgrađen na Microsoftovoj biblioteci ASP.NET Core Identity .", "Landing_Page_IdentityModuleDescription_3": "Upravljanje ulogama i korisnicima u sustavu. Korisnik može imati više uloga .", @@ -736,7 +736,7 @@ "Landing_Page_PaymentModuleDescription_1": "Omogućuje integraciju za različite pristupnike plaćanja.", "Landing_Page_PaymentModuleDescription_2": "Ovaj modul pruža integraciju za pristupnike plaćanja, tako da možete jednostavno dobiti plaćanje od svojih kupaca.", "Landing_Page_PaymentModuleDescription_3": "Ovaj modul podržava sljedeće pristupnike plaćanja", - "Welcome_Page_UseSameCredentialForCommercialWebsites": "Koristite iste vjerodajnice za commercial.abp.io i support.abp.io .", + "Welcome_Page_UseSameCredentialForCommercialWebsites": "Koristite iste vjerodajnice za commercial.abp.io i support.abp.io .", "WatchCrudPagesVideo": "Pogledajte video "Izrada CRUD stranica s ABP Suiteom"!", "WatchGeneratingFromDatabaseVideo": "Pogledajte video "ABP Suite: Generiranje CRUD stranica iz postojećih tablica baze podataka"!", "WatchTakeCloserLookVideo": "Pogledajte video "Pobliže pogledajte generiranje koda: ABP Suite"!", @@ -812,7 +812,7 @@ "UpgradePaymentInfoSection_LicenseRenewalPrice": "Obnova licence", "Total": "Ukupno", "SupportPolicyFaqTitle": "Kakva je vaša politika podrške?", - "SupportPolicyFaqExplanation": "Podržavamo samo aktivnu i prethodnu glavnu verziju. Ne jamčimo izdavanje zakrpe za 3. i starije glavne verzije. Na primjer, ako je aktivna verzija 7.0.0, objavit ćemo izdanja zakrpa i za 6.xx i za 7.xx. Osim toga, pružamo podršku samo za ABP Framework i ABP Commercial pitanja. To znači da se ne daje podrška za aplikacije trećih strana, usluge u oblaku i druge periferne biblioteke koje koriste ABP proizvodi. Uložit ćemo komercijalno razumne napore da svojim klijentima pružimo tehničku podršku tijekom službenog radnog vremena "Volosoft Bilisim AS". S druge strane, ne obvezujemo se na vrijeme odgovora ugovora o razini usluge (SLA), ali ćemo pokušati odgovoriti na tehničke probleme što je brže moguće unutar našeg službenog radnog vremena. Osim ako nije sklopljen poseban ugovor s korisnikom, podršku pružamo samo na https://support.abp.io. Imamo i privatnu podršku e-poštom, koja je dostupna samo nositeljima Enterprise License.", + "SupportPolicyFaqExplanation": "Podržavamo samo aktivnu i prethodnu glavnu verziju. Ne jamčimo izdavanje zakrpe za 3. i starije glavne verzije. Na primjer, ako je aktivna verzija 7.0.0, objavit ćemo izdanja zakrpa i za 6.xx i za 7.xx. Osim toga, pružamo podršku samo za ABP Framework i ABP Commercial pitanja. To znači da se ne daje podrška za aplikacije trećih strana, usluge u oblaku i druge periferne biblioteke koje koriste ABP proizvodi. Uložit ćemo komercijalno razumne napore da svojim klijentima pružimo tehničku podršku tijekom službenog radnog vremena "Volosoft Bilisim AS". S druge strane, ne obvezujemo se na vrijeme odgovora ugovora o razini usluge (SLA), ali ćemo pokušati odgovoriti na tehničke probleme što je brže moguće unutar našeg službenog radnog vremena. Osim ako nije sklopljen poseban ugovor s korisnikom, podršku pružamo samo na https://abp.io/support/questions. Imamo i privatnu podršku e-poštom, koja je dostupna samo nositeljima Enterprise License.", "TotalDevelopers": "Ukupno {0} programera(a)", "CustomPurchaseExplanation": "Prilagođeno vašim specifičnim potrebama", "WhereDidYouHearAboutUs": "Gdje ste čuli za nas?", @@ -886,8 +886,8 @@ "DevelopYourSolution_Description1": "ABP-ova infrastruktura tjera vas da se usredotočite na vlastiti poslovni kod automatizirajući rad koji se ponavlja i pruža unaprijed izgrađenu infrastrukturu i značajke aplikacije.", "DevelopYourSolution_Description2": "U sljedećem bloku koda možete vidjeti kako se ABP Framework neprimjetno integrira u vaš kod i automatizira zadatke koji se ponavljaju umjesto vas.", "DevelopYourSolution_Description3": "Čak iu ovom bloku kratkog koda, ABP radi puno stvari za vas.", - "DevelopYourSolution_Description4": "Omogućuje osnovne klase za primjenu konvencija, poput \n ubrizgavanja ovisnosti . Generičke usluge repozitorija \n pružaju prikladan \n način interakcije s bazom podataka. Deklarativna autorizacija \n radi s fino podešenim sustavom dozvola.", - "DevelopYourSolution_Description5": "ABP potpuno automatizira radnu jedinicu \n (za povezivanje s bazom podataka i upravljanje transakcijama), rukovanje iznimkama \n , provjeru valjanosti \n \n i revizijsko bilježenje . Omogućuje mnogo više sastavnih dijelova za pojednostavljenje vaših svakodnevnih razvojnih zadataka i fokusiranje na vlastiti kod dok stvarate \n aplikacije spremne za proizvodnju.", + "DevelopYourSolution_Description4": "Omogućuje osnovne klase za primjenu konvencija, poput \n ubrizgavanja ovisnosti . Generičke usluge repozitorija \n pružaju prikladan \n način interakcije s bazom podataka. Deklarativna autorizacija \n radi s fino podešenim sustavom dozvola.", + "DevelopYourSolution_Description5": "ABP potpuno automatizira radnu jedinicu \n (za povezivanje s bazom podataka i upravljanje transakcijama), rukovanje iznimkama \n , provjeru valjanosti \n \n i revizijsko bilježenje . Omogućuje mnogo više sastavnih dijelova za pojednostavljenje vaših svakodnevnih razvojnih zadataka i fokusiranje na vlastiti kod dok stvarate \n aplikacije spremne za proizvodnju.", "DevelopYourSolution_Description6": "Možete zamisliti koliko taj blok koda može biti dug i kompliciran kada biste sve to radili ručno.", "SuiteCrudGenerationInFewSeconds": "Osim ručnog kodiranja vašeg rješenja, možete izraditi potpuno radne napredne CRUD stranice u nekoliko minuta pomoću alata ABP Suite. Generira kod u vašem rješenju, tako da ga možete fino prilagoditi na temelju svojih prilagođenih zahtjeva.", "DeployAnywhere_Description1": "Na kraju dana, imate čisto .NET rješenje. Svoje rješenje možete implementirati na vlastiti poslužitelj, na platformu u oblaku, na Kubernetes ili gdje god želite. Možete implementirati na onoliko poslužitelja koliko želite. ABP je agnostički alat za razvojnu okolinu.", @@ -1002,7 +1002,7 @@ "CreatingAnEmptySolution_THEPROBLEM_Description4": "Kako se integrirate u biblioteku i sustave trećih strana?", "CreatingAnEmptySolution_THEPROBLEM_Description5": "Kako postaviti automatizirane testove?", "ABPSOLUTION": "ABP RJEŠENJE", - "CreatingAnEmptySolution_ABPSOLUTION_Description": "ABP pruža dobro projektirano, slojevito i za proizvodnju spremno startup rješenje temeljeno na načelima Domain Driven Design . Rješenje također uključuje unaprijed konfiguriranu jedinicu i testne projekte integracije za svaki sloj.", + "CreatingAnEmptySolution_ABPSOLUTION_Description": "ABP pruža dobro projektirano, slojevito i za proizvodnju spremno startup rješenje temeljeno na načelima Domain Driven Design . Rješenje također uključuje unaprijed konfiguriranu jedinicu i testne projekte integracije za svaki sloj.", "CommonLibraries": "Zajedničke knjižnice", "CommonLibraries_THEPROBLEM_Description": "Koje bi knjižnice trebali koristiti za implementaciju uobičajenih zahtjeva? Ekosustav razvoja softvera vrlo je dinamičan, što ga čini izazovnim držati korak s najnovijim alatima, bibliotekama, trendovima i pristupima.", "CommonLibraries_ABPSOLUTION_Description": "ABP unaprijed integrira popularne, zrele i ažurirane biblioteke u rješenje. Ne morate trošiti vrijeme na njihovu integraciju ili natjeravanje da međusobno komuniciraju. Rade ispravno iz kutije.", @@ -1060,12 +1060,12 @@ "Modularity_THEPROBLEM_Description": "Izgradnja istinski modularnog sustava nije laka! Svi aspekti sustava (baza podataka, entiteti, API-ji, UI stranice/komponente) mogu se podijeliti u module, a svaki se modul može ponovno koristiti bez drugih. Obični ASP.NET Core ne pruža takvu modularnu arhitekturu. Ako vam treba, razmislite o tome od nule.", "Modularity_ABPSOLUTION_Description": "ABP Framework je rođen da bude modularna struktura za razvoj aplikacija. Svaka značajka u okviru razvijena je da bude kompatibilna s modularnošću. Dokumentacija i vodiči objašnjavaju kako razviti module koji se mogu ponovno koristiti na standardni način.", "SaaSMultiTenancy": "SaaS / Multi-Tenancy", - "SaaSMultiTenancy_THEPROBLEM_Description": "Multi-Tenancy je uobičajeni način implementacije SaaS sustava. Međutim, implementacija dosljedne infrastrukture s više stanara može postati komplicirana.", + "SaaSMultiTenancy_THEPROBLEM_Description": "Multi-Tenancy je uobičajeni način implementacije SaaS sustava. Međutim, implementacija dosljedne infrastrukture s više stanara može postati komplicirana.", "SaaSMultiTenancy_ABPSOLUTION_Description": "ABP Framework pruža kompletnu infrastrukturu s više korisnika i apstraktnu složenost iz vašeg poslovnog koda. Vaš aplikacijski kod će uglavnom biti svjestan više zakupaca, dok ABP Framework automatski izolira bazu podataka, predmemoriju i druge detalje zakupaca jedne od drugih. Podržava jedinstvenu bazu podataka, bazu podataka po stanarima i hibridne pristupe. Ispravno konfigurira biblioteke kao što su Microsoft Identity i OpenIddict, koje obično nisu kompatibilne s više korisnika.", "Microservices": "Mikroservisi", "Microservices_THEPROBLEM_Description": "Izgradnja sustava mikroservisa zahtijeva mnoge infrastrukturne detalje: autentifikacija i autorizacija aplikacija i mikroservisa te implementacija asinkronog slanja poruka i sinkronih (Rest/GRPC) komunikacijskih obrazaca između mikroservisa najosnovnija su pitanja.", - "Microservices_ABPSOLUTION_Description": "ABP Framework pruža usluge, vodiče i uzorke koji će vam pomoći implementirati vaše mikrouslužno rješenje pomoću standardnih alata za industriju.", - "Microservices_ABPSOLUTION_Description2": "ABP Commercial čak ide korak dalje i pruža potpuni predložak za pokretanje za pokretanje vašeg mikroservisnog rješenja.", + "Microservices_ABPSOLUTION_Description": "ABP Framework pruža usluge, vodiče i uzorke koji će vam pomoći implementirati vaše mikrouslužno rješenje pomoću standardnih alata za industriju.", + "Microservices_ABPSOLUTION_Description2": "ABP Commercial čak ide korak dalje i pruža potpuni predložak za pokretanje za pokretanje vašeg mikroservisnog rješenja.", "PreBuiltModules": "Unaprijed izgrađeni moduli", "PreBuiltModules_THEPROBLEM_Description": "Svi mi imamo slične ali pomalo različite poslovne zahtjeve. Međutim, svi bismo trebali ponovno izmisliti kotač jer ničiji kod ne može izravno funkcionirati u našem rješenju. Svi su oni ugrađeni dijelovi većeg rješenja.", "PreBuiltModules_ABPSOLUTION_Description": "ABP Commercial modules pruža mnoštvo višekratno upotrebljivih aplikacijskih modula kao što su plaćanje, chat, upravljanje datotekama, izvješćivanje dnevnika revizije... itd. Svi ovi moduli lako se instaliraju u vaše rješenje i izravno rade. Stalno dodajemo nove module.", diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/hu.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/hu.json index 7ac67635df..5cbe578021 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/hu.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/hu.json @@ -718,7 +718,7 @@ "Landing_Page_DocsModuleDescription_9": "A GitHub-forrás mellett lehetővé teszi egy mappa egyszerű használatát dokumentációs forrásként.", "Landing_Page_FileManagementModuleDescription_1": "Fájlok feltöltése, letöltése és rendezése hierarchikus mappastruktúrában.", "Landing_Page_FileManagementModuleDescription_2": "Ez a modul fájlok feltöltésére, letöltésére és hierarchikus mappastruktúrába rendezésére szolgál. Több bérléssel is kompatibilis, és meghatározhatja bérlői teljes méretkorlátját.", - "Landing_Page_FileManagementModuleDescription_3": "Ez a modul a BLOB Storing rendszeren alapul, így különböző tárolószolgáltatókat használhat a fájltartalom tárolására.", + "Landing_Page_FileManagementModuleDescription_3": "Ez a modul a BLOB Storing rendszeren alapul, így különböző tárolószolgáltatókat használhat a fájltartalom tárolására.", "Landing_Page_IdentityModuleDescription_1": "Ez a modul egy alkalmazás Felhasználó és szerepkör rendszerét valósítja meg;", "Landing_Page_IdentityModuleDescription_2": "A Microsoft ASP.NET Core Identity könyvtárára épül.", "Landing_Page_IdentityModuleDescription_3": "Szerepkörök és felhasználók kezelése a rendszerben. Egy felhasználónak több szerepe is lehet.", @@ -734,7 +734,7 @@ "Landing_Page_PaymentModuleDescription_1": "Integrációt biztosít a különböző fizetési átjárókhoz.", "Landing_Page_PaymentModuleDescription_2": "Ez a modul integrációt biztosít a fizetési átjárókhoz, így könnyen kaphat fizetést ügyfeleitől.", "Landing_Page_PaymentModuleDescription_3": "Ez a modul a következő fizetési átjárókat támogatja", - "Welcome_Page_UseSameCredentialForCommercialWebsites": "Ugyanazokat a hitelesítési adatokat használja a commercial.abp.io és a support.abp.io fájlokhoz .", + "Welcome_Page_UseSameCredentialForCommercialWebsites": "Ugyanazokat a hitelesítési adatokat használja a commercial.abp.io és a support.abp.io fájlokhoz .", "WatchCrudPagesVideo": "Nézze meg a \"CRUD oldalak létrehozása az ABP Suite segítségével\" videót!", "WatchGeneratingFromDatabaseVideo": "Nézze meg az \"ABP Suite: CRUD-oldalak generálása meglévő adatbázistáblákból\" videót!", "WatchTakeCloserLookVideo": "Tekintse meg a „Nézze meg közelebbről a kódgenerálást: ABP Suite” videót!", diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/is.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/is.json index 12bfd1de8c..6e0572a790 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/is.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/is.json @@ -382,7 +382,7 @@ "TrialLicenseExpireMessage": "Þú ert að nota prufuleyfið og prufuleyfið rennur út {0}.", "TryForFree": "Prófaðu ókeypis", "TrialLicenseExpiredInfo": "Prófunartímabil þitt er útrunnið!", - "CommercialNewsletterConfirmationMessage": "Ég samþykki skilmálana og persónuverndarstefnuna .", + "CommercialNewsletterConfirmationMessage": "Ég samþykki skilmálana og persónuverndarstefnuna .", "BlackFridayDiscount": "Black Friday afsláttur", "MultipleOrganizationInfo": "Sjá öll samtök þín", "PaymentFailedInfo": "Því miður, greiðsla mistókst! ", diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/it.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/it.json index 944be84b00..481a1a416a 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/it.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/it.json @@ -382,13 +382,13 @@ "TrialLicenseExpireMessage": "Stai utilizzando la licenza di prova e la tua licenza di prova scadrà il {0}.", "TryForFree": "Prova gratis", "TrialLicenseExpiredInfo": "Il periodo della tua licenza di prova è scaduto!", - "CommercialNewsletterConfirmationMessage": "Accetto i Termini e condizioni e la Informativa sulla privacy .", + "CommercialNewsletterConfirmationMessage": "Accetto i Termini e condizioni e la Informativa sulla privacy .", "discountForYears": "{0}% di sconto per {1} anno/i", "BlackFridayDiscount": "Sconto Black Friday", "OnboardingTrainingFaqTitle": "Avete un corso di formazione ABP per l'onboarding?", "OnboardingTrainingFaqExplanation": "Sì, abbiamo i servizi di formazione ABP per aiutarti a far partire rapidamente il tuo progetto ABP. Imparerai a conoscere ABP da un membro del core team ABP e otterrai le competenze per iniziare il tuo progetto ABP. Nella formazione onboarding, spiegheremo come configurare il tuo ambiente di sviluppo, installare gli strumenti richiesti, creare una pagina CRUD completamente funzionante. La formazione sarà in diretta e verrà utilizzata l'applicazione Zoom e siamo aperti all'utilizzo di altre piattaforme di riunioni online. La lingua della formazione sarà l'inglese. Puoi anche porre le tue domande sull'ABP durante le sessioni. Verrà pianificata una data e un orario convenienti per entrambe le parti. Per ulteriori informazioni, contattaci all'indirizzo info@abp.io.", "SupportPolicyFaqTitle": "Qual è la vostra politica di assistenza?", - "SupportPolicyFaqExplanation": "Supportiamo solo la versione principale attiva e quella precedente. Non garantiamo il rilascio di patch per la terza e la precedente versione principale. Ad esempio, se la versione attiva è la 7.0.0, rilasceremo patch sia per la 6.x.x che per la 7.x.x. Inoltre, forniamo supporto solo per i problemi relativi ad ABP Framework e ABP Commercial. Ciò significa che non viene fornito alcun supporto per le applicazioni di terze parti, i servizi cloud e altre librerie periferiche utilizzate dai prodotti ABP. Faremo tutto il possibile per fornire ai nostri clienti assistenza tecnica durante gli orari di lavoro ufficiali di Volosoft Bilisim A.S.. D'altra parte, non ci impegniamo a rispettare i tempi di risposta di un accordo sul livello di servizio (SLA), ma cercheremo di rispondere ai problemi tecnici il più rapidamente possibile entro i nostri orari di lavoro ufficiali. A meno che non venga stipulato un accordo speciale con il cliente, forniamo assistenza solo all'indirizzo https://support.abp.io. Disponiamo anche di un supporto privato via e-mail, disponibile solo per i titolari di licenza Enterprise.", + "SupportPolicyFaqExplanation": "Supportiamo solo la versione principale attiva e quella precedente. Non garantiamo il rilascio di patch per la terza e la precedente versione principale. Ad esempio, se la versione attiva è la 7.0.0, rilasceremo patch sia per la 6.x.x che per la 7.x.x. Inoltre, forniamo supporto solo per i problemi relativi ad ABP Framework e ABP Commercial. Ciò significa che non viene fornito alcun supporto per le applicazioni di terze parti, i servizi cloud e altre librerie periferiche utilizzate dai prodotti ABP. Faremo tutto il possibile per fornire ai nostri clienti assistenza tecnica durante gli orari di lavoro ufficiali di Volosoft Bilisim A.S.. D'altra parte, non ci impegniamo a rispettare i tempi di risposta di un accordo sul livello di servizio (SLA), ma cercheremo di rispondere ai problemi tecnici il più rapidamente possibile entro i nostri orari di lavoro ufficiali. A meno che non venga stipulato un accordo speciale con il cliente, forniamo assistenza solo all'indirizzo https://abp.io/support/questions. Disponiamo anche di un supporto privato via e-mail, disponibile solo per i titolari di licenza Enterprise.", "DowngradeLicensePlan": "Posso passare a un piano di licenza inferiore in futuro?", "DowngradeLicensePlanExplanation": "Non è possibile effettuare il downgrade del piano di licenza esistente. È però possibile acquistare un nuovo piano di licenza inferiore e continuare lo sviluppo con la nuova licenza. Dopo aver acquistato una licenza inferiore, è sufficiente effettuare il login al nuovo piano di licenza tramite il comando ABP CLI: abp login -o `.", "LicenseTransfer": "È possibile trasferire una licenza da uno sviluppatore a un altro?", diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/nl.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/nl.json index 88ec064f7c..197c23d17b 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/nl.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/nl.json @@ -382,7 +382,7 @@ "TrialLicenseExpireMessage": "U gebruikt de proeflicentie en uw proeflicentie verloopt op {0}.", "TryForFree": "Probeer gratis", "TrialLicenseExpiredInfo": "Uw proeflicentieperiode is verlopen!", - "CommercialNewsletterConfirmationMessage": "Ik ga akkoord met de Algemene voorwaarden en het Privacybeleid .", + "CommercialNewsletterConfirmationMessage": "Ik ga akkoord met de Algemene voorwaarden en het Privacybeleid .", "BlackFridayDiscount": "Black Friday korting", "MultipleOrganizationInfo": "Bekijk al uw organisaties", "PaymentFailedInfo": "Excuses, betaling mislukt! ", diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/pl-PL.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/pl-PL.json index e21262412b..9bf2c05d39 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/pl-PL.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/pl-PL.json @@ -382,7 +382,7 @@ "TrialLicenseExpireMessage": "Korzystasz z licencji próbnej, a Twoja licencja próbna wygaśnie w dniu {0}.", "TryForFree": "Wypróbuj za darmo", "TrialLicenseExpiredInfo": "Twoja licencja próbna wygasła!", - "CommercialNewsletterConfirmationMessage": "Wyrażam zgodę na Warunki i Politykę prywatności .", + "CommercialNewsletterConfirmationMessage": "Wyrażam zgodę na Warunki i Politykę prywatności .", "BlackFridayDiscount": "Zniżka Black Friday", "MultipleOrganizationInfo": "Zobacz wszystkie swoje organizacje", "PaymentFailedInfo": "Przepraszamy, płatność nie powiodła się! ", diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/pt-BR.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/pt-BR.json index f2822ae43b..2de960edf1 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/pt-BR.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/pt-BR.json @@ -383,14 +383,14 @@ "TrialLicenseExpireMessage": "Você está usando a licença de teste e sua licença de teste irá expirar em {0}.", "TryForFree": "Experimentar gratuitamente", "TrialLicenseExpiredInfo": "Seu período de licença de teste expirou!", - "CommercialNewsletterConfirmationMessage": "Eu concordo com os Termos e Condições e a Política de Privacidade ", + "CommercialNewsletterConfirmationMessage": "Eu concordo com os Termos e Condições e a Política de Privacidade ", "discountForYears": "{0}% de desconto por {1} ano(s)", "BlackFridayDiscount": "Desconto de Black Friday", "WhyUseAbpIoPlatform": "Por que devo usar a plataforma ABP.IO em vez de criar uma nova solução a partir do zero?", - "WhyUseAbpIoPlatformFaqExplanation": "Veja esse documento para uma explicação detalhada do porquê de usar a Plataforma ABP.IO tem uma vantagem significativa sobre fazer tudo você mesmo.", + "WhyUseAbpIoPlatformFaqExplanation": "Veja esse documento para uma explicação detalhada do porquê de usar a Plataforma ABP.IO tem uma vantagem significativa sobre fazer tudo você mesmo.", "OnboardingTrainingFaqTitle": "Você tem treinamento de ABP a bordo?", "SupportPolicyFaqTitle": "Qual é sua política de apoio?", - "SupportPolicyFaqExplanation": "Nós apoiamos apenas a versão ativa e a versão principal anterior. Não garantimos o lançamento de um patch para a 3ª e mais antigas versões principais. Por exemplo, se a versão ativa for a 7.0.0, lançaremos correções tanto para a 6.x.x como para a 7.x.x.x. Além disso, fornecemos suporte somente para questões relacionadas ao ABP Framework e ABP Commercial. Isso significa que nenhum suporte é dado para as aplicações de terceiros, serviços de nuvem e outras bibliotecas periféricas usadas pelos produtos ABP. Usaremos esforços comercialmente razoáveis para fornecer suporte técnico a nossos clientes durante o horário comercial oficial da \"Volosoft Bilisim A.S\". Por outro lado, não nos comprometemos com um acordo de nível de serviço (SLA) de tempo de resposta, mas tentaremos responder às questões técnicas o mais rápido possível dentro de nosso horário oficial de trabalho. A menos que um acordo especial seja feito com o cliente, fornecemos suporte somente em https://support.abp.io. Também temos suporte privado por e-mail, que só está disponível para os detentores de licenças empresariais.", + "SupportPolicyFaqExplanation": "Nós apoiamos apenas a versão ativa e a versão principal anterior. Não garantimos o lançamento de um patch para a 3ª e mais antigas versões principais. Por exemplo, se a versão ativa for a 7.0.0, lançaremos correções tanto para a 6.x.x como para a 7.x.x.x. Além disso, fornecemos suporte somente para questões relacionadas ao ABP Framework e ABP Commercial. Isso significa que nenhum suporte é dado para as aplicações de terceiros, serviços de nuvem e outras bibliotecas periféricas usadas pelos produtos ABP. Usaremos esforços comercialmente razoáveis para fornecer suporte técnico a nossos clientes durante o horário comercial oficial da \"Volosoft Bilisim A.S\". Por outro lado, não nos comprometemos com um acordo de nível de serviço (SLA) de tempo de resposta, mas tentaremos responder às questões técnicas o mais rápido possível dentro de nosso horário oficial de trabalho. A menos que um acordo especial seja feito com o cliente, fornecemos suporte somente em https://abp.io/support/questions. Também temos suporte privado por e-mail, que só está disponível para os detentores de licenças empresariais.", "DowngradeLicensePlan": "Posso baixar para um plano de licença mais baixo no futuro?", "DowngradeLicensePlanExplanation": "Você não pode rebaixar seu plano de licença existente. Mas você pode adquirir um novo plano de licença inferior e continuar seu desenvolvimento com a nova licença. Após adquirir uma licença inferior, você só precisa fazer o login em seu novo plano de licença via comando ABP CLI: abp login -o `.", "LicenseTransfer": "Uma licença pode ser transferida de um desenvolvedor para outro?", diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/ro-RO.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/ro-RO.json index 0f2a61fe2a..d48ea54135 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/ro-RO.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/ro-RO.json @@ -382,7 +382,7 @@ "TrialLicenseExpireMessage": "Utilizați licența de probă și licența de probă va expira pe {0}.", "TryForFree": "Încearcă pe gratis", "TrialLicenseExpiredInfo": "Perioada de licență de probă a expirat!", - "CommercialNewsletterConfirmationMessage": "Sunt de acord cu Termenii și condițiile și cu Politica de confidențialitate .", + "CommercialNewsletterConfirmationMessage": "Sunt de acord cu Termenii și condițiile și cu Politica de confidențialitate .", "BlackFridayDiscount": "Black Friday Discount", "MultipleOrganizationInfo": "Vedeți toate organizațiile dvs", "PaymentFailedInfo": "Ne pare rău, plata nu a reușit! ", diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/ru.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/ru.json index d08d737d5a..dce8c92888 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/ru.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/ru.json @@ -721,7 +721,7 @@ "Landing_Page_DocsModuleDescription_9": "В дополнение к исходному коду GitHub позволяет просто использовать папку в качестве источника документации.", "Landing_Page_FileManagementModuleDescription_1": "Загружайте, скачивайте и упорядочивайте файлы в иерархической структуре папок.", "Landing_Page_FileManagementModuleDescription_2": "Этот модуль используется для загрузки, скачивания и организации файлов в иерархической структуре папок. ", - "Landing_Page_FileManagementModuleDescription_3": "Этот модуль основан на Хранение BLOB-объектов система, поэтому она может использовать разных поставщиков хранилища для хранения содержимого файла.", + "Landing_Page_FileManagementModuleDescription_3": "Этот модуль основан на Хранение BLOB-объектов система, поэтому она может использовать разных поставщиков хранилища для хранения содержимого файла.", "Landing_Page_IdentityModuleDescription_1": "Этот модуль реализует систему пользователей и ролей приложения;", "Landing_Page_IdentityModuleDescription_2": "Построен на Базовая идентичность Microsoft ASP.NET библиотека.", "Landing_Page_IdentityModuleDescription_3": "Управлять роли и пользователи в системе. несколько ролей.", @@ -737,7 +737,7 @@ "Landing_Page_PaymentModuleDescription_1": "Обеспечивает интеграцию с различными платежными шлюзами.", "Landing_Page_PaymentModuleDescription_2": "Этот модуль обеспечивает интеграцию платежных шлюзов, поэтому вы можете легко получать платежи от своих клиентов.", "Landing_Page_PaymentModuleDescription_3": "Этот модуль поддерживает следующие платежные шлюзы", - "Welcome_Page_UseSameCredentialForCommercialWebsites": "Используйте одни и те же учетные данные для обоих Commercial.abp.io и support.abp.io.", + "Welcome_Page_UseSameCredentialForCommercialWebsites": "Используйте одни и те же учетные данные для обоих Commercial.abp.io и support.abp.io.", "WatchCrudPagesVideo": "Посмотрите видео «Создание CRUD-страниц с помощью ABP Suite»!", "WatchGeneratingFromDatabaseVideo": "Посмотрите видео «Пакет ABP: создание страниц CRUD из существующих таблиц базы данных»!", "WatchTakeCloserLookVideo": "Посмотрите видео «Подробнее о генерации кода: ABP Suite»!", @@ -887,8 +887,8 @@ "DevelopYourSolution_Description1": "Инфраструктура ABP позволяет вам сосредоточьтесь на своем собственном бизнес-коде путем автоматизации повторяющейся работы и предоставления предварительно созданной инфраструктуры и приложений. функции.", "DevelopYourSolution_Description2": "В следующем блоке кода вы можете увидеть, как ABP Framework легко интегрируется в ваш код и автоматизирует повторяющиеся задачи.", "DevelopYourSolution_Description3": "Даже в этом блоке шорткода ABP многое делает за вас.", - "DevelopYourSolution_Description4": "Он предоставляет базовые классы для применения соглашений, например \n внедрение зависимости. \n репозиторий услуги обеспечивают удобный\n \n авторизация работает с тонко настроенной системой разрешений.", - "DevelopYourSolution_Description5": "ABP полностью автоматизирует \n единица работы (для подключения к базе данных и управления транзакциями), \n Обработка исключений, \n Проверка\n и журнал аудита. ", + "DevelopYourSolution_Description4": "Он предоставляет базовые классы для применения соглашений, например \n внедрение зависимости. \n репозиторий услуги обеспечивают удобный\n \n авторизация работает с тонко настроенной системой разрешений.", + "DevelopYourSolution_Description5": "ABP полностью автоматизирует \n единица работы (для подключения к базе данных и управления транзакциями), \n Обработка исключений, \n Проверка\n и журнал аудита. ", "DevelopYourSolution_Description6": "Вы можете себе представить, насколько длинным и сложным может быть этот блок кода, если вы будете делать все это вручную.", "SuiteCrudGenerationInFewSeconds": "Помимо ручного написания кода вашего решения, вы можете за несколько минут создать полностью работающие расширенные страницы CRUD, используя инструменты ABP Suite. ", "DeployAnywhere_Description1": "В конце концов у вас есть чистое решение .NET. ", @@ -1002,7 +1002,7 @@ "CreatingAnEmptySolution_THEPROBLEM_Description4": "Как вы интегрируетесь со сторонними библиотеками и системами?", "CreatingAnEmptySolution_THEPROBLEM_Description5": "Как настроить автоматические тесты?", "ABPSOLUTION": "РЕШЕНИЕ ABP", - "CreatingAnEmptySolution_ABPSOLUTION_Description": "ABP предоставляет хорошо спроектированную, многоуровневую и готовую к использованию решение для запуска на основе Проектирование, ориентированное на предметную область принципы. тест проекты для каждого слоя.", + "CreatingAnEmptySolution_ABPSOLUTION_Description": "ABP предоставляет хорошо спроектированную, многоуровневую и готовую к использованию решение для запуска на основе Проектирование, ориентированное на предметную область принципы. тест проекты для каждого слоя.", "CommonLibraries": "Общие библиотеки", "CommonLibraries_THEPROBLEM_Description": "Какие библиотеки следует использовать для реализации общих требований? ", "CommonLibraries_ABPSOLUTION_Description": "ABP предварительно интегрирует в решение популярные, проверенные и актуальные библиотеки. ", @@ -1020,7 +1020,7 @@ "KeepingYourSolutionUpToDate": "Поддержание вашего решения в актуальном состоянии", "KeepingYourSolutionUpToDate_THEPROBLEM_Description": "После начала разработки вы должны отслеживать новые версии библиотек, которые вы используете для обновлений.", "KeepingYourSolutionUpToDate_ABPSOLUTION_Description": "Мы регулярно обновляем все пакеты до последних версий и тестируем их перед выпуском стабильной версии. ", - "KeepingYourSolutionUpToDate_ABPSOLUTION_Description2": "Обновление ABP интерфейс командной строки Команда автоматически обнаруживает и обновляет все зависящие от ABP пакеты NuGet и NPM в решении. ", + "KeepingYourSolutionUpToDate_ABPSOLUTION_Description2": "Обновление ABP интерфейс командной строки Команда автоматически обнаруживает и обновляет все зависящие от ABP пакеты NuGet и NPM в решении. ", "DRY": "Не повторяйтесь!", "DRY_Description": "Создание базового решения занимает значительное время и требует хорошего архитектурного опыта. ", "DRY_Description2": "ABP максимально автоматизирует и упрощает повторяющийся код, следуя принципу соглашения, а не конфигурации. ", @@ -1061,12 +1061,12 @@ "Modularity_THEPROBLEM_Description": "Построить по-настоящему модульную систему непросто! ", "Modularity_ABPSOLUTION_Description": "ABP Framework представляет собой модульную структуру разработки приложений. ", "SaaSMultiTenancy": "SaaS/мультиарендность", - "SaaSMultiTenancy_THEPROBLEM_Description": "Мульти аренды — распространенный способ внедрения систем SaaS. ", + "SaaSMultiTenancy_THEPROBLEM_Description": "Мульти аренды — распространенный способ внедрения систем SaaS. ", "SaaSMultiTenancy_ABPSOLUTION_Description": "ABP Framework предоставляет полную мультитенантную инфраструктуру и абстрагирует сложность вашего бизнес-кода. ", "Microservices": "Микросервисы", "Microservices_THEPROBLEM_Description": "Для создания системы микросервисов требуется множество деталей инфраструктуры: аутентификация и авторизация приложений и микросервисов, а также реализация шаблонов асинхронного обмена сообщениями и синхронного обмена сообщениями (Rest/GRPC) между микросервисами являются наиболее фундаментальными проблемами.", - "Microservices_ABPSOLUTION_Description": "ABP Framework предоставляет услуги, гидыи примеры, которые помогут вам реализовать микросервисное решение с помощью стандартных отраслевых инструментов.", - "Microservices_ABPSOLUTION_Description2": "ABP Commercial делает еще один шаг вперед и предоставляет полный шаблон запуска для запуска вашего микросервисного решения.", + "Microservices_ABPSOLUTION_Description": "ABP Framework предоставляет услуги, гидыи примеры, которые помогут вам реализовать микросервисное решение с помощью стандартных отраслевых инструментов.", + "Microservices_ABPSOLUTION_Description2": "ABP делает еще один шаг вперед и предоставляет полный шаблон запуска для запуска вашего микросервисного решения.", "PreBuiltModules": "Готовые модули", "PreBuiltModules_THEPROBLEM_Description": "У всех нас схожие, но немного разные бизнес-требования. ", "PreBuiltModules_ABPSOLUTION_Description": "ABP Commercial модули предоставляет множество повторно используемых модулей приложений, таких как оплата, чат, управление файлами, отчеты журнала аудита и т. д. Все эти модули легко устанавливаются в ваше решение и работают напрямую. ", diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/sk.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/sk.json index b608be23ce..e59887beab 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/sk.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/sk.json @@ -382,13 +382,13 @@ "TrialLicenseExpireMessage": "Používate skúšobnú licenciu a platnosť vašej skúšobnej licencie vyprší {0}.", "TryForFree": "Skúste zadarmo", "TrialLicenseExpiredInfo": "Vaše skúšobné licenčné obdobie vypršalo!", - "CommercialNewsletterConfirmationMessage": "I agree to the Terms & Conditions and Privacy Policy.", + "CommercialNewsletterConfirmationMessage": "I agree to the Terms & Conditions and Privacy Policy.", "discountForYears": "{0} % odpusteného prívesku {1} an(ov)", "BlackFridayDiscount": "Black Friday zľava", "OnboardingTrainingFaqTitle": "Máte školenie ABP onboarding?", "OnboardingTrainingFaqExplanation": "Áno, máme školiace služby ABP, ktoré vám pomôžu rýchlo spustiť váš projekt ABP. Dozviete sa o ABP od hlavného člena tímu ABP a získate zručnosti na začatie vášho projektu ABP. Na onboardingovom školení vám vysvetlíme, ako nastaviť vaše vývojové prostredie, nainštalovať požadované nástroje, vytvoriť plne funkčnú stránku CRUD. Školenie bude prebiehať naživo a bude sa používať aplikácia Zoom a sme otvorení využívaniu ďalších platforiem online stretnutí. Jazykom školenia bude angličtina. Svoje otázky o ABP môžete klásť aj počas sedení. Pre obe strany bude naplánovaný vhodný čas a dátum. Ak chcete získať ďalšie informácie, kontaktujte nás na adrese info@abp.io.", "SupportPolicyFaqTitle": "Aká je vaša politika podpory?", - "SupportPolicyFaqExplanation": "Podporujeme iba aktívnu a predchádzajúcu hlavnú verziu. Nezaručujeme vydanie opravy pre 3. a staršiu hlavnú verziu. Napríklad, ak je aktívna verzia 7.0.0, vydáme opravné verzie pre 6.x.x aj 7.x.x. Okrem toho poskytujeme podporu len pre problémy súvisiace s ABP Framework a ABP Commercial. To znamená, že neposkytujeme podporu pre aplikácie tretích strán, cloudové služby a iné periférne knižnice používané produktmi ABP. Vynaložíme komerčne primerané úsilie, aby sme našim zákazníkom poskytli technickú podporu počas oficiálnej pracovnej doby spoločnosti \"Volosoft Bilisim A.S\". Na druhej strane sa nezaväzujeme k času odozvy podľa dohody o úrovni služieb (SLA), ale budeme sa snažiť reagovať na technické problémy čo najrýchlejšie v rámci našej oficiálnej pracovnej doby. Ak sa so zákazníkom nedohodnete inak, poskytujeme podporu len na adrese https://support.abp.io. Máme aj súkromnú e-mailovú podporu, ktorá je k dispozícii len držiteľom licencie Enterprise.", + "SupportPolicyFaqExplanation": "Podporujeme iba aktívnu a predchádzajúcu hlavnú verziu. Nezaručujeme vydanie opravy pre 3. a staršiu hlavnú verziu. Napríklad, ak je aktívna verzia 7.0.0, vydáme opravné verzie pre 6.x.x aj 7.x.x. Okrem toho poskytujeme podporu len pre problémy súvisiace s ABP Framework a ABP Commercial. To znamená, že neposkytujeme podporu pre aplikácie tretích strán, cloudové služby a iné periférne knižnice používané produktmi ABP. Vynaložíme komerčne primerané úsilie, aby sme našim zákazníkom poskytli technickú podporu počas oficiálnej pracovnej doby spoločnosti \"Volosoft Bilisim A.S\". Na druhej strane sa nezaväzujeme k času odozvy podľa dohody o úrovni služieb (SLA), ale budeme sa snažiť reagovať na technické problémy čo najrýchlejšie v rámci našej oficiálnej pracovnej doby. Ak sa so zákazníkom nedohodnete inak, poskytujeme podporu len na adrese https://abp.io/support/questions. Máme aj súkromnú e-mailovú podporu, ktorá je k dispozícii len držiteľom licencie Enterprise.", "DowngradeLicensePlan": "Môžem v budúcnosti prejsť na nižší licenčný plán?", "DowngradeLicensePlanExplanation": "Existujúci licenčný plán nemôžete znížiť. Môžete si však zakúpiť nový nižší licenčný plán a pokračovať vo vývoji s novou licenciou. Po zakúpení nižšej licencie sa stačí prihlásiť do nového licenčného plánu prostredníctvom príkazu ABP CLI: abp login -o `.", "LicenseTransfer": "Môže sa licencia preniesť z jedného vývojára na druhého?", diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/sl.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/sl.json index ec160fea38..3fb3d559d4 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/sl.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/sl.json @@ -355,7 +355,7 @@ "FreeDDDEBook": "Brezplačna e-knjiga DDD", "StartFree": "Začnite brezplačno", "FreeTrial": "Brezplačen preizkus", - "AcceptsMarketingCommunications": " Da, rad bi prejemal marketinška sporočila ABP Commercial.", + "AcceptsMarketingCommunications": " Da, rad bi prejemal marketinška sporočila ABP.", "PurposeOfUsage": "Namen uporabe", "Industry": "Industrija", "Choose": "-Izberi -", @@ -382,7 +382,7 @@ "TrialLicenseExpireMessage": "Uporabljate preizkusno licenco in vaša preizkusna licenca bo potekla {0}.", "TryForFree": "Poskusite brezplačno", "TrialLicenseExpiredInfo": "Vaša preizkusna licenca je potekla!", - "CommercialNewsletterConfirmationMessage": "Strinjam se s pogoji in določili in pravilnikom o zasebnosti .", + "CommercialNewsletterConfirmationMessage": "Strinjam se s pogoji in določili in pravilnikom o zasebnosti .", "BlackFridayDiscount": "Popust Black Friday", "MultipleOrganizationInfo": "Oglejte si vse svoje organizacije", "PaymentFailedInfo": "Žal plačilo ni uspelo! ", diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/tr.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/tr.json index fd191d27a5..2fd650a4fb 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/tr.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/tr.json @@ -547,7 +547,7 @@ "Pricing_Page_Testimonial_2": "Özel geliştirme projelerinin ek yükünü azaltmak için ABP Commercial kullanmanın değerini görüyoruz. Ekip, farklı proje akışlarında kod modelini birleştirebiliyor. Yeni özellikleri eskisinden daha hızlı oluşturabilmemiz için Frameworkte daha fazla potansiyel görüyoruz. ABP Commercial'dan yararlanmanın değerini sürekli olarak göreceğimize inanıyoruz.", "Pricing_Page_Testimonial_3": "ABP'yi seviyoruz. Her şeyi sıfırdan yazmak zorunda kalmıyoruz. Kullanıma hazır özellikler ile başlıyoruz ve sadece gerçekten yazmamız gerekenlere odaklanıyoruz. Ayrıca, ABP iyi tasarlanmış, daha az kod ve düşük hata ile yüksek kalitede. İhtiyaç duyduğumuz her şeyi kendi başımıza yazmak zorunda kalsaydık, yıllarımızı harcamak zorunda kalabilirdik. Hoşumuza giden bir diğer şey de yeni sürümün, sorun düzeltmenin ya da iyileştirmenin iki haftada bir çıkması. Çok uzun süre beklemiyoruz.", "Pricing_Page_Testimonial_4": "ABP Commercial harika bir ürün, tavsiye ederim. Müşterilerimiz için ticari ürünleri tek bir yapılandırılabilir platformda pazara sunuyor. Framework ve araçların herhangi bir ekibe sağladığı hızlı başlangıç her kuruşa değer. ABP Commercial ihtiyaçlarımız için en uygun üründü.", - "Pricing_Page_Testimonial_5": "ABP Framework sadece bir framework değil, aynı zamanda bir proje geliştirme/yönetme rehberi, çünkü DDD, GenericRepository, DI, Microservice ve Modularity eğitimleri veriyor. Framework'ün kendisini kullanmayacak olsanız bile, iyi ve profesyonelce hazırlanmış docs.abp.io ile kendinizi geliştirebilirsiniz (OpenIddict, Redis, Quartz vb.). Birçok şey önceden hazır olduğu için proje geliştirme süresini önemli ölçüde kısaltıyor (Giriş sayfası, istisna işleme, veri filtreleme, tohumlama, denetim günlüğü, yerelleştirme, otomatik API denetleyicisi vb.) Uygulamamızdan bir örnek olarak, stok kontrolü için Local Event Bus kullandım. Böylece stok işleyicisi yazarak sipariş hareketlerini yönetebiliyorum. CreationTime, CreatorId için zaman kaybetmemek harika. Bunlar otomatik olarak dolduruluyor.", + "Pricing_Page_Testimonial_5": "ABP Framework sadece bir framework değil, aynı zamanda bir proje geliştirme/yönetme rehberi, çünkü DDD, GenericRepository, DI, Microservice ve Modularity eğitimleri veriyor. Framework'ün kendisini kullanmayacak olsanız bile, iyi ve profesyonelce hazırlanmış abp.io/docs ile kendinizi geliştirebilirsiniz (OpenIddict, Redis, Quartz vb.). Birçok şey önceden hazır olduğu için proje geliştirme süresini önemli ölçüde kısaltıyor (Giriş sayfası, istisna işleme, veri filtreleme, tohumlama, denetim günlüğü, yerelleştirme, otomatik API denetleyicisi vb.) Uygulamamızdan bir örnek olarak, stok kontrolü için Local Event Bus kullandım. Böylece stok işleyicisi yazarak sipariş hareketlerini yönetebiliyorum. CreationTime, CreatorId için zaman kaybetmemek harika. Bunlar otomatik olarak dolduruluyor.", "Pricing_Page_Testimonial_6": "ABP Framework iyi bir framework ancak kullandığı farklı katmanları, sınıfları ve kütüphaneleri (özellikle ABP) anlamak için zaman gerekiyor. Kod tabanını okumak için çok zaman harcadım, ancak ABP Commercial, proje özel entitylerini (AR) ve her birine bağlı depoyu oluşturmak için bize zaman kazandırdı. ABP'de kullanılan yaklaşımın çok olgun olmasını da beğendim, DDD ve monolith'e dayandığını biliyoruz.", "Pricing_Page_Testimonial_7": "Bir başlangıç olarak hızlı bir şekilde yineleme yapmamız ve temel olmayan özellikler için minimum zaman harcamamız gerekiyor.\nMühendislerimiz son derece deneyimli mühendislerden genç mühendislere kadar çeşitlilik gösteriyor, ortak bir anlayışa ve teknik ve alan bilgisini paylaşmanın bir yoluna ihtiyacımız vardı, ABP harika kılavuzları ve belgeleri sayesinde bunu yapmamızı sağladı. \nABP ile kutudan çıkar çıkmaz çalıştıkları için endişelenmemize gerek kalmayan şeyler var. \nABP, hızlı prototip oluşturma ve geliştirmeyi kolaylaştırmamıza yardımcı oldu, özelliğin başlangıcından üretime kadar 4 haftadan kısa bir süre geçti. Lisansa dahil olan tüm premium özellikleriyle ABP, Yazılım Mühendisliği tarafında bize \"Startup in a Box\" sağladı.", "Pricing_Page_Testimonial_8": "ABP Commercial'i müşterilerine sunulan ürün yelpazesini genişletmek isteyen herkese tavsiye ederim. Dağıtılmış bir kurumsal ortamı kullanmanız gerektiğinde (Angular, WPF, Win&Linux), harika bir seçenek. Ürünlerinin yanı sıra, işlerimizi daha hızlı ve kolay hale getiren desteklerini de seviyoruz. Şimdiden gelecekte işimizi genişletmemizde bize destek olacak harika bir ortağı bulduğumuzu biliyoruz.", @@ -726,7 +726,7 @@ "Landing_Page_DocsModuleDescription_9": "GitHub kaynağına ek olarak, dokümantasyon kaynağı olarak bir klasörün kullanılmasına izin verir.", "Landing_Page_FileManagementModuleDescription_1": "Dosyaları hiyerarşik bir klasör yapısı içinde yükleyin, indirin ve düzenleyin.", "Landing_Page_FileManagementModuleDescription_2": "Bu modül, dosyaları hiyerarşik bir klasör yapısında yüklemek, indirmek ve düzenlemek için kullanılır. Ayrıca multi-tenancy uyumludur ve tenancy için toplam boyut sınırını belirleyebilirsiniz.", - "Landing_Page_FileManagementModuleDescription_3": "Bu modül BLOB Depolama sistemine dayanmaktadır, bu nedenle dosya içeriklerini depolamak için farklı depolama sağlayıcıları kullanabilir.", + "Landing_Page_FileManagementModuleDescription_3": "Bu modül BLOB Depolama sistemine dayanmaktadır, bu nedenle dosya içeriklerini depolamak için farklı depolama sağlayıcıları kullanabilir.", "Landing_Page_IdentityModuleDescription_1": "Bu modül bir uygulamanın Kullanıcı ve Rol sistemini uygular;", "Landing_Page_IdentityModuleDescription_2": "Microsoft'un ASP.NET Core Identity kütüphanesi üzerine inşa edilmiştir.", "Landing_Page_IdentityModuleDescription_3": "Sistemdeki rolleri ve kullanıcıları yönetin. Bir kullanıcının birden çok role sahip olmasına izin verilir.", @@ -806,9 +806,9 @@ "SeeLeptonDocumentation": "Lepton Dokümantasyonuna Bakın", "GetLepton": "Lepton'u Şimdi Alın", "WhyUseAbpIoPlatform": "Sıfırdan yeni bir proje oluşturmak yerine neden ABP.IO Platformunu kullanmalıyım?", - "WhyUseAbpIoPlatformFaqExplanation": "ABP.IO Platformunu kullanmanın her şeyi kendiniz yapmaya göre neden önemli bir avantaja sahip olduğuna dair ayrıntılı bir açıklama için bu belgeye bakın.", + "WhyUseAbpIoPlatformFaqExplanation": "ABP.IO Platformunu kullanmanın her şeyi kendiniz yapmaya göre neden önemli bir avantaja sahip olduğuna dair ayrıntılı bir açıklama için bu belgeye bakın.", "SupportPolicyFaqTitle": "Destek politikanız nedir?", - "SupportPolicyFaqExplanation": "Yalnızca etkin ve önceki ana sürümü destekliyoruz. Üçüncü ve daha eski ana sürümler için bir yama sürümünü garanti etmiyoruz. Örneğin, etkin sürüm 7.0.0 ise, hem 6.x.x hem de 7.x.x için yama sürümleri yayınlayacağız. Ayrıca, yalnızca ABP Framework ve ABP Commercial ile ilgili sorunlar için destek sağlıyoruz. Bu, ABP ürünleri tarafından kullanılan 3. taraf uygulamalar, bulut hizmetleri ve diğer çevresel kütüphaneler için destek verilmediği anlamına gelir. Müşterilerimize \"Volosoft Bilişim A.Ş\"nin resmi çalışma saatleri içinde teknik destek sağlamak için ticari olarak makul çabayı göstereceğiz. Öte yandan, bir hizmet seviyesi anlaşması (SLA) yanıt süresi taahhüt etmiyoruz, ancak teknik sorunlara resmi çalışma saatlerimiz içinde mümkün olduğunca çabuk yanıt vermeye çalışacağız. Müşteri ile özel bir anlaşma yapılmadığı sürece, yalnızca https://support.abp.io adresinden destek sağlıyoruz. Ayrıca, yalnızca Kurumsal Lisans sahiplerinin kullanabildiği özel e-posta desteğimiz de bulunmaktadır.", + "SupportPolicyFaqExplanation": "Yalnızca etkin ve önceki ana sürümü destekliyoruz. Üçüncü ve daha eski ana sürümler için bir yama sürümünü garanti etmiyoruz. Örneğin, etkin sürüm 7.0.0 ise, hem 6.x.x hem de 7.x.x için yama sürümleri yayınlayacağız. Ayrıca, yalnızca ABP Framework ve ABP Commercial ile ilgili sorunlar için destek sağlıyoruz. Bu, ABP ürünleri tarafından kullanılan 3. taraf uygulamalar, bulut hizmetleri ve diğer çevresel kütüphaneler için destek verilmediği anlamına gelir. Müşterilerimize \"Volosoft Bilişim A.Ş\"nin resmi çalışma saatleri içinde teknik destek sağlamak için ticari olarak makul çabayı göstereceğiz. Öte yandan, bir hizmet seviyesi anlaşması (SLA) yanıt süresi taahhüt etmiyoruz, ancak teknik sorunlara resmi çalışma saatlerimiz içinde mümkün olduğunca çabuk yanıt vermeye çalışacağız. Müşteri ile özel bir anlaşma yapılmadığı sürece, yalnızca https://abp.io/support/questions adresinden destek sağlıyoruz. Ayrıca, yalnızca Kurumsal Lisans sahiplerinin kullanabildiği özel e-posta desteğimiz de bulunmaktadır.", "ExtraQuestionCreditsFaqTitle": "Ekstra destek soru kredisi satın alabilir miyim?", "ExtraQuestionCreditsFaqExplanation": "Evet, alabilirsiniz. Ekstra soru kredisi satın almak için info@abp.io adresine kuruluşunuzun e-posta adresini içeren bir e-posta gönderin. Ekstra soru kredileri için fiyat listesi şöyle:
  • 50 soru paketi $999
  • 25 soru paketi $625
  • 15 soru paketi $450
", "BlazoriseLicense": "Blazorise lisansı satın almamız gerekiyor mu?", @@ -880,7 +880,7 @@ "CreatingAnEmptySolution_THEPROBLEM_Description4": "3. taraf kütüphaneleri nasıl entegre edersiniz?", "CreatingAnEmptySolution_THEPROBLEM_Description5": "Otomatik testler nasıl kurulur?", "ABPSOLUTION": "ABP PROJESİ", - "CreatingAnEmptySolution_ABPSOLUTION_Description": "ABP, iyi tasarlanmış, katmanlı ve üretim için hazır bir başlangıç projesi sağlar. Bu proje, aynı zamanda her katman için önceden yapılandırılmış birim ve entegrasyon testlerini içerir. Temeli Domain Driven Design prensiplerine dayanmaktadır. ", + "CreatingAnEmptySolution_ABPSOLUTION_Description": "ABP, iyi tasarlanmış, katmanlı ve üretim için hazır bir başlangıç projesi sağlar. Bu proje, aynı zamanda her katman için önceden yapılandırılmış birim ve entegrasyon testlerini içerir. Temeli Domain Driven Design prensiplerine dayanmaktadır. ", "CommonLibraries": "Ortak Kütüphaneler", "CommonLibraries_THEPROBLEM_Description": "Ortak gereksinimleri uygulayabilmek için hangi kütüphaneleri kullanmalısınız? Yazılım geliştirme ekosistemi son derece dinamik olduğundan, en son araçları, kütüphaneleri, trendleri ve yaklaşımları takip etmek zorlayıcı olabilir.", "CommonLibraries_ABPSOLUTION_Description": "ABP, popüler, olgun ve güncel kütüphaneleri projeye önceden entegre eder. Bunları entegre etme veya birbirleriyle iletişim kurma konusunda zaman harcamanıza gerek yoktur. Kütüphaneler kutudan çıkar çıkmaz düzgün bir şekilde çalışırlar.", @@ -898,7 +898,7 @@ "KeepingYourSolutionUpToDate": "Projenizi Güncel Tutma", "KeepingYourSolutionUpToDate_THEPROBLEM_Description": "Geliştirmeye başladıktan sonra, kullanılan kütüphanelerin yeni sürümlerini güncellemeler ve yamalar için takip etmelisiniz.", "KeepingYourSolutionUpToDate_ABPSOLUTION_Description": "Düzenli olarak tüm paketleri en son sürümlere güncelliyor ve bunları kararlı sürüm öncesinde test ediyoruz. ABP Framework'ü güncellediğinizde, tüm bağımlılıkları en güncel teknolojiye yükseltilir.", - "KeepingYourSolutionUpToDate_ABPSOLUTION_Description2": "Abp update CLI komutu, otomatik olarak bir projedeki tüm ABP bağımlı NuGet ve NPM paketlerini keşfeder ve günceller. ABP ile en son sürümlerde kalmak daha kolaydır.", + "KeepingYourSolutionUpToDate_ABPSOLUTION_Description2": "Abp update CLI komutu, otomatik olarak bir projedeki tüm ABP bağımlı NuGet ve NPM paketlerini keşfeder ve günceller. ABP ile en son sürümlerde kalmak daha kolaydır.", "DRY": "Kendini Tekrar Etme!", "DRY_Description": "Temel bir proje oluşturmak önemli zaman alır ve iyi bir mimari deneyimi gerektirir. Ancak bu sadece başlangıçtır! Geliştirmeye başladıkça, muhtemelen birçok tekrarlayan kod yazmanız gerekecektir; eğer tüm bunlar otomatik olarak işlenebilseydi harika olurdu.", "DRY_Description2": "ABP, konvansiyon üzerinde konfigürasyon prensibini takip ederek tekrarlayan kodları mümkün olduğunca otomatikleştirir ve basitleştirir. Ancak manuel moda geçmeniz gerektiğinde sizi sınırlamaz. Kontrol her zaman sizin elinizdedir.", @@ -938,12 +938,12 @@ "Modularity_THEPROBLEM_Description": "Gerçekten modüler bir sistem oluşturmak kolay değildir! Sistemin tüm yönleri (veritabanı, varlıklar, API'lar, UI sayfaları/bileşenleri) modüllere ayrılabilir ve her modül, diğerleri olmadan tekrar kullanılabilir. ASP.NET Core, böyle bir modüler mimari sunmaz. Bunu istiyorsanız, sıfırdan düşünmeniz gerekebilir.", "Modularity_ABPSOLUTION_Description": "ABP Framework, modüler bir uygulama geliştirme yapısı olmak üzere doğmuştur. Frameworkteki her özellik, modülerlikle uyumlu olacak şekilde geliştirilmiştir. Belgeler ve rehberler, nasıl standart bir şekilde yeniden kullanılabilir modüller geliştireceğinizi açıklar.", "SaaSMultiTenancy": "SaaS / Multi Tenancy", - "SaaSMultiTenancy_THEPROBLEM_Description": "Multi-Tenancy SaaS sistemlerini uygulamanın yaygın bir yoludur. Ancak, tutarlı bir Multi-Tenancy altyapısı uygulamak karmaşık hale gelebilir.", + "SaaSMultiTenancy_THEPROBLEM_Description": "Multi-Tenancy SaaS sistemlerini uygulamanın yaygın bir yoludur. Ancak, tutarlı bir Multi-Tenancy altyapısı uygulamak karmaşık hale gelebilir.", "SaaSMultiTenancy_ABPSOLUTION_Description": "ABP Framework, eksiksiz bir multi tenancy altyapı sağlar ve işletme kodunuzdan karmaşıklığı soyutlar. Uygulama kodunuzun çoğu multi-tenancy duyarlı olacaktır, ancak ABP Framework otomatik olarak veritabanını, önbelleği ve diğer tenancy ayrıntılarını birbirinden izole eder. Tek bir veritabanını, her tenancy için bir veritabanını ve karma yaklaşımları destekler. Normalde multi-tenancy uyumlu olmayan Microsoft Identity ve OpenIddict gibi kütüphaneleri uygun şekilde yapılandırır.", "Microservices": "Mikroservisler", "Microservices_THEPROBLEM_Description": "Bir mikroservis sistemi oluşturmak birçok altyapı ayrıntısı gerektirir: Uygulamaların ve mikroservislerin doğrulanması, yetkilendirilmesi ve mikroservisler arasında eşzamansız mesajlaşma ve eşzamanlı (Dinlenme/GRPC) iletişim kalıplarının uygulanması en temel konulardır.", - "Microservices_ABPSOLUTION_Description": "ABP Framework, endüstri standardı araçları kullanarak mikroservis projenizi uygulamanıza yardımcı olacak hizmetler, rehberler, ve örnekler sağlar.", - "Microservices_ABPSOLUTION_Description2": "ABP Commercial bir adım daha ileri gider ve mikroservis projenizi başlatmak için tam bir başlangıç şablonu sağlar.", + "Microservices_ABPSOLUTION_Description": "ABP Framework, endüstri standardı araçları kullanarak mikroservis projenizi uygulamanıza yardımcı olacak hizmetler, rehberler, ve örnekler sağlar.", + "Microservices_ABPSOLUTION_Description2": "ABP Commercial bir adım daha ileri gider ve mikroservis projenizi başlatmak için tam bir başlangıç şablonu sağlar.", "PreBuiltModules": "Önceden Oluşturulmuş Modüller", "PreBuiltModules_THEPROBLEM_Description": "Hepimizin benzer ancak biraz farklı iş gereksinimleri var. Ancak hiç kimsenin kodu doğrudan projenizde çalışamadığından dolayı tekerleği yeniden icat etmeliyiz. Hepsi daha büyük bir projenin gömülü parçalarıdır.", "PreBuiltModules_ABPSOLUTION_Description": "ABP Commercial modülleri ödeme, sohbet, dosya yönetimi, denetim günlüğü raporlama vb. gibi birçok yeniden kullanılabilir uygulama modülü sağlar. Bu modüllerin hepsi projenize kolayca yüklenir ve doğrudan çalışır. Sürekli olarak daha fazla modül ekliyoruz.", @@ -976,8 +976,8 @@ "DevelopYourSolution_Description1": "ABP'nin altyapısı, tekrarlayan işleri otomatikleştirerek ve önceden yapılandırılmış altyapı ve uygulama özellikleri sağlayarak, kendi iş kodunuza odaklanmanızı sağlar.", "DevelopYourSolution_Description2": "Aşağıdaki kod bloğunda, ABP Framework'ünün kodunuza sorunsuz entegre olduğunu ve tekrarlayan görevleri sizin için otomatikleştirdiğini görebilirsiniz.", "DevelopYourSolution_Description3": "Bu kısa kod bloğunda bile, ABP sizin için birçok şey yapar.", - "DevelopYourSolution_Description4": "Temel sınıflar sağlar ve bağımlılık enjeksiyonu gibi kuralları uygulamanıza yardımcı olur. Generic repository servisleri, veritabanı ile etkileşimde bulunmak için uygun bir yol sunar. Deklaratif yetkilendirme, ince ayarlı bir izin sistemini kullanır.", - "DevelopYourSolution_Description5": "ABP, \n Unit of Work (veritabanı bağlantısı ve işlem yönetimi için), \n istisna işleme, \n doğrulama\n ve denetim kaydı tamamen otomatikleştirir. Günlük geliştirme görevlerinizi basitleştirmek ve üretim için hazır \n uygulamalar oluştururken kendi kodunuza odaklanmanızı sağlamak için birçok başka yapı taşı sağlar.", + "DevelopYourSolution_Description4": "Temel sınıflar sağlar ve bağımlılık enjeksiyonu gibi kuralları uygulamanıza yardımcı olur. Generic repository servisleri, veritabanı ile etkileşimde bulunmak için uygun bir yol sunar. Deklaratif yetkilendirme, ince ayarlı bir izin sistemini kullanır.", + "DevelopYourSolution_Description5": "ABP, \n Unit of Work (veritabanı bağlantısı ve işlem yönetimi için), \n istisna işleme, \n doğrulama\n ve denetim kaydı tamamen otomatikleştirir. Günlük geliştirme görevlerinizi basitleştirmek ve üretim için hazır \n uygulamalar oluştururken kendi kodunuza odaklanmanızı sağlamak için birçok başka yapı taşı sağlar.", "DevelopYourSolution_Description6": "Eğer bunu tamamen manuel olarak yapacaksanız, bu kod bloğunun ne kadar uzun ve karmaşık olabileceğini düşünebilirsiniz.", "SuiteCrudGenerationInFewSeconds": "Projenizin el ile kodlamaya ek olarak, ABP Suite araçları kullanarak birkaç dakika içinde tamamen çalışan gelişmiş CRUD sayfaları oluşturabilirsiniz. Kodu projenize üretir, böylece özel gereksinimlerinize göre ayarlayabilirsiniz.", "DeployAnywhere_Description1": "Günün sonunda, saf bir .NET projeniz var. Projenizi kendi sunucunuza, bir bulut platformuna, Kubernetes'e veya istediğiniz herhangi bir yere dağıtabilirsiniz. İstediğiniz kadar sunucuya dağıtabilirsiniz. ABP, dağıtım ortamı bağımsız bir araçtır.", @@ -1084,8 +1084,8 @@ "SendBetaRequest": "Beta Talebi Gönder", "YouJoinedTheBetaTesterProgram": "ABP Studio beta test programına katıldınız.", "Releases": "Sürüm Notları", - "ReleasesDescription": "Bu sayfa, her bir sürümle ilgili detaylı bilgileri içerir. Belirli bir sürüm için kapatılan tüm pull requestleri görebilirsiniz. Genel milestone gelişmeleri için özet sürüm notları sayfasını kontrol edebilirsiniz.", - "DoesTheSubscriptionRenewAutomaticallyExplanationAutoRenewal": "ABP Commercial lisansınızı otomatik olarak yenilemenize olanak tanır. Bu isteğe bağlı bir hizmettir. Yeni bir lisans satın alırken veya daha sonra kuruluş yönetim sayfanızdan bu özelliği etkinleştirebilirsiniz. Otomatik yenileme, kuruluş yönetim sayfanızın 'Ödeme Yöntemi' bölümünde bulunur. Otomatik yenilemeyi kapatmak isterseniz, kuruluş yönetim sayfasına gidin, 'Ödeme Yöntemi' bölümüne gidin ve 'Otomatik Yenileme' onay kutusundaki işareti kaldırın. Otomatik yenileme özelliğini kapattığınızda, lisansınızı kendiniz yenilemelisiniz.", + "ReleasesDescription": "Bu sayfa, her bir sürümle ilgili detaylı bilgileri içerir. Belirli bir sürüm için kapatılan tüm pull requestleri görebilirsiniz. Genel milestone gelişmeleri için özet sürüm notları sayfasını kontrol edebilirsiniz.", + "DoesTheSubscriptionRenewAutomaticallyExplanationAutoRenewal": "ABP Commercial lisansınızı otomatik olarak yenilemenize olanak tanır. Bu isteğe bağlı bir hizmettir. Yeni bir lisans satın alırken veya daha sonra kuruluş yönetim sayfanızdan bu özelliği etkinleştirebilirsiniz. Otomatik yenileme, kuruluş yönetim sayfanızın 'Ödeme Yöntemi' bölümünde bulunur. Otomatik yenilemeyi kapatmak isterseniz, kuruluş yönetim sayfasına gidin, 'Ödeme Yöntemi' bölümüne gidin ve 'Otomatik Yenileme' onay kutusundaki işareti kaldırın. Otomatik yenileme özelliğini kapattığınızda, lisansınızı kendiniz yenilemelisiniz.", "CreditCards": "Kredi Kartları", "BillingInformation": "Ödeme Bilgileri", "MyOrganizations_LearnMorePlan": "Fiyatlandırma sayfasında planlar hakkında daha fazla bilgi edinin", @@ -1134,7 +1134,7 @@ "Purchase_Save": "{0}% İndirim {1}", "Total": "Toplam", "MultipleYearDiscount": "Çoklu Yıl İndirimi", - "TrainingDescription": "ABP Framework ve ABP Commercial konusunda uzmanlık kazanmak isteyenler için aşağıdaki eğitim paketlerini sunuyoruz.", + "TrainingDescription": "ABP Framework konusunda uzmanlık kazanmak isteyenler için aşağıdaki eğitim paketlerini sunuyoruz.", "PurchaseDevelopers": "geliştirici", "RemoveBasket": "Sepetten kaldır", "TrainingPack": "Eğitim paketi", diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/vi.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/vi.json index 72bc10f649..eab68bdf79 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/vi.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/vi.json @@ -382,7 +382,7 @@ "TrialLicenseExpireMessage": "Bạn đang sử dụng giấy phép dùng thử và giấy phép dùng thử của bạn sẽ hết hạn vào {0}.", "TryForFree": "Thử miễn phí", "TrialLicenseExpiredInfo": "Thời gian cấp phép dùng thử của bạn đã hết hạn!", - "CommercialNewsletterConfirmationMessage": "Tôi đồng ý với Điều khoản & điều kiện Chính sách quyền riêng tư .", + "CommercialNewsletterConfirmationMessage": "Tôi đồng ý với Điều khoản & điều kiện Chính sách quyền riêng tư .", "BlackFridayDiscount": "Giảm giá Black Friday", "MultipleOrganizationInfo": "Xem tất cả các tổ chức của bạn", "PaymentFailedInfo": "Rất tiếc, thanh toán không thành công! ", diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/zh-Hans.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/zh-Hans.json index a0e17b5e66..60364800b6 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/zh-Hans.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/zh-Hans.json @@ -720,7 +720,7 @@ "Landing_Page_DocsModuleDescription_9": "除了 GitHub 源代码外,还允许使用文件夹作为文档源代码。", "Landing_Page_FileManagementModuleDescription_1": "以分层文件夹结构上传、下载和整理文件。", "Landing_Page_FileManagementModuleDescription_2": "该模块用于上传、下载和以分层文件夹结构组织文件。它还与多租户兼容,你可以确定租户的总大小限制。", - "Landing_Page_FileManagementModuleDescription_3": "该模块基于 BLOB 存储系统,因此可以使用不同的存储提供商来存储文件内容。", + "Landing_Page_FileManagementModuleDescription_3": "该模块基于 BLOB 存储系统,因此可以使用不同的存储提供商来存储文件内容。", "Landing_Page_IdentityModuleDescription_1": "该模块实现了应用程序的用户和角色系统;", "Landing_Page_IdentityModuleDescription_2": "基于 Microsoft 的 ASP.NET Core Identity 库构建。", "Landing_Page_IdentityModuleDescription_3": "管理系统中的角色用户。允许一个用户拥有多个角色。", @@ -736,7 +736,7 @@ "Landing_Page_PaymentModuleDescription_1": "提供不同支付网关的集成。", "Landing_Page_PaymentModuleDescription_2": "该模块集成了支付网关,因此您可以轻松从客户处获得付款。", "Landing_Page_PaymentModuleDescription_3": "该模块支持以下支付网关", - "Welcome_Page_UseSameCredentialForCommercialWebsites": "在 commercial.abp.iosupport.abp.io 中使用相同的凭据。", + "Welcome_Page_UseSameCredentialForCommercialWebsites": "在 commercial.abp.iosupport.abp.io 中使用相同的凭据。", "WatchCrudPagesVideo": "观看 \"使用 ABP Suite 创建 CRUD 页面 \"视频!", "WatchGeneratingFromDatabaseVideo": "观看 \"ABP Suite:从现有数据库表生成 CRUD 页面 \"视频!", "WatchTakeCloserLookVideo": "观看 \"近距离了解代码生成:ABP Suite \"视频!", @@ -886,8 +886,8 @@ "DevelopYourSolution_Description1": "ABP 的基础架构可自动执行重复性工作,并提供预构建的基础架构和应用程序 功能,从而使您专注于自己的业务代码。", "DevelopYourSolution_Description2": "在下面的代码块中,您可以看到 ABP 框架是如何无缝集成到您的代码中并自动执行重复性任务的。", "DevelopYourSolution_Description3": "即使在这个简码块中,ABP 也能为您做很多事情。", - "DevelopYourSolution_Description4": "它提供了应用约定的基类,如\n 依赖注入。通用类\n 资源库服务提供了一种方便的\n 与数据库交互的便捷方法。声明式\n 授权与经过微调的权限系统配合使用。", - "DevelopYourSolution_Description5": "ABP 完全自动化\n 工作单元(用于数据库连接和事务管理)、\n 异常处理、\n 验证。\n 以及 审计日志。它提供了更多的构建模块,可简化您的日常开发任务,并在创建生产就绪应用程序的同时专注于您自己的代码。\n 应用程序。", + "DevelopYourSolution_Description4": "它提供了应用约定的基类,如\n 依赖注入。通用类\n 资源库服务提供了一种方便的\n 与数据库交互的便捷方法。声明式\n 授权与经过微调的权限系统配合使用。", + "DevelopYourSolution_Description5": "ABP 完全自动化\n 工作单元(用于数据库连接和事务管理)、\n 异常处理、\n 验证。\n 以及 审计日志。它提供了更多的构建模块,可简化您的日常开发任务,并在创建生产就绪应用程序的同时专注于您自己的代码。\n 应用程序。", "DevelopYourSolution_Description6": "可以想象,如果全部由人工完成,代码块会有多么冗长和复杂。", "SuiteCrudGenerationInFewSeconds": "除了手工编码解决方案外,您还可以使用 ABP Suite 工具在几分钟内创建可全面运行的高级 CRUD 页面。它可将代码生成到您的解决方案中,因此您可以根据您的自定义需求对其进行微调。", "DeployAnywhere_Description1": "最后,您将拥有一个纯粹的 .NET 解决方案。您可以将解决方案部署到自己的服务器、云平台、Kubernetes 或任何您想部署的地方。您可以部署到任意多的服务器上。ABP 是一种与部署环境无关的工具。", @@ -1002,7 +1002,7 @@ "CreatingAnEmptySolution_THEPROBLEM_Description4": "如何与第三方资料库和系统集成?", "CreatingAnEmptySolution_THEPROBLEM_Description5": "如何设置自动测试?", "ABPSOLUTION": "ABP 解决方案", - "CreatingAnEmptySolution_ABPSOLUTION_Description": "ABP 基于领域驱动设计原则,提供了一个架构完善、分层且可投入生产的启动解决方案。该解决方案还包括每个层的预配置单元和集成测试项目。", + "CreatingAnEmptySolution_ABPSOLUTION_Description": "ABP 基于领域驱动设计原则,提供了一个架构完善、分层且可投入生产的启动解决方案。该解决方案还包括每个层的预配置单元和集成测试项目。", "CommonLibraries": "通用库", "CommonLibraries_THEPROBLEM_Description": "您应该使用哪些库来实现常见需求?软件开发生态系统是高度动态的,要跟上最新的工具、库、趋势和方法具有挑战性。", "CommonLibraries_ABPSOLUTION_Description": "ABP 将流行、成熟和最新的库预先集成到解决方案中。你不需要花时间集成它们或让它们相互通信。它们开箱即可正常工作。", @@ -1020,7 +1020,7 @@ "KeepingYourSolutionUpToDate": "保持解决方案最新", "KeepingYourSolutionUpToDate_THEPROBLEM_Description": "开始开发后,您必须跟踪所使用库的新版本,以便进行升级和打补丁。", "KeepingYourSolutionUpToDate_ABPSOLUTION_Description": "我们会定期将所有包更新至最新版本,并在稳定版本发布前对其进行测试。当你更新 ABP 框架时,它的所有依赖项都会升级到边缘技术。", - "KeepingYourSolutionUpToDate_ABPSOLUTION_Description2": "Abp update CLI 命令可自动发现并升级解决方案中所有依赖 ABP 的 NuGet 和 NPM 包。有了 ABP,使用最新版本变得更加容易。", + "KeepingYourSolutionUpToDate_ABPSOLUTION_Description2": "Abp update CLI 命令可自动发现并升级解决方案中所有依赖 ABP 的 NuGet 和 NPM 包。有了 ABP,使用最新版本变得更加容易。", "DRY": "不要重复自己", "DRY_Description": "创建基础解决方案需要大量时间,并需要良好的建筑经验。然而,这仅仅是个开始!在开始开发时,您可能需要编写大量重复的代码;如果所有这些代码都能自动处理,那就再好不过了。", "DRY_Description2": "ABP 遵循 \"约定重于配置 \"的原则,尽可能自动化和简化重复代码。不过,当您需要切换到手动档时,它也不会限制您。控制权始终掌握在您的手中。", @@ -1061,12 +1061,12 @@ "Modularity_THEPROBLEM_Description": "建立一个真正的模块化系统并非易事!系统的所有方面(数据库、实体、API、UI页面/组件)都可以分割成模块,而且每个模块都可以重用,无需其他模块。普通的 ASP.NET Core 并不提供这样的模块化架构。如果需要,您应该从头开始考虑。", "Modularity_ABPSOLUTION_Description": "ABP 框架是一种模块化应用程序开发结构。框架中的每项功能都是为兼容模块化而开发的。文档和指南解释了如何以标准方式开发可重用的模块。", "SaaSMultiTenancy": "SaaS / 多租户", - "SaaSMultiTenancy_THEPROBLEM_Description": " 多租户是实施 SaaS 系统的一种常见方式。但是,实施一致的多用户基础设施可能会变得复杂。", + "SaaSMultiTenancy_THEPROBLEM_Description": " 多租户是实施 SaaS 系统的一种常见方式。但是,实施一致的多用户基础设施可能会变得复杂。", "SaaSMultiTenancy_ABPSOLUTION_Description": "ABP 框架提供完整的多租户基础架构,并从您的业务代码中抽象出复杂性。您的应用程序代码大部分将具有多租户意识,而 ABP 框架会自动隔离租户之间的数据库、缓存和其他细节。它支持单个数据库、每个租户数据库和混合方法。它能正确配置 Microsoft Identity 和 OpenIddict 等库,这些库通常与多租户不兼容。", "Microservices": "微服务", "Microservices_THEPROBLEM_Description": "构建微服务系统需要许多基础设施细节:对应用程序和微服务进行身份验证和授权,以及在微服务之间实施异步消息传递和同步(Rest/GRPC)通信模式是最基本的问题。", - "Microservices_ABPSOLUTION_Description": "ABP 框架提供服务、指南和示例,帮助您使用行业标准工具实施微服务解决方案。", - "Microservices_ABPSOLUTION_Description2": "ABP Commercial 甚至更进一步,提供了完整的 启动模板,以启动您的微服务解决方案。", + "Microservices_ABPSOLUTION_Description": "ABP 框架提供服务、指南和示例,帮助您使用行业标准工具实施微服务解决方案。", + "Microservices_ABPSOLUTION_Description2": "ABP Commercial 甚至更进一步,提供了完整的 启动模板,以启动您的微服务解决方案。", "PreBuiltModules": "预制模块", "PreBuiltModules_THEPROBLEM_Description": "我们每个人都有相似但略有不同的业务需求。但是,我们都应该重新发明轮子,因为没有人的代码可以直接用于我们的解决方案。它们都是更大解决方案的嵌入部分。", "PreBuiltModules_ABPSOLUTION_Description": "ABP Commercial 模块提供了大量可重用的应用模块,如支付、聊天、文件管理、审计日志报告......等。所有这些模块都可以轻松安装到您的解决方案中并直接运行。我们将不断添加更多模块。", diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/zh-Hant.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/zh-Hant.json index a3ff8212da..212c641305 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/zh-Hant.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/zh-Hant.json @@ -529,7 +529,7 @@ "Pricing_Page_Testimonial_2": "我們看到了使用 ABP Commercial 來減少客製化開發專案的開銷的價值。團隊能夠統一不同專案流中的程式碼模式。我們看到該框架具有更大的潛力,可以讓我們比以前更快地建立新功能。我們相信我們將不斷看到利用 ABP Commercial 的價值。", "Pricing_Page_Testimonial_3": "我們愛 ABP。我們不必從頭開始編寫所有內容。我們從開箱即用的功能開始,只專注於我們真正需要編寫的內容。此外,ABP 架構良好,程式碼品質高,錯誤較少。如果我們必須自己編寫所需的所有內容,我們可能需要花費數年時間。我們喜歡的另一件事是,新版本、問題修復或改進每隔一周很快就會發布。我們不會等太久。", "Pricing_Page_Testimonial_4": "ABP Commercial 是一款極佳的產品,值得推薦。在單一可配置平台上為我們的客戶推出商業產品。為任何團隊提供的框架和工具的快速啟動都是值得的。 ABP Commercial 最適合我們的需求。", - "Pricing_Page_Testimonial_5": "ABP Framework 不僅僅是一個框架,它也是專案開發/管理的指南,因為它提供了 DDD、GenericRepository、DI、微服務和模組化培訓。即使您不打算使用框架本身,您也可以使用經過充分且專業準備的 docs.abp.io 進行開發(OpenIddict、Redis、Quartz 等)。因為很多東西都是預先建立的,所以它大大縮短了專案開發時間(例如登入頁面、異常處理、資料過濾、播種、稽核日誌記錄、本地化、自動 API 控制器等)。作為我們應用程式的範例,我使用本地事件總線進行庫存控制。因此,我可以透過編寫庫存處理程序來管理訂單變更。不浪費時間給CreationTime、CreatorId真是太好了。它們會被自動填滿。", + "Pricing_Page_Testimonial_5": "ABP Framework 不僅僅是一個框架,它也是專案開發/管理的指南,因為它提供了 DDD、GenericRepository、DI、微服務和模組化培訓。即使您不打算使用框架本身,您也可以使用經過充分且專業準備的 abp.io/docs 進行開發(OpenIddict、Redis、Quartz 等)。因為很多東西都是預先建立的,所以它大大縮短了專案開發時間(例如登入頁面、異常處理、資料過濾、播種、稽核日誌記錄、本地化、自動 API 控制器等)。作為我們應用程式的範例,我使用本地事件總線進行庫存控制。因此,我可以透過編寫庫存處理程序來管理訂單變更。不浪費時間給CreationTime、CreatorId真是太好了。它們會被自動填滿。", "Pricing_Page_Testimonial_6": "ABP框架是一個很好的框架,但是它需要時間來理解它使用的不同層、類別和函式庫(尤其是ABP)。我花了很多時間閱讀程式碼庫,但 ABP Commercial 為我們節省了建立專案專業實體 (AR) 以及連結到每個實體的儲存庫的時間。我還喜歡 ABP 中使用的方法非常成熟;我們知道它是基於 DDD 和 monolith 的。", "Pricing_Page_Testimonial_7": "作為一家新創公司,我們需要快速迭代,並在樣板和非核心功能上花費最少的時間。 \n我們的工程師既有經驗豐富的工程師,也有初級工程師,我們需要一種共同的理解和一種共享技術和領域知識的方法,ABP 憑藉其出色的指南和文件使我們能夠做到這一點。 \n有些事情我們不必擔心,因為它們與 ABP 一起開箱即用。 \n ABP 幫助我們簡化了快速原型設計和開發,從功能啟動到生產只花了不到 4 週的時間。憑藉許可證中包含的所有高級功能,ABP 為我們提供了軟體工程方面的「Startup in a Box」。", "Pricing_Page_Testimonial_8": "我會向所有想要擴大客戶可用產品範圍的人推薦 ABP Commercial。當需要使用分散式企業環境(Angular、WPF、Win&Linux)時,它非常棒。除了他們的產品之外,我們還喜歡他們的支持,這使我們的工作更快、更輕鬆。我們已經知道,我們已經找到了一個面向未來的優秀合作夥伴,他將支持我們拓展業務。", @@ -707,7 +707,7 @@ "Landing_Page_DocsModuleDescription_9": "除了 GitHub 來源之外,還允許簡單地使用資料夾作為文件來源。", "Landing_Page_FileManagementModuleDescription_1": "在分層資料夾結構中上傳、下載和組織文件。", "Landing_Page_FileManagementModuleDescription_2": "此模組用於上傳、下載檔案並以分層資料夾結構組織檔案。它還與多租戶相容,您可以確定租戶的總大小限制。", - "Landing_Page_FileManagementModuleDescription_3": "此模組基於BLOB儲存系統,因此可以使用不同的儲存提供者來儲存檔案內容。", + "Landing_Page_FileManagementModuleDescription_3": "此模組基於BLOB儲存系統,因此可以使用不同的儲存提供者來儲存檔案內容。", "Landing_Page_IdentityModuleDescription_1": "該模組實現了應用程式的使用者和角色系統;", "Landing_Page_IdentityModuleDescription_2": "基於Microsoft 的 ASP.NET Core Identity庫建置。", "Landing_Page_IdentityModuleDescription_3": "管理系統中的角色使用者。一個使用者可以擁有多個角色。", @@ -723,7 +723,7 @@ "Landing_Page_PaymentModuleDescription_1": "提供不同支付網關的整合。", "Landing_Page_PaymentModuleDescription_2": "此模組提供支付網關的集成,因此您可以輕鬆地從客戶那裡獲得付款。", "Landing_Page_PaymentModuleDescription_3": "此模組支援以下支付網關", - "Welcome_Page_UseSameCredentialForCommercialWebsites": "對Commercial.abp.iosupport.abp.io使用相同的憑證。", + "Welcome_Page_UseSameCredentialForCommercialWebsites": "對abp.ioabp.io/support使用相同的憑證。", "WatchCrudPagesVideo": "觀看「使用 ABP Suite 建立 CRUD 頁面」影片!", "WatchGeneratingFromDatabaseVideo": "觀看“ABP Suite:從現有資料庫表单產生 CRUD 頁面”影片!", "WatchTakeCloserLookVideo": "觀看“仔細看看程式碼產生:ABP Suite”影片!", @@ -868,8 +868,8 @@ "DevelopYourSolution_Description1": "ABP 的基礎設施透過自動化重複性工作並提供預先建置的基礎架構和應用程式功能,使您能夠專注於自己的業務程式碼。", "DevelopYourSolution_Description2": "在下面的程式碼區塊中,您可以看到 ABP 框架如何無縫整合到您的程式碼中並自動為您執行重複性任務。", "DevelopYourSolution_Description3": "即使在這個短代碼區塊中,ABP 也為您做了很多事情。", - "DevelopYourSolution_Description4": "它提供了應用約定的基類,例如\n依賴注入。通用\n儲存庫服務提供了一個方便的\n方式與資料庫互動。聲明式\n授權與微調的權限系統一起使用。", - "DevelopYourSolution_Description5": "ABP 完全自動化了\n工作單元(用於資料庫連接和交易管理)、 \n異常處理、 \n驗證\n和審計日誌記錄。它提供了更多構建塊來簡化您的日常開發任務並專注於您自己的程式碼,同時創建可用於生產的\n應用程式。", + "DevelopYourSolution_Description4": "它提供了應用約定的基類,例如\n依賴注入。通用\n儲存庫服務提供了一個方便的\n方式與資料庫互動。聲明式\n授權與微調的權限系統一起使用。", + "DevelopYourSolution_Description5": "ABP 完全自動化了\n工作單元(用於資料庫連接和交易管理)、 \n異常處理、 \n驗證\n和審計日誌記錄。它提供了更多構建塊來簡化您的日常開發任務並專注於您自己的程式碼,同時創建可用於生產的\n應用程式。", "DevelopYourSolution_Description6": "您可以想像,如果您全部手動完成,該程式碼區塊會變得多麼長和複雜。", "SuiteCrudGenerationInFewSeconds": "除了手動編碼解決方案之外,您還可以使用 ABP Suite 工具在幾分鐘內建立完全可用的高級 CRUD 頁面。它將程式碼產生到您的解決方案中,以便您可以根據您的自訂要求對其進行微調。", "DeployAnywhere_Description1": "最終,您將擁有一個純 .NET 解決方案。您可以將解決方案部署到您自己的伺服器、雲端平台、Kubernetes 或您想要的任何地方。您可以根據需要部署到任意數量的伺服器。 ABP 是一個與部署環境無關的工具。", @@ -984,7 +984,7 @@ "CreatingAnEmptySolution_THEPROBLEM_Description4": "如何整合到第三方函式庫和系統?", "CreatingAnEmptySolution_THEPROBLEM_Description5": "如何設定自動化測試?", "ABPSOLUTION": "動態血壓解決方案", - "CreatingAnEmptySolution_ABPSOLUTION_Description": "ABP 基於領域驅動設計原則提供了一個架構良好、分層且可用於生產的啟動解決方案。該解決方案還包括每個層的預先配置單元和整合測試項目。", + "CreatingAnEmptySolution_ABPSOLUTION_Description": "ABP 基於領域驅動設計原則提供了一個架構良好、分層且可用於生產的啟動解決方案。該解決方案還包括每個層的預先配置單元和整合測試項目。", "CommonLibraries": "通用函式庫", "CommonLibraries_THEPROBLEM_Description": "您應該使用哪些函式庫來實現常見需求?軟體開發生態系統是高度動態的,這使得跟上最新的工具、函式庫、趨勢和方法變得具有挑戰性。", "CommonLibraries_ABPSOLUTION_Description": "ABP 將流行的、成熟的和最新的庫預先整合到解決方案中。您不需要花時間整合它們或使它們相互溝通。它們開箱即用,可以正常工作。", @@ -1042,12 +1042,12 @@ "Modularity_THEPROBLEM_Description": "要建立真正的模組化系統並不容易!系統的所有方面(資料庫、實體、API、UI 頁面/元件)都可以拆分為模組,並且每個模組都可以重複使用,無需其他模組。普通的 ASP.NET Core 並不會提供這樣的模組化架構。如果你需要的話,你應該從頭開始考慮。", "Modularity_ABPSOLUTION_Description": "ABP框架天生就是一個模組化的應用程式開發結構。框架中的每個功能都是為了與模組化相容而開發的。文件和指南解釋如何以標準方式開發可重複使用模組。", "SaaSMultiTenancy": "SaaS/多租戶", - "SaaSMultiTenancy_THEPROBLEM_Description": "多租戶是實施 SaaS 系統的常用方法。然而,實施一致的多租戶基礎設施可能會變得複雜。", + "SaaSMultiTenancy_THEPROBLEM_Description": "多租戶是實施 SaaS 系統的常用方法。然而,實施一致的多租戶基礎設施可能會變得複雜。", "SaaSMultiTenancy_ABPSOLUTION_Description": "ABP 框架提供了完整的多租戶基礎設施,並從業務程式碼中抽像出複雜性。您的應用程式程式碼將主要是多租戶感知的,而 ABP 框架會自動將資料庫、快取和租戶的其他詳細資訊相互隔離。它支援單一資料庫、每個租戶資料庫和混合方法。它正確配置了 Microsoft Identity 和 OpenIddict 等程式庫,這些程式庫通常不相容於多租用戶。", "Microservices": "微服務", "Microservices_THEPROBLEM_Description": "建構微服務系統需要許多基礎設施細節:對應用程式和微服務進行身份驗證和授權以及在微服務之間實現非同步訊息傳遞和同步(Rest/GRPC)通訊模式是最基本的問題。", - "Microservices_ABPSOLUTION_Description": "ABP 框架提供服務、指南和範例,協助您使用業界標準工具實施微服務解決方案。", - "Microservices_ABPSOLUTION_Description2": "ABP Commercial 甚至更進一步,提供了一個完整的啟動範本來啟動您的微服務解決方案。", + "Microservices_ABPSOLUTION_Description": "ABP 框架提供服務、指南和範例,協助您使用業界標準工具實施微服務解決方案。", + "Microservices_ABPSOLUTION_Description2": "ABP Commercial 甚至更進一步,提供了一個完整的啟動範本來啟動您的微服務解決方案。", "PreBuiltModules": "預建模區塊", "PreBuiltModules_THEPROBLEM_Description": "我們所有人都有相似但略有不同的業務需求。然而,我們都應該重新發明輪子,因為沒有人的程式碼可以直接在我們的解決方案中工作。它們都是更大解決方案的嵌入部分。", "PreBuiltModules_ABPSOLUTION_Description": "ABP Commercial模組提供了大量可重複使用的應用模組,例如付款、聊天、檔案管理、稽核日誌報告等。所有這些模組都可以輕鬆安裝到您的解決方案中並直接運行。我們不斷添加更多模組。", diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/en.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/en.json index cb427a64f8..c74b3d9445 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/en.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/en.json @@ -160,7 +160,12 @@ "UiFramework": "UI Framework", "EmailAddress": "Email address", "Mobile": "Mobile", + "MobileTitle": "Select a Mobile Application", + "MobileTitleDescription" : "You can include a mobile application that is integrated to your backend.", "ReactNative": "React Native", + "AdditonalOptions" : "Additonal Options", + "CreateYourSolution" : "Create a Your Solution", + "CreateYourSolutionDescription" : "Execute the following ABP CLI command in your command-line terminal:", "Strong": "Strong", "Complete": "Complete", "BasedLayeringModel": "Based Layering Model", @@ -318,11 +323,11 @@ "UIThemingExplanation": "Create reusable UI themes and layouts or use one of the pre-built UI themes.", "DataFilteringExplanation2": "Automatically filter on querying from the database to easily implement patterns like soft-delete and multi-tenancy.", "NeedHelp": "Need Help?", - "GiveYourProjectAName": "Give your project a name", - "SelectProjectType": "Select Project Type", - "SelectUIFramework": "Select UI Framework", - "SelectDatabaseProvider": "Select Database Provider", - "SelectDatabaseManagementSystem": "Select Database Management System", + "GiveYourProjectAName": "Give Your Project a Name", + "SelectProjectType": "Select a Project Type", + "SelectUIFramework": "Select a UI Framework", + "SelectDatabaseProvider": "Select a Database Provider", + "SelectDatabaseManagementSystem": "Select a Database Management System", "InstallingTheABPCLI": "Installing the ABP CLI", "CreateYourProjectNow": "Create Your Project Now", "OrderOn": "Order on {0}", @@ -393,7 +398,7 @@ "ThisBookIsInDraftStageAndIsNotCompletedYet": "This book is in draft stage and is not completed yet.", "Authors": "Authors", "MicroserviceEBook": "Microservice E-Book", - "SelectUITheme": "Select UI Theme", + "SelectUITheme": "Select a UI Theme", "LeptonXLiteTheme": "LeptonX Lite Theme", "BasicTheme": "Basic Theme", "LeptonXLiteThemeInfo": " A modern and stylish Bootstrap UI theme. Ideal if you want to have a production ready UI theme. This is the newest theme and is the default.", @@ -427,7 +432,7 @@ "CreateSolutionFolder": "Create Solution Folder", "CreateSolutionFolderOption": "Specifies if the project will be in a new folder in the output folder or directly the output folder.", "BooksPageTitle": "ABP Books", - "BooksPageDescription": "Explore ABP books to deepen your understanding and mastery of ABP Framework.", + "BooksPageDescription": "Explore ABP books to deepen your understanding and mastery of ABP.", "PackageDetailPage_NuGetPackageInstallationOptions": "There are three ways to install {0} NuGet package to your project", "PackageDetailPage_InstallingWithABPCLI": "1: Installing with the ABP CLI", "PackageDetailPage_InstallingWithABPCLIDescription1": "If you haven't installed the ABP CLI, first install by executing the following command in a command-line terminal", @@ -1320,7 +1325,7 @@ "Discounted_Page_Description": "Choose the features and functionality your business needs today. Buy an commercial license and create unlimited projects", "PortingExistingProjectsDescription": "Modernize your app with ABP's project porting services. Migrate your existing .NET projects to a robust, scalable architecture using the latest technologies", "Faq_Page_Title": "Frequently Asked Questions", - "Faq_Page_Description": "Find answers to common questions about ABP Framework in our FAQ section, covering various topics and issues.", + "Faq_Page_Description": "Find answers to common questions about ABP in our FAQ section, covering various topics and issues.", "Faq_Page_SwiftCode": "SWIFT Code", "Faq_Page_BankName": "Bank Name", "Faq_Page_AccountName": "Account Name", @@ -1469,7 +1474,7 @@ "BlazorServer": "Blazor Server", "MAUI": "MAUI", "HowItWorks_Page_Title": "How It Works?", - "HowItWorks_Page_Description": "Understand how ABP Framework works with detailed documentation, including guides and best practices.", + "HowItWorks_Page_Description": "Understand how ABP works with detailed documentation, including guides and best practices.", "HowItWorks_Description_Title": "What’s possible with ASP.NET Core, easier with ABP!", "HowItWorks_Description1": "ABP extends the .NET platform. So, anything you can do with a plain .NET solution is already possible with ABP. That makes it easy to get started with a low learning curve.", "HowItWorks_Description2": "Once you start learning and using ABP features, developing your software will be much more enjoyable than ever.", @@ -1781,7 +1786,7 @@ "ReturnOnInvestmentPageAbout": "This page covers the fundamental steps of developing a software solution and explains how the ABP Platform reduces your development costs at each step.", "LearnMore": "Learn More", "ReturnOfInvestment": "Return of Investment", - "ReturnOnInvestment_Description": "Learn about the return on investment when using ABP Framework, highlighting cost-effectiveness and efficiency.", + "ReturnOnInvestment_Description": "Learn about the return on investment when using ABP, highlighting cost-effectiveness and efficiency.", "PricingDiscount": "Save", "PricingTeamTitle": "Team", "PricingBusinessTitle": "Business", @@ -1797,6 +1802,7 @@ "TrialDemo": "Trial / Demo", "TrainingOnboarding": "Training / Onboarding", "Resellers": "Resellers", + "Reselling": "Reselling", "Others": "Others", "Characters": "Characters", "Topic": "Topic", diff --git a/abp_io/README.md b/abp_io/README.md index 3f59187ea4..aee8ca7791 100644 --- a/abp_io/README.md +++ b/abp_io/README.md @@ -9,7 +9,7 @@ By doing so, [abp.io](https://abp.io) websites will be translated into a new lan ## How to Translate abp.io Into Your Language: -1. Install [ABP CLI](https://docs.abp.io/en/abp/latest/CLI) command line tool. +1. Install [ABP CLI](https://abp.io/docs/latest/cli) command line tool. 2. Run the following command to generate the localization file. For example, for translating from English to French `fr`: @@ -28,5 +28,5 @@ By doing so, [abp.io](https://abp.io) websites will be translated into a new lan ## References: -* [ABP CLI Translate Command](https://docs.abp.io/en/abp/latest/Contribution/Index#using-the-abp-translate-command) +* [ABP CLI Translate Command](https://abp.io/docs/latest/contribution#using-the-abp-translate-command) * [Contribution Guide](https://github.com/abpframework/abp/blob/dev/docs/en/Contribution/Index.md) diff --git a/docs/en/Blog-Posts/2024-05 ABP Unification/post.md b/docs/en/Blog-Posts/2024-05 ABP Unification/post.md index 9da50ac06b..c09f9cc8e2 100644 --- a/docs/en/Blog-Posts/2024-05 ABP Unification/post.md +++ b/docs/en/Blog-Posts/2024-05 ABP Unification/post.md @@ -107,5 +107,4 @@ ABP Commercial license holders may wonder if any license change happens. The ans ## Last Words -With this post, we wanted to announce the changes to be made on the ABP platform to the ABP community, so don't be surprised or curious about what happened. If you have any questions or suggestions, feel free to write a comment for this blog post or send an email to info@abp.io. - +With this post, we wanted to announce the changes to be made on the ABP platform to the ABP community, so don't be surprised or curious about what happened. If you have any questions or suggestions, feel free to write a comment for this blog post or send an email to info@abp.io. \ No newline at end of file diff --git a/docs/en/Blog-Posts/2024-09-17-My-Impressions-at-DotNext-2024-Conference/banner.png b/docs/en/Blog-Posts/2024-09-17-My-Impressions-at-DotNext-2024-Conference/banner.png index 040e8470df..a25baf863a 100644 Binary files a/docs/en/Blog-Posts/2024-09-17-My-Impressions-at-DotNext-2024-Conference/banner.png and b/docs/en/Blog-Posts/2024-09-17-My-Impressions-at-DotNext-2024-Conference/banner.png differ diff --git a/docs/en/Blog-Posts/2024-09-17-My-Impressions-at-DotNext-2024-Conference/boat-trip.jpg b/docs/en/Blog-Posts/2024-09-17-My-Impressions-at-DotNext-2024-Conference/boat-trip.jpg index e8b25c8391..7a9b89732a 100644 Binary files a/docs/en/Blog-Posts/2024-09-17-My-Impressions-at-DotNext-2024-Conference/boat-trip.jpg and b/docs/en/Blog-Posts/2024-09-17-My-Impressions-at-DotNext-2024-Conference/boat-trip.jpg differ diff --git a/docs/en/Blog-Posts/2024-09-17-My-Impressions-at-DotNext-2024-Conference/collage-moscow.jpg b/docs/en/Blog-Posts/2024-09-17-My-Impressions-at-DotNext-2024-Conference/collage-moscow.jpg index 1acfee01a3..69652780b7 100644 Binary files a/docs/en/Blog-Posts/2024-09-17-My-Impressions-at-DotNext-2024-Conference/collage-moscow.jpg and b/docs/en/Blog-Posts/2024-09-17-My-Impressions-at-DotNext-2024-Conference/collage-moscow.jpg differ diff --git a/docs/en/Blog-Posts/2024-09-17-My-Impressions-at-DotNext-2024-Conference/general-collage.jpg b/docs/en/Blog-Posts/2024-09-17-My-Impressions-at-DotNext-2024-Conference/general-collage.jpg index 9310e1312f..459f151e25 100644 Binary files a/docs/en/Blog-Posts/2024-09-17-My-Impressions-at-DotNext-2024-Conference/general-collage.jpg and b/docs/en/Blog-Posts/2024-09-17-My-Impressions-at-DotNext-2024-Conference/general-collage.jpg differ diff --git a/docs/en/Blog-Posts/2024-09-17-My-Impressions-at-DotNext-2024-Conference/halil-talk.jpg b/docs/en/Blog-Posts/2024-09-17-My-Impressions-at-DotNext-2024-Conference/halil-talk.jpg index 9f0e62bf77..8d2a116524 100644 Binary files a/docs/en/Blog-Posts/2024-09-17-My-Impressions-at-DotNext-2024-Conference/halil-talk.jpg and b/docs/en/Blog-Posts/2024-09-17-My-Impressions-at-DotNext-2024-Conference/halil-talk.jpg differ diff --git a/docs/en/Blog-Posts/2024-09-17-My-Impressions-at-DotNext-2024-Conference/my-talk-2.png b/docs/en/Blog-Posts/2024-09-17-My-Impressions-at-DotNext-2024-Conference/my-talk-2.png index b2a0ae3581..34acae63da 100644 Binary files a/docs/en/Blog-Posts/2024-09-17-My-Impressions-at-DotNext-2024-Conference/my-talk-2.png and b/docs/en/Blog-Posts/2024-09-17-My-Impressions-at-DotNext-2024-Conference/my-talk-2.png differ diff --git a/docs/en/Blog-Posts/2024-09-17-My-Impressions-at-DotNext-2024-Conference/my-talk-pro-pictures.jpg b/docs/en/Blog-Posts/2024-09-17-My-Impressions-at-DotNext-2024-Conference/my-talk-pro-pictures.jpg index 20f411243b..8cd11d2d11 100644 Binary files a/docs/en/Blog-Posts/2024-09-17-My-Impressions-at-DotNext-2024-Conference/my-talk-pro-pictures.jpg and b/docs/en/Blog-Posts/2024-09-17-My-Impressions-at-DotNext-2024-Conference/my-talk-pro-pictures.jpg differ diff --git a/docs/en/Blog-Posts/2024-09-17-My-Impressions-at-DotNext-2024-Conference/my-talk.png b/docs/en/Blog-Posts/2024-09-17-My-Impressions-at-DotNext-2024-Conference/my-talk.png index 1206f5144c..caa9194c3f 100644 Binary files a/docs/en/Blog-Posts/2024-09-17-My-Impressions-at-DotNext-2024-Conference/my-talk.png and b/docs/en/Blog-Posts/2024-09-17-My-Impressions-at-DotNext-2024-Conference/my-talk.png differ diff --git a/docs/en/cli/index.md b/docs/en/cli/index.md index ba3e6aabf8..3fd8eee2f4 100644 --- a/docs/en/cli/index.md +++ b/docs/en/cli/index.md @@ -152,7 +152,7 @@ For more samples, go to [ABP CLI Create Solution Samples](new-command-samples.md * `--tiered`: The Auth Server project comes as a separate project and runs at a different endpoint. It separates the Auth Server from the API Host application. If not specified, you will have a single endpoint in the server side. (*Available for* ***Team*** *or higher licenses*) * `--mobile` or `-m`: Specifies the mobile application framework. Default value is `none`. Available frameworks: * `none`: Without any mobile application. - * `react-native`: React Native. + * `react-native`: React Native. This mobile option is only available for active **license owners**. * `maui`: MAUI. This mobile option is only available for ABP. (*Available for* ***Team*** *or higher licenses*) * `--database-provider` or `-d`: Specifies the database provider. Default provider is `ef`. Available providers: * `ef`: Entity Framework Core. diff --git a/docs/en/cli/new-command-samples.md b/docs/en/cli/new-command-samples.md index 06099a3e29..6b168b538c 100644 --- a/docs/en/cli/new-command-samples.md +++ b/docs/en/cli/new-command-samples.md @@ -1,6 +1,6 @@ # ABP CLI - New Solution Sample Commands -The `abp new` command creates an ABP solution or other artifacts based on an ABP template. [ABP CLI](../cli/index.md) has several parameters to create a new ABP solution. In this document we will show you some sample commands to create a new solution. All the project names are `Acme.BookStore`. Currently, the available mobile projects are `React Native` and `MAUI` mobile app. Available database providers are `Entity Framework Core` and `MongoDB`. All the commands starts with `abp new`. +The `abp new` command creates an ABP solution or other artifacts based on an ABP template. [ABP CLI](../cli/index.md) has several parameters to create a new ABP solution. In this document we will show you some sample commands to create a new solution. All the project names are `Acme.BookStore`. Currently, the available mobile projects are `React Native` and `MAUI` mobile app (they are *available for* ***Team*** *or higher licenses*). Available database providers are `Entity Framework Core` and `MongoDB`. All the commands starts with `abp new`. ## Angular diff --git a/docs/en/deployment/ssl.md b/docs/en/deployment/ssl.md index d97049b245..152bc1d5a2 100644 --- a/docs/en/deployment/ssl.md +++ b/docs/en/deployment/ssl.md @@ -2,9 +2,11 @@ A website needs an SSL certificate in order to keep user data secure, verify ownership of the website, prevent attackers from creating a fake version of the site, and gain user trust. -This document introduces how to get and use SSL certificate(HTTPS) for your application. +This document introduces how to get and use an SSL certificate(HTTPS) for your application. -## Get a SSL Certificate from a Certificate Authority + + +## Get an SSL Certificate from a Certificate Authority You can get a SSL certificate from a certificate authority (CA) such as [Let's Encrypt](https://letsencrypt.org/) or [Cloudflare](https://www.cloudflare.com/learning/ssl/what-is-an-ssl-certificate/) and so on. @@ -14,21 +16,137 @@ Once you have a certificate, you need to configure your web server to use it. Th * [Host ASP.NET Core on Linux with Nginx: HTTPS configuration](https://learn.microsoft.com/en-us/aspnet/core/host-and-deploy/linux-nginx) * [How to Set Up SSL on IIS 7 or later](https://learn.microsoft.com/en-us/iis/manage/configuring-security/how-to-set-up-ssl-on-iis) -## Create a Self-Signed Certificate -You can create a self-signed certificate for testing purposes or internal use. -There is an article about [how to create a self-signed certificate](https://learn.microsoft.com/en-us/dotnet/core/additional-tools/self-signed-certificates-guide), If you are using IIS, you can use the following this document to [obtain a Certificate](https://learn.microsoft.com/en-us/iis/manage/configuring-security/how-to-set-up-ssl-on-iis#obtain-a-certificate) +### How to get a free SSL certificate from Let's Encrypt? + +Let's Encrypt is **a free, automated, and open certificate authority (CA)**. It gives the digital certificates to enable HTTPS (SSL/TLS) for websites. To get a free SSL certificate, we will use [acme.sh](https://github.com/acmesh-official/acme.sh) and Cloudflare DNS API to get a free SSL certificate from [Let's Encrypt](https://letsencrypt.org/). + +> If you have any problem with the following steps, you can read the [acme.sh](https://github.com/acmesh-official/acme.sh/wiki/dnsapi) tutorial. + + + +#### Install [acme.sh](https://github.com/acmesh-official/acme.sh) + +Ensure that you have `curl` command in your terminal. And run the following command on your terminal: + +```bash +curl https://get.acme.sh | sh -s email=my@example.com +``` + + + +#### [Cloudflare DNS API token](https://dash.cloudflare.com/profile/api-tokens) + + +You will need to create an API token which either: + +(i) has permission to edit a single specific DNS zone; or +(ii) has permission to edit multiple DNS zones. + +You can do this via your Cloudflare profile page under the API Tokens section. When you create the token, under Permissions, select Zone > DNS > Edit, and under Zone Resources, only include the specific DNS zones within which you need to perform ACME DNS challenges. + +The API token is a 40-character string that may contain uppercase letters, lowercase letters, numbers, and underscores. You must provide it to acme.sh by setting the environment variable CF_Token to its value, e.g. run export CF_Token="Y_jpG9AnfQmuX5Ss9M_qaNab6SQwme3HWXNDzRWs". + +**(i) Single DNS zone** +You must give acme.sh the zone ID of the DNS zone it needs to edit. This is a 32-character hexadecimal string (e.g. 763eac4f1bcebd8b5c95e9fc50d010b4), and should not be confused with the zone name (e.g. example.com). This zone ID can be found via the Cloudflare dashboard on the zone's Overview page in the right-hand sidebar. + +You provide this info by setting the environment variable CF_Zone_ID to this zone ID, e.g. run export CF_Zone_ID="763eac4f1bcebd8b5c95e9fc50d010b4". + +**(ii) Multiple DNS zones** +You must give acme.sh the account ID of the Cloudflare account to which the relevant DNS zones belong. This is a 32-character hexadecimal string, and should not be confused with other account identifiers, such as the account email address (e.g. alice@example.com) or global API key (which is also a 32-character hexadecimal string). This account ID can be found via the Cloudflare dashboard, as the end of the URL when logged in, or on the Overview page of any of your zones, in the right-hand sidebar, beneath the zone ID. + +You provide this info by setting the environment variable CF_Account_ID to this account ID, e.g. run export CF_Account_ID="763eac4f1bcebd8b5c95e9fc50d010b4". + + + +#### Issue a certificate + +```bash +> export CF_Token='your_token' +> export CF_Account_ID='your_account_id' +> export CF_Zone_ID='your_zone_id' +> acme.sh --issue --dns dns_cf -d getabp.net + +[Info] Domains have changed. +[Info] Using CA: https://acme.zerossl.com/v2/DV90 +[Info] Single domain='getabp.net' +[Info] Getting webroot for domain='getabp.net' +[Info] Adding TXT value: 1uEeVFfmwXM7N21Wi9PitgEnhJbl4W4dHeRkapGkRSs for domain: _acme-challenge.getabp.net +[Info] Adding record +[Info] Added, OK +[Info] The TXT record has been successfully added. +[Info] Let's check each DNS record now. Sleeping for 20 seconds first. +[Info] You can use '--dnssleep' to disable public dns checks. +[Info] See: https://github.com/acmesh-official/acme.sh/wiki/dnscheck +[Info] Checking getabp.net for _acme-challenge.getabp.net +[Info] Success for domain getabp.net '_acme-challenge.getabp.net'. +[Info] All checks succeeded +[Info] Verifying: getabp.net +[Info] Processing. The CA is processing your order, please wait. (1/30) +[Info] Success +[Info] Removing DNS records. +[Info] Removing txt: 1uEeVFfmwXM7N21Wi9PitgEnhJbl4W4dHeRkapGkRSs for domain: _acme-challenge.getabp.net +[Info] Successfully removed +[Info] Verification finished, beginning signing. +[Info] Let's finalize the order. +[Info] Le_OrderFinalize='https://acme.zerossl.com/v2/DV90/order/1AP31vqE7rzxCmvpDsDgvA/finalize' +[Info] Order status is 'processing', let's sleep and retry. +[Info] Sleeping for 15 seconds then retrying +[Info] Polling order status: https://acme.zerossl.com/v2/DV90/order/1AP31vqE7rzxCmvpDsDgvA +[Info] Downloading cert. +[Info] Le_LinkCert='https://acme.zerossl.com/v2/DV90/cert/o1jBkRs8LVVBiEZShd4Yow' +[Info] Cert success. +-----BEGIN CERTIFICATE----- +MIID9jCCA3ygAwIBAgIQbJr7iNOSnkMXJjkwngvQRzAKBggqhkjOPQQDAzBLMQsw +CQYDVQQGEwJBVDEQMA4GA1UEChMHWmVyb1NTTDEqMCgGA1UEAxMhWmVyb1NTTCBF +Q0MgRG9tYWluIFNlY3VyZSBTaXRlIENBMB4XDTI0MDkyODAwMDAwMFoXDTI0MTIy +NzIzNTk1OVowFTETMBEGA1UEAxMKZ2V0YWJwLm5ldDBZMBMGByqGSM49AgEGCCqG +SM49AwEHA0IABJ.....io0Kq3W2o0eAgXDVXw2QJ6RlZKi0RGha/D92u/OAqvjX0I4 +YEPRRgAm6l2oLg== +-----END CERTIFICATE----- +[Info] Your cert is in: getabp.net.cer +[Info] Your cert key is in: getabp.net.key +[Info] The intermediate CA cert is in: ca.cer +[Info] And the full-chain cert is in: fullchain.cer +``` + +#### Convert the certificate to PFX format(IIS format) + +```bash +openssl pkcs12 -export \ + -in getabp.net.cer \ + -inkey getabp.net.key \ + -out getabp.net.pfx \ + -passout pass: +``` + +If you want to set a password for the PFX file, you can set the password with `-passout pass:your_password`. + + + +## Common Exceptions + +If you encounter the following exceptions, it means your **certificate is not trusted by the client or the certificate is not valid**. +You will may see the following SSL certificate errors in your browser when you try to access the website. + +```cs +---> System.Net.Http.HttpRequestException: The SSL connection could not be established, see inner exception. +---> System.Security.Authentication.AuthenticationException: The remote certificate is invalid according to the validation procedure: RemoteCertificateNameMismatch +``` -## Common Problems +```cs +---> System.Net.Http.HttpRequestException: The SSL connection could not be established, see inner exception. +---> System.Security.Authentication.AuthenticationException: The remote certificate is invalid because of errors in the certificate chain: UntrustedRoot +``` -### The remote certificate is invalid because of errors in the certificate chain: UntrustedRoot -This error may occur when using IIS. You need to trust your certificate by `Manage computer certificates`. ## References -* [ABP IIS Deployment](https://docs.abp.io/en/commercial/latest/startup-templates/application/deployment-iis) +* [ABP IIS Deployment](./index.md) +* [acme.sh](https://github.com/acmesh-official/acme.sh) +* [acme.sh DNS API](https://github.com/acmesh-official/acme.sh/wiki/dnsapi#dns_cf) * [HTTPS in ASP.NET Core](https://learn.microsoft.com/en-us/aspnet/core/security/enforcing-ssl) * [Let's Encrypt](https://letsencrypt.org/getting-started) -* [Cloudflare's Free SSL / TLS](https://www.cloudflare.com/application-services/products/ssl/) \ No newline at end of file +* [Cloudflare's Free SSL / TLS](https://www.cloudflare.com/application-services/products/ssl/) diff --git a/docs/en/framework/architecture/modularity/basics.md b/docs/en/framework/architecture/modularity/basics.md index 481c1e192a..f92e6edc3b 100644 --- a/docs/en/framework/architecture/modularity/basics.md +++ b/docs/en/framework/architecture/modularity/basics.md @@ -7,7 +7,7 @@ ABP was designed to support to build fully modular applications and systems wher * This document introduces the basics of the module system. * [Module development best practice guide](../best-practices) explains some **best practices** to develop **re-usable application modules** based on **DDD** principles and layers. A module designed based on this guide will be **database independent** and can be deployed as a **microservice** if needed. * [Pre-built application modules](../../../modules) are **ready to use** in any kind of application. -* [Module startup template](../../../solution-templates/layered-web-application) is a jump start way to **create a new module**. +* [Module startup template](../../../solution-templates/application-module) is a jump start way to **create a new module**. * [ABP CLI](../../../cli/index.md) has commands to support modular development. * All other framework features are compatible to the modularity system. diff --git a/docs/en/framework/ui/angular/images/fullscreen-true.png b/docs/en/framework/ui/angular/images/fullscreen-true.png index 841946176a..d14bc774d6 100644 Binary files a/docs/en/framework/ui/angular/images/fullscreen-true.png and b/docs/en/framework/ui/angular/images/fullscreen-true.png differ diff --git a/docs/en/framework/ui/react-native/index.md b/docs/en/framework/ui/react-native/index.md index f79d5bb3d1..3dd60b6348 100644 --- a/docs/en/framework/ui/react-native/index.md +++ b/docs/en/framework/ui/react-native/index.md @@ -7,6 +7,8 @@ # Getting Started with the React Native +> React Native mobile option is *available for* ***Team*** *or higher licenses* + ABP platform provide basic [React Native](https://reactnative.dev/) startup template to develop mobile applications **integrated to your ABP based backends**. ![React Native gif](../../../images/react-native-introduction.gif) diff --git a/docs/en/get-started/console.md b/docs/en/get-started/console.md index df06fc33de..6a17784380 100644 --- a/docs/en/get-started/console.md +++ b/docs/en/get-started/console.md @@ -10,12 +10,14 @@ First, install the [ABP CLI](../cli) if you haven't installed before: dotnet tool install -g Volo.Abp.Studio.Cli ```` -Then use the `abp new` command in an empty folder to create a new solution: +Then use the `abp new` command in an empty folder to create a new solution (with the `--old` parameter at the end of the command): ````bash -abp new Acme.MyConsoleApp -t console +abp new Acme.MyConsoleApp -t console --old ```` +> **Note**: Since this startup template is not provided by the new ABP Studio Templates yet, you need to pass the `--old` parameter at the end of the command to use the old CLI & templating system for this startup template. + `Acme.MyConsoleApp` is the solution name, like *YourCompany.YourProduct*. You can use single level, two-levels or three-levels naming. ## Solution Structure diff --git a/docs/en/get-started/wpf.md b/docs/en/get-started/wpf.md index 8ccaeac181..287119986e 100644 --- a/docs/en/get-started/wpf.md +++ b/docs/en/get-started/wpf.md @@ -10,12 +10,14 @@ First, install the [ABP CLI](../cli) if you haven't installed before: dotnet tool install -g Volo.Abp.Studio.Cli ```` -Then use the `abp new` command in an empty folder to create a new solution: +Then use the `abp new` command in an empty folder to create a new solution (with the `--old` parameter at the end of the command): ````bash -abp new Acme.MyWpfApp -t wpf +abp new Acme.MyWpfApp -t wpf --old ```` +> **Note**: Since this startup template is not provided by the new ABP Studio Templates yet, you need to pass the `--old` parameter at the end of the command to use the old CLI & templating system for this startup template. + `Acme.MyWpfApp` is the solution name, like *YourCompany.YourProduct*. You can use single level, two-levels or three-levels naming. ## Solution Structure diff --git a/docs/en/guides/add-module-to-microservice.md b/docs/en/guides/add-module-to-microservice.md index 67cf3b1c0d..903440fca3 100644 --- a/docs/en/guides/add-module-to-microservice.md +++ b/docs/en/guides/add-module-to-microservice.md @@ -4,13 +4,13 @@ ## Adding a module -After adding a new service to your microservice template by following the [add new microservice guide](https://docs.abp.io/en/commercial/latest/startup-templates/microservice/add-microservice.md), you can add any module to this service in your microservice solution by using the ABP CLI. Use the following command to add the preferred module under the newly added microservice directory: +After adding a new service to your microservice template by following the [add new microservice guide](../solution-templates/microservice/adding-new-microservices.md), you can add any module to this service in your microservice solution by using the ABP CLI. Use the following command to add the preferred module under the newly added microservice directory: ```powershell abp add-module CmsKit ``` -> To complete the CmsKit module steps, please have a look [here](https://docs.abp.io/en/abp/latest/Modules/Cms-Kit/Index). +> To complete the CmsKit module steps, please have a look [here](../modules/cms-kit/index.md). After completing the module documentation steps you can build your solution and continue with this documentation. @@ -20,7 +20,7 @@ dotnet build ## Using the static proxy -ABP supports [dynamic](https://docs.abp.io/en/abp/latest/UI/AspNetCore/Dynamic-JavaScript-Proxies) and [static](https://docs.abp.io/en/abp/latest/UI/AspNetCore/Static-JavaScript-Proxies) proxies. Both have advantages and disadvantages. By default, the static proxy is used in the microservice template to remove the coupling between services. The static proxy should be configured manually in the `HttpApiClientModule` of the microservice you have installed your module on as below: +ABP supports [dynamic](../framework/ui/mvc-razor-pages/dynamic-javascript-proxies.md) and [static](../framework/ui/mvc-razor-pages/static-javascript-proxies.md) proxies. Both have advantages and disadvantages. By default, the static proxy is used in the microservice template to remove the coupling between services. The static proxy should be configured manually in the `HttpApiClientModule` of the microservice you have installed your module on as below: ```csharp public class ProductServiceHttpApiClientModule : AbpModule @@ -45,9 +45,9 @@ If the proxy is configured as `AddStaticHttpClientProxies`, you can start creati abp generate-proxy --type csharp --module cms-kit --url https://localhost:44335 ``` -> Note: This port is used by `Public-Web`. You can check your port from `launchSetting.json`. The Public Web calls the Public Web Gateway so it has called the related services and has generated proxy files. [For more](https://docs.abp.io/en/commercial/latest/startup-templates/microservice/gateways#public-web-gateway) +> Note: This port is used by `Public-Web`. You can check your port from `launchSetting.json`. The Public Web calls the Public Web Gateway so it has called the related services and has generated proxy files. [For more](../solution-templates/microservice/api-gateways.md) -> If you have generated a new microservice with the ABP CLI by following the [add new microservice guide](https://docs.abp.io/en/commercial/latest/startup-templates/microservice/add-microservice.md), it should already be configured to use the static proxy. +> If you have generated a new microservice with the ABP CLI by following the [add new microservice guide](../solution-templates/microservice/adding-new-microservices.md), it should already be configured to use the static proxy. ## Configure Gateways The microservice template project has two gateway projects. diff --git a/docs/en/guides/ms-multi-tenant-domain-resolving.md b/docs/en/guides/ms-multi-tenant-domain-resolving.md index 7a7aface92..cb48a63905 100644 --- a/docs/en/guides/ms-multi-tenant-domain-resolving.md +++ b/docs/en/guides/ms-multi-tenant-domain-resolving.md @@ -270,6 +270,7 @@ Your request from the browser to the subdomain will be accepted by the ingress-c Update your charts ingress.yaml files. Ex for **administration-ingress.yaml**: +{%{ ```yaml spec: tls: @@ -303,6 +304,7 @@ spec: port: number: 80 ``` +}%} **Update all the application, gateway and microservice ingress.yaml files.** Eventually, when deploy the application, you will be seeing: ![updated-ingress](../images/updated-ingress.png) @@ -311,6 +313,7 @@ spec: Navigate to applications, gateways and microservices' **x-deployment.yaml** file and override the newly introduced `TenantDomain` key: +{%{ ```yaml ... Removed for brevity - name: "TenantDomain" # Add this key @@ -319,11 +322,13 @@ Navigate to applications, gateways and microservices' **x-deployment.yaml** file value: "{{ .Values.config.authServer.authority }}" ... ``` +}%} > **Update all the application, gateway and microservice deployment.yaml files.** **For AuthServer, also add the WildCardDomains that is used to handle subdomain *redirect* and *post_logout redirect* URIs to the authserver-deployment.yaml file:** +{%{ ```yaml ... Removed for brevity - name: "TenantDomain" @@ -348,6 +353,7 @@ Navigate to applications, gateways and microservices' **x-deployment.yaml** file value: "{{ .Values.wildCardDomains.productService }}" ... ``` +}%} Afterwards, update the **values.yaml** file for all the sub-charts (administration, authserver etc): @@ -383,7 +389,7 @@ wildCardDomains: After updating the **deployment.yaml** and **values.yaml** files of all the application, gateway and microservices' navigate to the **mystore chart values.yaml** file located under the k8s/Mystore/values.yaml that overrides all the sub-charts: **AuthServer:** - +{%{ ```yaml # auth-server sub-chart override authserver: @@ -402,11 +408,13 @@ authserver: saasService: "https://{0}.saas.mystore.dev" productService: "https://{0}.product.mystore.dev" ``` +}%} You may also get CORS error when authenticating SwaggerUI of your gateways or microservices. Add Override the AuthServer CORS values with the subdomain to solve this problem: **identityService:** +{%{ ```yaml # identity-service sub-chart override identity: @@ -416,9 +424,10 @@ identity: ... Removed for brevity tenantDomain: "https://{0}.identity.mystore.dev" ``` +}%} **administrationService:** - +{%{ ```yaml # administration-service sub-chart override administration: @@ -428,9 +437,11 @@ administration: ... Removed for brevity tenantDomain: "https://{0}.administration.mystore.dev" ``` +}%} **saasService:** +{%{ ```yaml # saas-service sub-chart override saas: @@ -440,9 +451,9 @@ saas: ... Removed for brevity tenantDomain: "https://{0}.saas.mystore.dev" ``` - +}%} **productService:** - +{%{ ```yaml # product-service sub-chart override product: @@ -452,9 +463,10 @@ product: ... Removed for brevity tenantDomain: "https://{0}.product.mystore.dev" ``` +}%} **gateway-web:** - +{%{ ```yaml # saas-service sub-chart override gateway-web: @@ -464,9 +476,10 @@ gateway-web: ... Removed for brevity tenantDomain: "https://{0}.gateway-web.mystore.dev" ``` +}%} **gateway-web-public:** - +{%{ ```yaml # gateway-web-public sub-chart override gateway-web-public: @@ -476,9 +489,10 @@ gateway-web-public: ... Removed for brevity tenantDomain: "https://{0}.gateway-public.mystore.dev" ``` +}%} **publicweb:** - +{%{ ```yaml # Public Web application sub-chart override publicweb: @@ -489,9 +503,10 @@ publicweb: ... Removed for brevity tenantDomain: "https://{0}.mystore.dev" ``` +}%} **angular:** - +{%{ ```yaml # Angular back-office application sub-chart override angular: @@ -505,6 +520,7 @@ angular: strictDiscoveryDocumentValidation: false skipIssuerCheck: true ``` +}%} > If you are using Web or BlazorServer application for back-office, it is similar configuration with the public-web application diff --git a/docs/en/images/pen-test-alert-list-8.3.png b/docs/en/images/pen-test-alert-list-8.3.png new file mode 100644 index 0000000000..d0584bde22 Binary files /dev/null and b/docs/en/images/pen-test-alert-list-8.3.png differ diff --git a/docs/en/index.md b/docs/en/index.md index fdcf057f5d..dc97bcbfc3 100644 --- a/docs/en/index.md +++ b/docs/en/index.md @@ -2,25 +2,32 @@ ABP offers an **opinionated architecture** to build enterprise software solutions with **best practices** on top of the **.NET** and the **ASP.NET Core** platforms. It provides the fundamental infrastructure, production-ready startup templates, pre-built application modules, UI themes, tooling, guides and documentation to implement that architecture properly and **automate the details** and repetitive works as much as possible. -### Why ABP Platform? +The following pages outline why you should use the ABP Platform and how it is used: -Wondering why you should use the ABP Platform instead of creating a new solution from scratch? [Continue reading here](./others/why-abp-platform.md). +* [Why choose ABP?](https://abp.io/why-choose-abp) +* [How it works?](https://abp.io/how-it-works) +* [Return on investment](https://abp.io/return-on-investment) ## Get Started -The [Getting Started](get-started) guide can be used to create and run ABP based solutions with different options and details. Then you can follow the [Todo Application Tutorial](tutorials/todo) to create your first application with ABP, or build a full-featured and real-life web application by following the [Book Store Application Tutorial](tutorials/book-store/part-01.md). +The [Getting Started](get-started) guide can be used to create and run ABP based solutions with different options and details. + +After getting started, you can read the following documents: + +* [Todo Application Tutorial](tutorials/todo) to create your first ABP application. +* [Book Store Application Tutorial](tutorials/book-store/part-01.md) to build a full-featured and real-life web application with ABP. ### UI Framework Options -ABP can work with any UI framework, while the following frameworks are supported out of the box: +ABP can work with any UI framework, while the following frameworks are supported and well-integrated out of the box: -ui options +ui options ### Database Provider Options -ABP can work with any database provider, while the following providers are supported out of the box: +ABP can work with any database provider, while the following providers are supported and well-integrated out of the box: -ABP Database Providers +ABP Database Providers ## Exploring the Documentation diff --git a/docs/en/modules/cms-kit-pro/contact-form.md b/docs/en/modules/cms-kit-pro/contact-form.md index 45756dc342..fcfa4a2582 100644 --- a/docs/en/modules/cms-kit-pro/contact-form.md +++ b/docs/en/modules/cms-kit-pro/contact-form.md @@ -6,7 +6,7 @@ CMS Kit provides a widget to create a contact form on your website. ## Enabling the Contact Management System -By default, CMS Kit features are disabled. Therefore, you need to enable the features you want, before starting to use it. You can use the [Global Feature](https://docs.abp.io/en/abp/latest/Global-Features) system to enable/disable CMS Kit features on development time. Alternatively, you can use the ABP's [Feature System](https://docs.abp.io/en/abp/latest/Features) to disable a CMS Kit feature on runtime. +By default, CMS Kit features are disabled. Therefore, you need to enable the features you want, before starting to use it. You can use the [Global Feature](../framework/infrastructure/global-features.md) system to enable/disable CMS Kit features on development time. Alternatively, you can use the ABP's [Feature System](../framework/infrastructure/features.md) to disable a CMS Kit feature on runtime. > Check the ["How to Install" section of the CMS Kit Module documentation](index.md#how-to-install) to see how to enable/disable CMS Kit features on development time. diff --git a/docs/en/modules/cms-kit-pro/faq.md b/docs/en/modules/cms-kit-pro/faq.md index 29699862d7..a153b3fee5 100644 --- a/docs/en/modules/cms-kit-pro/faq.md +++ b/docs/en/modules/cms-kit-pro/faq.md @@ -8,7 +8,7 @@ The CMS kit provides a **FAQ** system to allow users to create, edit and delete ## Enabling the FAQ System -By default, CMS Kit features are disabled. Therefore, you need to enable the features you want, before starting to use it. You can use the [Global Feature](https://docs.abp.io/en/abp/latest/Global-Features) system to enable/disable CMS Kit features on development time. Alternatively, you can use the ABP Framework's [Feature System](https://docs.abp.io/en/abp/latest/Features) to disable a CMS Kit feature on runtime. +By default, CMS Kit features are disabled. Therefore, you need to enable the features you want, before starting to use it. You can use the [Global Feature](../../framework/infrastructure/global-features.md) system to enable/disable CMS Kit features on development time. Alternatively, you can use the ABP Framework's [Feature System](../../framework/infrastructure/features.md) to disable a CMS Kit feature on runtime. > Check the ["How to Install" section of the CMS Kit Module documentation](index.md#how-to-install) to see how to enable/disable CMS Kit features on development time. @@ -32,7 +32,7 @@ You can list, create, update and delete sections and their questions FAQ's on th ## Faq Widget -The FAQ system provides a FAQ [widget](https://docs.abp.io/en/abp/latest/UI/AspNetCore/Widgets) for users to display FAQ's. You can place the widget on a page like below: +The FAQ system provides a FAQ [widget](../../framework/ui/mvc-razor-pages/widgets.md) for users to display FAQ's. You can place the widget on a page like below: ```csharp @await Component.InvokeAsync( @@ -48,11 +48,11 @@ The FAQ system provides a FAQ [widget](https://docs.abp.io/en/abp/latest/UI/AspN - `groupName` (optional): It allows to specify which FAQ group to show. If not specified, all groups will be shown. - `sectionName` (optional): It is used to determine which section within the specified group will be shown. If not specified, all sections in the related group will be shown. -The FAQ system can also be used in combination with the [dynamic widget](https://docs.abp.io/en/abp/latest/Modules/Cms-Kit/Dynamic-Widget) feature. +The FAQ system can also be used in combination with the [dynamic widget](../cms-kit/dynamic-widget.md) feature. ## Options -The FAQ system provides a mechanism to group sections by group name. For example, if you want to use the FAQ system for community and support page, you need to define two group names named Community and Support and add sections under these groups. So, before using the FAQ system, you need to define groups. For that, you can use `FaqOptions`. `FaqOptions` can be configured at the domain layer, in the `ConfigureServices` method of your [module](https://docs.abp.io/en/abp/latest/Module-Development-Basics). +The FAQ system provides a mechanism to group sections by group name. For example, if you want to use the FAQ system for community and support page, you need to define two group names named Community and Support and add sections under these groups. So, before using the FAQ system, you need to define groups. For that, you can use `FaqOptions`. `FaqOptions` can be configured at the domain layer, in the `ConfigureServices` method of your [module]../../framework/architecture/modularity/basics.md). ```csharp Configure(options => @@ -71,7 +71,7 @@ Configure(options => #### Aggregates -This module follows the [Entity Best Practices & Conventions](https://docs.abp.io/en/abp/latest/Best-Practices/Entities) guide. +This module follows the [Entity Best Practices & Conventions](../../framework/architecture/best-practices/entities.md) guide. ##### FAQ @@ -82,7 +82,7 @@ A FAQ represents a generated FAQ with its questions: #### Repositories -This module follows the guidelines of [Repository Best Practices & Conventions](https://docs.abp.io/en/abp/latest/Best-Practices/Repositories). +This module follows the guidelines of [Repository Best Practices & Conventions](../../framework/architecture/best-practices/repositories.md). The following special repositories are defined for these features: @@ -92,7 +92,7 @@ The following special repositories are defined for these features: #### Domain services -This module follows the [Domain Services Best Practices & Conventions](https://docs.abp.io/en/abp/latest/Best-Practices/Domain-Services) guide. +This module follows the [Domain Services Best Practices & Conventions](../../framework/architecture/best-practices/domain-services.md) guide. ### Application layer @@ -115,7 +115,7 @@ All tables/collections use the `Cms` prefix by default. Set static properties on This module uses `CmsKit` for the connection string name. If you don't define a connection string with this name, it fallbacks to the `Default` connection string. -See the [connection strings](https://docs.abp.io/en/abp/latest/Connection-Strings) documentation for details. +See the [connection strings](../../framework/fundamentals/connection-strings.md) documentation for details. #### Entity Framework Core diff --git a/docs/en/modules/cms-kit/comments.md b/docs/en/modules/cms-kit/comments.md index 2daa92b085..8ff8ff5ba8 100644 --- a/docs/en/modules/cms-kit/comments.md +++ b/docs/en/modules/cms-kit/comments.md @@ -92,7 +92,7 @@ You can configure the approval status of comments using the "Comment" tab under #### Aggregates -This module follows the [Entity Best Practices & Conventions](https://docs.abp.io/en/abp/latest/Best-Practices/Entities) guide. +This module follows the [Entity Best Practices & Conventions](../../framework/architecture/best-practices/entities.md) guide. ##### Comment @@ -102,7 +102,7 @@ A comment represents a written comment from a user. #### Repositories -This module follows the [Repository Best Practices & Conventions](https://docs.abp.io/en/abp/latest/Best-Practices/Repositories) guide. +This module follows the [Repository Best Practices & Conventions](../../framework/architecture/best-practices/repositories.md) guide. The following custom repositories are defined for this feature: @@ -110,7 +110,7 @@ The following custom repositories are defined for this feature: #### Domain services -This module follows the [Domain Services Best Practices & Conventions](https://docs.abp.io/en/abp/latest/Best-Practices/Domain-Services) guide. +This module follows the [Domain Services Best Practices & Conventions](../../framework/architecture/best-practices/domain-services.md) guide. ##### Comment Manager diff --git a/docs/en/others/penetration-test-report.md b/docs/en/others/penetration-test-report.md index 524f3fc9a7..c092a856ea 100644 --- a/docs/en/others/penetration-test-report.md +++ b/docs/en/others/penetration-test-report.md @@ -1,6 +1,6 @@ # ABP Penetration Test Report -The ABP Commercial MVC `v8.2.0` application template has been tested against security vulnerabilities by the [OWASP ZAP v2.14.0](https://www.zaproxy.org/) tool. The demo web application was started on the `https://localhost:44349` address. The below alerts have been reported by the pentest tool. These alerts are sorted by the risk level as high, medium, and low. The informational alerts are not mentioned in this document. +The ABP Commercial MVC `v8.3.0` application template has been tested against security vulnerabilities by the [OWASP ZAP v2.14.0](https://www.zaproxy.org/) tool. The demo web application was started on the `https://localhost:44349` address. The below alerts have been reported by the pentest tool. These alerts are sorted by the risk level as high, medium, and low. The informational alerts are not mentioned in this document. Many of these alerts are **false-positive**, meaning the vulnerability scanner detected these issues, but they are not exploitable. It's clearly explained for each false-positive alert why this alert is a false-positive. @@ -10,14 +10,15 @@ In the next sections, you will find the affected URLs, attack parameters (reques There are high _(red flag)_, medium _(orange flag)_, low _(yellow flag)_, and informational _(blue flag)_ alerts. -![penetration-test-8.2.0](../images/pen-test-alert-list-8.2.png) -w +![penetration-test-8.3.0](../images/pen-test-alert-list-8.3.png) + > The informational alerts are not mentioned in this document. These alerts are not raising any risks on your application and they are optional. ### Path Traversal [Risk: High] - False Positive - *[GET] - https://localhost:44349/api/audit-logging/audit-logs?startTime=&endTime=&url=&userName=&applicationName=&clientIpAddress=&correlationId=&httpMethod=audit-logs&httpStatusCode=&maxExecutionDuration=&minExecutionDuration=&hasException=true&sorting=executionTime+desc&skipCount=0&maxResultCount=10* (attack: **httpMethod=audit-logs**) - *[POST] - https://localhost:44349/Account/Login* (attack: **\Login**) +- *[POST] - https://localhost:44349/Account/Register* (attack: **\Register**) - *[POST] - https://localhost:44349/Account/SecurityLogs* (attack: **\SecurityLogs**) - *[POST] - https://localhost:44349/Identity/SecurityLogs* (attack: **\SecurityLogs**) @@ -49,6 +50,18 @@ SQL injection may be possible. SQL injection is a web security vulnerability tha ABP uses Entity Framework Core and LINQ. **It's safe against SQL Injection because it passes all data to the database via SQL parameters.** LINQ queries are not composed by using string manipulation or concatenation, that's why they are not susceptible to traditional SQL injection attacks. Therefore, this is a **false-positive** alert. +### SQL Injection - Authentication Bypass [Risk: High] - False Positive + +* *[POST] — https://localhost:44349/Account/Login* (attack: **false AND 1=1 --**) + +**Description**: + +SQL injection may be possible on a login page, potentially allowing the application's authentication mechanism to be bypassed. + +**Solution**: + +This alert indicates that we must not trust client side input (even if there is client side validation in place) and check all data on the server side. ABP Framework already does that and makes server-side validations while authenticating a user. Therefore this is a **false-positive** alert. + ### Absence of Anti-CSRF Tokens [Risk: Medium] — False Positive * *[GET] - https://localhost:44349/Account/LinkUsers/LinkUsersModal?returnUrl=/SettingManagement* @@ -113,8 +126,8 @@ Configure(options => ### Format String Error [Risk: Medium] - False Positive -- *[GET] — https://localhost:44349/Abp/Languages/Switch?culture=ZAP%25n%25s%25n%25s%25n%25s%25n%25s%25n%25s%25n%25s%25n%25s%25n%25s%25n%25s%25n%25s%25n%25s%25n%25s%25n%25s%25n%25s%25n%25s%25n%25s%25n%25s%25n%25s%25n%25s%25n%25s%0A&returnUrl=%2F&uiCulture=ar* -- *[GET] — https://localhost:44349/Abp/ApplicationLocalizationScript?cultureName=ZAP%25n%25s%25n%25s%25n%25s%25n%25s%25n%25s%25n%25s%25n%25s%25n%25s%25n%25s%25n%25s%25n%25s%25n%25s%25n%25s%25n%25s%25n%25s%25n%25s%25n%25s%25n%25s%25n%25s%25n%25s%0A* +- *[GET] — https://localhost:44349/Abp/Languages/Switch?culture=ZAP%25n%25s%25n%25s%25n%25s%25n%25s%25n%25s%25n%25s%25n%25s%25n%25s%25n%25s%25n%25s%25n%25s%25n%25s%25n%25s%25n%25s%25n%25s%25n%25s%25n%25s%25n%25s%25n%25s%25n%25s%0A&returnUrl=%2F&uiCulture=ar* (with combination of different parameters) +- *[GET] — https://localhost:44349/Abp/ApplicationLocalizationScript?cultureName=ZAP%25n%25s%25n%25s%25n%25s%25n%25s%25n%25s%25n%25s%25n%25s%25n%25s%25n%25s%25n%25s%25n%25s%25n%25s%25n%25s%25n%25s%25n%25s%25n%25s%25n%25s%25n%25s%25n%25s%25n%25s%0A* (with combination of different parameters) **Description:** @@ -148,19 +161,21 @@ Injection using XSL transformations may be possible and may allow an attacker to **Explanation**: -This is a **false-positive** alert. v8.2.0 uses .NET 8 and the XSLT transformation is not possible on .NET5 or higher. +This is a **false-positive** alert. v8.3.0 uses .NET 8 and the XSLT transformation is not possible on .NET5 or higher. ### Application Error Disclosure [Risk: Low] — False Positive - *[POST] — https://localhost:44349/Account/ImpersonateUser* +- *[POST] — https://localhost:44349/Saas/Host/Editions* +- *[POST] — https://localhost:44349/Saas/Host/Tenants* **Description:** -The reported page contains an error/warning message that may disclose sensitive information like the location of the file that produced the unhandled exception. This information can be used to launch further attacks against the web application. The alert could be a false positive if the error message is found inside a documentation page. +The reported pages contain an error/warning message that may disclose sensitive information like the location of the file that produced the unhandled exception. This information can be used to launch further attacks against the web application. The alert could be a false positive if the error message is found inside a documentation page. **Explanation:** -This vulnerability was reported as a **positive** alert because the application ran in `Development` mode. ABP Framework throws exceptions for developers in the `Development` environment. We set the environment to `Production` and re-run the test, then the server sent a *500-Internal Error* without the error disclosed. Therefore this alert is **false-positive**. Further information can be found in the following issue: [github.com/abpframework/abp/issues/14177](https://github.com/abpframework/abp/issues/14177#issuecomment-1268206947). +This vulnerability was reported as a **positive** alert because the application ran in `Development` mode. ABP throws exceptions for developers in the `Development` environment. We set the environment to `Production` and re-run the test, then the server sent a *500-Internal Error* without the error disclosed. Therefore this alert is **false-positive**. Further information can be found in the following issue: [github.com/abpframework/abp/issues/14177](https://github.com/abpframework/abp/issues/14177#issuecomment-1268206947). ### Cookie No `HttpOnly` Flag [Risk: Low] — Positive (No need for a fix) @@ -326,89 +341,10 @@ The `X-Content-Type-Options` header allows you to avoid MIME type sniffing by sa You can add the [ABP's Security Header Middleware](../framework/ui/mvc-razor-pages/security-headers.md#security-headers-middleware) into the request pipeline to set the `X-Content-Type-Options` as *no-sniff*. Also, this middleware adds other pre-defined security headers to your application, including `X-XSS-Protection`, `X-Frame-Options` and `Content-Security-Policy` (if it's enabled). Read [Security Headers](../framework/ui/mvc-razor-pages/security-headers.md) documentation for more info. -## Other Alerts - -The following alerts are reported by the community or our customers in v8.1+. - -### Disclosed Microsoft Client Secret [Risk: Medium] - Positive (No need for a fix) - -* *[GET] — https://localhost:44349/setting-management* - -**Description**: - -Secrets shall never be exposed to unauthorized parties. This exposure can result from improper storage, insecure transmission, or inadequate access controls. In this specific case the owner of the user account is authorized to read and modify the secret. In case of administrative accounts, it could lead to further damages, by performing lateral movements, by using the credentials to access other services. - -**Explanation**: - -The endpoint `/setting-management/` requires permission to be visited and can only be accessed via authorized users. It is the setting page to configure the application settings including the *default localization language*, *timezone*, *layout type*, *password settings* and more... - -### Incorrect Session Handling – Insufficient Session Termination [Risk: Low] - Positive - -* *[GET] — https://localhost:44349/Account/Logout* - -**Description**: - -Application logout functionality does not terminate the user's session. This increases the risk of unauthorized application access via successful session hijacking attacks, users leaving their computers unattended, and/or a local attacker utilizing the browser history. On logout, user sessions should be invalidated and all relevant session identifiers, authentication tokens and application state information deleted or overwritten both on server and on client side. - -**Explanation**: - -You can track the status of this case at [github.com/abpframework/abp/issues/19576](https://github.com/abpframework/abp/issues/19576). - -### Information Disclosure via Configuration Scripts [Risk: Low] - Positive (No need for a fix) +## Other Alerts (Fixed) -- *[GET] — https://localhost:44349/Abp/ApplicationConfigurationScript* or *https://localhost:44349/api/abp/application-configuration* -- *[GET] — https://localhost:44349/Abp/ServiceProxyScript* - -**Description**: - -When users authenticate to the application, their browsers issue requests to 2 endpoints that host configuration scripts for the application framework. The first contains information about the passwords that are accepted by the application. This information can be used by the attackers to narrow down their dictionaries and only focus on the possible passwords for their -attacks. The second, on the other hand, discloses some endpoints that are unavailable to the users with low privileges. - -**Explanation**: - -* **Application Configuration Script**: - - These 2 endpoints are used by ABP application templates. The first one `/Abp/ApplicationConfigurationScript` provides configuration and user based definitions with JSON format. This data is important for SPA based applications to get the current language, localization texts, policies, settings, user info, current tenant or time zone information. This is not a data leak. User specific data can only be accessed after user logon. Other data are application-wide used not dangerous for unauthenticated users. For more information check out the [Application Configuration](../framework/api-development/standard-apis/configuration.md) document. - -* **Service Proxy Script**: - - This endpoint provides auto-generated JavaScript AJAX call methods for the backend operations. This may disclosure information about the host API methods. On the other hand, it makes easy to consume the HTTP APIs from JavaScript side. ABP Application Services are automatically converted to JavaScript proxies. But it does not mean that these JavaScript methods can be executed anonymously. The attacker still needs to log in to perform operations. For more information check out the [Service Proxy Script](../framework/ui/mvc-razor-pages/dynamic-javascript-proxies.md) document. If you want to disable this functionality, check out [github.com/abpframework/abp/issues/12297](https://github.com/abpframework/abp/issues/12297) - -### User E-mail Address Enumeration [Risk: Low] - Positive - -* *[GET] — https://localhost:44349/Account/ForgotPassword* - -**Description**: - -It is possible to collect valid email addresses by interacting with the "Forgot Password" function of the -application. This vulnerability is useful to increase the efficiency of brute force attacks. - -**Explanation**: - -If the email is known, it is easier to find the corresponding password. With the "Forgot Password" function, the attacker can enumerate valid email addresses as the function returns `Cannot find the given email` error, when there is no user registered with the provided e-mail address. This vulnerability has been fixed with v8.2, see the related issue for more info: [github.com/abpframework/abp/issues/19588](https://github.com/abpframework/abp/issues/19588). - -### Software Version Disclosure [Risk: Low] - Positive (No need for a fix) - -* *[GET] — https://localhost:44349/* - -**Description**: - -The assessed web server discloses its version number within the HTTP response headers. This information facilitates attackers in planning future attacks and can be used in the automation of the attack process. It is unnecessary to share this information with the clients of the web application. The vulnerability can be verified by issuing HTTP requests and inspecting HTTP response headers. HTTP header "Server" contains the version information. -The following header was received in server responses: `Server: Microsoft-IIS/10.0` or `Server: Microsoft-HTTPAPI/2.0`. - -**Explanation**: - -This is not directly related to ABP. It's a header added by the IIS server. So you can disable this header with the `web.config` file: - -```xml - - - - - - - - -``` +The following alerts were reported by the community or our customers in v8.2 and fixed: -The following issue has been opened for this vulnerability, you can follow it at [github.com/abpframework/abp/issues/19589](https://github.com/abpframework/abp/issues/19589). \ No newline at end of file +* https://github.com/abpframework/abp/issues/19576 +* https://github.com/abpframework/abp/issues/19588 +* https://github.com/abpframework/abp/issues/19589 diff --git a/docs/en/release-info/migration-guides/pro/openiddict-mvc.md b/docs/en/release-info/migration-guides/pro/openiddict-mvc.md index 3aceab4864..620e715c6a 100644 --- a/docs/en/release-info/migration-guides/pro/openiddict-mvc.md +++ b/docs/en/release-info/migration-guides/pro/openiddict-mvc.md @@ -261,6 +261,7 @@ This project is renamed to **AuthServer** after v6.0.0. You can also refactor an "RequireHttpsMetadata": "false", "SwaggerClientId": "MyApplication_Swagger" }, + ``` ## See Also diff --git a/docs/en/release-info/migration-guides/pro/openiddict-step-by-step.md b/docs/en/release-info/migration-guides/pro/openiddict-step-by-step.md index e08fce2660..9934aad753 100644 --- a/docs/en/release-info/migration-guides/pro/openiddict-step-by-step.md +++ b/docs/en/release-info/migration-guides/pro/openiddict-step-by-step.md @@ -372,7 +372,7 @@ dotnet ef migrations add AbpOpenIddictMigration * [Open source tiered & separate auth server application migrate Identity Server to OpenIddct](https://github.com/abpframework/abp-samples/tree/master/Ids2OpenId) * [Commercial tiered & separate auth server application migrate Identity Server to OpenIddct](https://abp.io/Account/Login?returnUrl=/api/download/samples/Ids2OpenId) -* [OpenIddict module document](https://docs.abp.io/en/abp/6.0/Modules/OpenIddict) +* [OpenIddict module document](https://abp.io/docs/6.0/Modules/OpenIddict) * [OpenIddict module source code](https://github.com/abpframework/abp/tree/rel-6.0/modules/openiddict) ## See Also diff --git a/docs/en/release-info/release-notes.md b/docs/en/release-info/release-notes.md index a94ed9d0b8..b10282bba7 100644 --- a/docs/en/release-info/release-notes.md +++ b/docs/en/release-info/release-notes.md @@ -2,13 +2,11 @@ This document contains **brief release notes** for each release. Release notes only include **major features** and **visible enhancements**. They don't include all the development done in the related version. To see raw and detailed change logs for every release, please check the related milestone and [the change logs page](https://abp.io/pro-releases) (only for paid license holders). -> If you want to read detailed release posts for each version, please see the [official ABP blog](https://abp.io/blog). +> If you want to read the release notes for each ABP Studio release, check it out from [here](../studio/release-notes.md). -## 8.3.0-rc.1 (2024-07-31) +## 8.3 (2024-09-05) -> This version is currently in preview. The final release date is planned for August, 2024. - -See the detailed **[blog post / announcement](https://abp.io/blog/announcing-abp-8-3-release-candidate)** for the v8.3 release. +See the detailed **[blog post / announcement](https://abp.io/blog/announcing-abp-8-3-stable-release)** for the v8.3 release. * CMS Kit: Marked Items & Approvement System for Commenting Feature * Enhancements on the Docs Module (Google Translation support & new single project mode) diff --git a/docs/en/solution-templates/layered-web-application/index.md b/docs/en/solution-templates/layered-web-application/index.md index fa0b565888..d6d78864e8 100644 --- a/docs/en/solution-templates/layered-web-application/index.md +++ b/docs/en/solution-templates/layered-web-application/index.md @@ -60,7 +60,7 @@ abp new Acme.BookStore -d mongodb This template supports the following mobile application frameworks: -- `react-native`: React Native +- `react-native`: React Native (*Available for* ***Team*** *or higher licenses*) Use the `-m` (or `--mobile`) option to specify the mobile application framework: diff --git a/docs/en/tutorials/microservice/index.md b/docs/en/tutorials/microservice/index.md new file mode 100644 index 0000000000..ee425f8afe --- /dev/null +++ b/docs/en/tutorials/microservice/index.md @@ -0,0 +1,3 @@ +# Microservice Development Tutorial + +This tutorial is work in progress. Please check later. You can check here to [see the draft tutorial](https://github.com/abpframework/abp/blob/microservice-tutorial/docs/en/tutorials/microservice/index.md). diff --git a/docs/en/tutorials/mobile/react-native/index.md b/docs/en/tutorials/mobile/react-native/index.md index 3178574627..74abfa3418 100644 --- a/docs/en/tutorials/mobile/react-native/index.md +++ b/docs/en/tutorials/mobile/react-native/index.md @@ -1,10 +1,12 @@ # Mobile Application Development Tutorial - React Native +React Native mobile option is *available for* ***Team*** *or higher licenses*. Therefore, if you don't have a commercial license, it's suggested to follow the article by downloading the source code of the sample application as described in the next chapter. + ## About This Tutorial - This tutorial assumes that you have completed the [Web Application Development tutorial](../../book-store/part-01.md) and built an ABP based application named `Acme.BookStore` with [React Native](../../../framework/ui/react-native) as the mobile option.. Therefore, if you haven't completed the [Web Application Development tutorial](../../book-store/part-01.md), you either need to complete it or download the source code from down below and follow this tutorial. - In this tutorial, we will only focus on the UI side of the `Acme.BookStore` application and will implement the CRUD operations. -- Before starting, please make sure that the [React Native Development Environment](https://docs.abp.io/en/commercial/latest/getting-started-react-native) is ready on your machine. +- Before starting, please make sure that the [React Native Development Environment](../../../framework/ui/react-native/index.md) is ready on your machine. ## Download the Source Code diff --git a/docs/en/tutorials/modular-crm/images/abp-studio-add-entity-framework-core-migration-dialog.png b/docs/en/tutorials/modular-crm/images/abp-studio-add-entity-framework-core-migration-dialog.png index c96217ac47..7edec8f3d9 100644 Binary files a/docs/en/tutorials/modular-crm/images/abp-studio-add-entity-framework-core-migration-dialog.png and b/docs/en/tutorials/modular-crm/images/abp-studio-add-entity-framework-core-migration-dialog.png differ diff --git a/docs/en/tutorials/modular-crm/images/abp-studio-add-entity-framework-core-migration.png b/docs/en/tutorials/modular-crm/images/abp-studio-add-entity-framework-core-migration.png index 1629f541d8..857df5f25d 100644 Binary files a/docs/en/tutorials/modular-crm/images/abp-studio-add-entity-framework-core-migration.png and b/docs/en/tutorials/modular-crm/images/abp-studio-add-entity-framework-core-migration.png differ diff --git a/docs/en/tutorials/modular-crm/images/abp-studio-add-new-dd-module.png b/docs/en/tutorials/modular-crm/images/abp-studio-add-new-dd-module.png deleted file mode 100644 index f8a701770e..0000000000 Binary files a/docs/en/tutorials/modular-crm/images/abp-studio-add-new-dd-module.png and /dev/null differ diff --git a/docs/en/tutorials/modular-crm/images/abp-studio-add-new-ddd-module.png b/docs/en/tutorials/modular-crm/images/abp-studio-add-new-ddd-module.png new file mode 100644 index 0000000000..ed11a95f57 Binary files /dev/null and b/docs/en/tutorials/modular-crm/images/abp-studio-add-new-ddd-module.png differ diff --git a/docs/en/tutorials/modular-crm/images/abp-studio-add-new-empty-module.png b/docs/en/tutorials/modular-crm/images/abp-studio-add-new-empty-module.png index 8815d15c44..53d453cd37 100644 Binary files a/docs/en/tutorials/modular-crm/images/abp-studio-add-new-empty-module.png and b/docs/en/tutorials/modular-crm/images/abp-studio-add-new-empty-module.png differ diff --git a/docs/en/tutorials/modular-crm/images/abp-studio-add-new-folder-command.png b/docs/en/tutorials/modular-crm/images/abp-studio-add-new-folder-command.png index 6557599a4e..56c861d4fd 100644 Binary files a/docs/en/tutorials/modular-crm/images/abp-studio-add-new-folder-command.png and b/docs/en/tutorials/modular-crm/images/abp-studio-add-new-folder-command.png differ diff --git a/docs/en/tutorials/modular-crm/images/abp-studio-add-new-package.png b/docs/en/tutorials/modular-crm/images/abp-studio-add-new-package.png index de9e1aa8c5..7e28d708bf 100644 Binary files a/docs/en/tutorials/modular-crm/images/abp-studio-add-new-package.png and b/docs/en/tutorials/modular-crm/images/abp-studio-add-new-package.png differ diff --git a/docs/en/tutorials/modular-crm/images/abp-studio-add-package-reference-2.png b/docs/en/tutorials/modular-crm/images/abp-studio-add-package-reference-2.png index 47a5671f7f..308d32c6ad 100644 Binary files a/docs/en/tutorials/modular-crm/images/abp-studio-add-package-reference-2.png and b/docs/en/tutorials/modular-crm/images/abp-studio-add-package-reference-2.png differ diff --git a/docs/en/tutorials/modular-crm/images/abp-studio-add-package-reference-3.png b/docs/en/tutorials/modular-crm/images/abp-studio-add-package-reference-3.png index e79b72747f..dc51826734 100644 Binary files a/docs/en/tutorials/modular-crm/images/abp-studio-add-package-reference-3.png and b/docs/en/tutorials/modular-crm/images/abp-studio-add-package-reference-3.png differ diff --git a/docs/en/tutorials/modular-crm/images/abp-studio-add-package-reference-4.png b/docs/en/tutorials/modular-crm/images/abp-studio-add-package-reference-4.png index fa3b5c4e23..b29850cce6 100644 Binary files a/docs/en/tutorials/modular-crm/images/abp-studio-add-package-reference-4.png and b/docs/en/tutorials/modular-crm/images/abp-studio-add-package-reference-4.png differ diff --git a/docs/en/tutorials/modular-crm/images/abp-studio-add-package-reference-5.png b/docs/en/tutorials/modular-crm/images/abp-studio-add-package-reference-5.png index 4a8ef0ba58..42d7c96cb2 100644 Binary files a/docs/en/tutorials/modular-crm/images/abp-studio-add-package-reference-5.png and b/docs/en/tutorials/modular-crm/images/abp-studio-add-package-reference-5.png differ diff --git a/docs/en/tutorials/modular-crm/images/abp-studio-add-package-reference-6.png b/docs/en/tutorials/modular-crm/images/abp-studio-add-package-reference-6.png new file mode 100644 index 0000000000..954ea41060 Binary files /dev/null and b/docs/en/tutorials/modular-crm/images/abp-studio-add-package-reference-6.png differ diff --git a/docs/en/tutorials/modular-crm/images/abp-studio-add-package-reference-7.png b/docs/en/tutorials/modular-crm/images/abp-studio-add-package-reference-7.png new file mode 100644 index 0000000000..3dea701062 Binary files /dev/null and b/docs/en/tutorials/modular-crm/images/abp-studio-add-package-reference-7.png differ diff --git a/docs/en/tutorials/modular-crm/images/abp-studio-add-package-reference-dialog-5.png b/docs/en/tutorials/modular-crm/images/abp-studio-add-package-reference-dialog-5.png new file mode 100644 index 0000000000..ad78c4eee7 Binary files /dev/null and b/docs/en/tutorials/modular-crm/images/abp-studio-add-package-reference-dialog-5.png differ diff --git a/docs/en/tutorials/modular-crm/images/abp-studio-add-package-reference-dialog-6.png b/docs/en/tutorials/modular-crm/images/abp-studio-add-package-reference-dialog-6.png new file mode 100644 index 0000000000..bd1c968b03 Binary files /dev/null and b/docs/en/tutorials/modular-crm/images/abp-studio-add-package-reference-dialog-6.png differ diff --git a/docs/en/tutorials/modular-crm/images/abp-studio-add-package-reference.png b/docs/en/tutorials/modular-crm/images/abp-studio-add-package-reference.png index 2cbd244a4b..a6870e4c0e 100644 Binary files a/docs/en/tutorials/modular-crm/images/abp-studio-add-package-reference.png and b/docs/en/tutorials/modular-crm/images/abp-studio-add-package-reference.png differ diff --git a/docs/en/tutorials/modular-crm/images/abp-studio-added-ddd-contracts-package.png b/docs/en/tutorials/modular-crm/images/abp-studio-added-ddd-contracts-package.png new file mode 100644 index 0000000000..f451a550d8 Binary files /dev/null and b/docs/en/tutorials/modular-crm/images/abp-studio-added-ddd-contracts-package.png differ diff --git a/docs/en/tutorials/modular-crm/images/abp-studio-build-and-restart-application.png b/docs/en/tutorials/modular-crm/images/abp-studio-build-and-restart-application.png index 010851ee05..889a4251cd 100644 Binary files a/docs/en/tutorials/modular-crm/images/abp-studio-build-and-restart-application.png and b/docs/en/tutorials/modular-crm/images/abp-studio-build-and-restart-application.png differ diff --git a/docs/en/tutorials/modular-crm/images/abp-studio-entity-framework-core-add-migration-order.png b/docs/en/tutorials/modular-crm/images/abp-studio-entity-framework-core-add-migration-order.png index 1e247f069b..b739e59373 100644 Binary files a/docs/en/tutorials/modular-crm/images/abp-studio-entity-framework-core-add-migration-order.png and b/docs/en/tutorials/modular-crm/images/abp-studio-entity-framework-core-add-migration-order.png differ diff --git a/docs/en/tutorials/modular-crm/images/abp-studio-entity-framework-core-update-database.png b/docs/en/tutorials/modular-crm/images/abp-studio-entity-framework-core-update-database.png index bece8dfc12..b28b4e48a0 100644 Binary files a/docs/en/tutorials/modular-crm/images/abp-studio-entity-framework-core-update-database.png and b/docs/en/tutorials/modular-crm/images/abp-studio-entity-framework-core-update-database.png differ diff --git a/docs/en/tutorials/modular-crm/images/abp-studio-graph-build.png b/docs/en/tutorials/modular-crm/images/abp-studio-graph-build.png index 11855d792e..8930bdd062 100644 Binary files a/docs/en/tutorials/modular-crm/images/abp-studio-graph-build.png and b/docs/en/tutorials/modular-crm/images/abp-studio-graph-build.png differ diff --git a/docs/en/tutorials/modular-crm/images/abp-studio-import-module-for-ordering.png b/docs/en/tutorials/modular-crm/images/abp-studio-import-module-for-ordering.png index 94ab70d255..13aab5d477 100644 Binary files a/docs/en/tutorials/modular-crm/images/abp-studio-import-module-for-ordering.png and b/docs/en/tutorials/modular-crm/images/abp-studio-import-module-for-ordering.png differ diff --git a/docs/en/tutorials/modular-crm/images/abp-studio-import-module-ordering.png b/docs/en/tutorials/modular-crm/images/abp-studio-import-module-ordering.png index e62c0dc315..8956033762 100644 Binary files a/docs/en/tutorials/modular-crm/images/abp-studio-import-module-ordering.png and b/docs/en/tutorials/modular-crm/images/abp-studio-import-module-ordering.png differ diff --git a/docs/en/tutorials/modular-crm/images/abp-studio-import-module.png b/docs/en/tutorials/modular-crm/images/abp-studio-import-module.png index 673d303307..7a63894709 100644 Binary files a/docs/en/tutorials/modular-crm/images/abp-studio-import-module.png and b/docs/en/tutorials/modular-crm/images/abp-studio-import-module.png differ diff --git a/docs/en/tutorials/modular-crm/images/abp-studio-new-folder-dialog.png b/docs/en/tutorials/modular-crm/images/abp-studio-new-folder-dialog.png index f726332a37..e1e3065b9c 100644 Binary files a/docs/en/tutorials/modular-crm/images/abp-studio-new-folder-dialog.png and b/docs/en/tutorials/modular-crm/images/abp-studio-new-folder-dialog.png differ diff --git a/docs/en/tutorials/modular-crm/images/abp-studio-open-in-explorer.png b/docs/en/tutorials/modular-crm/images/abp-studio-open-in-explorer.png index ce052d2b17..99c6d26b20 100644 Binary files a/docs/en/tutorials/modular-crm/images/abp-studio-open-in-explorer.png and b/docs/en/tutorials/modular-crm/images/abp-studio-open-in-explorer.png differ diff --git a/docs/en/tutorials/modular-crm/images/abp-studio-open-with-visual-studio-main-app.png b/docs/en/tutorials/modular-crm/images/abp-studio-open-with-visual-studio-main-app.png index 1f879ed795..f4131cfb69 100644 Binary files a/docs/en/tutorials/modular-crm/images/abp-studio-open-with-visual-studio-main-app.png and b/docs/en/tutorials/modular-crm/images/abp-studio-open-with-visual-studio-main-app.png differ diff --git a/docs/en/tutorials/modular-crm/images/abp-studio-open-with-visual-studio.png b/docs/en/tutorials/modular-crm/images/abp-studio-open-with-visual-studio.png index ba96d6f488..2b1bac2db6 100644 Binary files a/docs/en/tutorials/modular-crm/images/abp-studio-open-with-visual-studio.png and b/docs/en/tutorials/modular-crm/images/abp-studio-open-with-visual-studio.png differ diff --git a/docs/en/tutorials/modular-crm/images/abp-studio-ordering-swagger-ui-in-browser.png b/docs/en/tutorials/modular-crm/images/abp-studio-ordering-swagger-ui-in-browser.png new file mode 100644 index 0000000000..304027af9e Binary files /dev/null and b/docs/en/tutorials/modular-crm/images/abp-studio-ordering-swagger-ui-in-browser.png differ diff --git a/docs/en/tutorials/modular-crm/images/abp-studio-solution-runner-graph-build.png b/docs/en/tutorials/modular-crm/images/abp-studio-solution-runner-graph-build.png index ececabbf01..10d210a0be 100644 Binary files a/docs/en/tutorials/modular-crm/images/abp-studio-solution-runner-graph-build.png and b/docs/en/tutorials/modular-crm/images/abp-studio-solution-runner-graph-build.png differ diff --git a/docs/en/tutorials/modular-crm/images/abp-studio-solution-runner-initial-product-page.png b/docs/en/tutorials/modular-crm/images/abp-studio-solution-runner-initial-product-page.png index 480da27d7e..269c55f8b4 100644 Binary files a/docs/en/tutorials/modular-crm/images/abp-studio-solution-runner-initial-product-page.png and b/docs/en/tutorials/modular-crm/images/abp-studio-solution-runner-initial-product-page.png differ diff --git a/docs/en/tutorials/modular-crm/images/abp-studio-solution-runner-orders-page.png b/docs/en/tutorials/modular-crm/images/abp-studio-solution-runner-orders-page.png index f3e9896e8f..fbd419d145 100644 Binary files a/docs/en/tutorials/modular-crm/images/abp-studio-solution-runner-orders-page.png and b/docs/en/tutorials/modular-crm/images/abp-studio-solution-runner-orders-page.png differ diff --git a/docs/en/tutorials/modular-crm/images/abp-studio-swagger-ui-create-order-execute.png b/docs/en/tutorials/modular-crm/images/abp-studio-swagger-ui-create-order-execute.png new file mode 100644 index 0000000000..b0f384f15d Binary files /dev/null and b/docs/en/tutorials/modular-crm/images/abp-studio-swagger-ui-create-order-execute.png differ diff --git a/docs/en/tutorials/modular-crm/images/sql-server-orders-database-table-filled.png b/docs/en/tutorials/modular-crm/images/sql-server-orders-database-table-filled.png new file mode 100644 index 0000000000..75c812593c Binary files /dev/null and b/docs/en/tutorials/modular-crm/images/sql-server-orders-database-table-filled.png differ diff --git a/docs/en/tutorials/modular-crm/images/sql-server-orders-table-content.png b/docs/en/tutorials/modular-crm/images/sql-server-orders-table-content.png deleted file mode 100644 index 1bc432c650..0000000000 Binary files a/docs/en/tutorials/modular-crm/images/sql-server-orders-table-content.png and /dev/null differ diff --git a/docs/en/tutorials/modular-crm/images/visual-studio-ordering-contracts.png b/docs/en/tutorials/modular-crm/images/visual-studio-ordering-contracts.png new file mode 100644 index 0000000000..d9206f6630 Binary files /dev/null and b/docs/en/tutorials/modular-crm/images/visual-studio-ordering-contracts.png differ diff --git a/docs/en/tutorials/modular-crm/images/visual-studio-ordering-controller.png b/docs/en/tutorials/modular-crm/images/visual-studio-ordering-controller.png deleted file mode 100644 index 56a1dad5b1..0000000000 Binary files a/docs/en/tutorials/modular-crm/images/visual-studio-ordering-controller.png and /dev/null differ diff --git a/docs/en/tutorials/modular-crm/part-02.md b/docs/en/tutorials/modular-crm/part-02.md index 14560b3766..de8fd69f92 100644 --- a/docs/en/tutorials/modular-crm/part-02.md +++ b/docs/en/tutorials/modular-crm/part-02.md @@ -41,7 +41,7 @@ We will use the *DDD Module* template for the Product module and the *Empty Modu Right-click the `modules` folder on the *Solution Explorer* panel, and select the *Add* -> *New Module* -> *DDD Module* command: -![abp-studio-add-new-dd-module](images/abp-studio-add-new-dd-module.png) +![abp-studio-add-new-ddd-module](images/abp-studio-add-new-ddd-module.png) This command opens a new dialog to define the properties of the new module. You can use the following values to create a new module named `ModularCrm.Products`: diff --git a/docs/en/tutorials/modular-crm/part-05.md b/docs/en/tutorials/modular-crm/part-05.md index f7d624bcbf..69a9223882 100644 --- a/docs/en/tutorials/modular-crm/part-05.md +++ b/docs/en/tutorials/modular-crm/part-05.md @@ -232,9 +232,215 @@ After the operation completes, you can check your database to see the new `Order ![sql-server-products-database-table](images/sql-server-orders-database-table.png) -## Creating the User Interface +## Creating the Application Service + +We will create an application service to manage the `Order` entities. + +### Defining the Application Service Contract + +We're gonna create the `IOrderAppService` interface under the `ModularCrm.Ordering.Contracts` project but first, we need to add `Volo.Abp.Ddd.Application.Contracts` package reference. + +Right-click the `ModularCrm.Ordering.Contracts` project in the *Solution Explorer* panel and select the *Add Package Reference* command: + +![abp-studio-add-package-reference-6](images/abp-studio-add-package-reference-6.png) + +This command opens a dialog to add a new package reference: + +![abp-studio-add-package-reference-dialog-5](images/abp-studio-add-package-reference-dialog-5.png) + +Select the *NuGet* tab, type `Volo.Abp.Ddd.Application.Contracts` as the *Package name* and write the version of the package you want to install. Please be sure that you are installing the same version as the other ABP packages you are already using. + +Click the *Ok* button. Now you can check the *Packages* under the `ModularCrm.Ordering.Contracts` project *Dependencies* to see the `Volo.Abp.Ddd.Application.Contracts` package is installed: + +![abp-studio-added-ddd-contracts-package](images/abp-studio-added-ddd-contracts-package.png) + +Return to your IDE, open the `ModularCrm.Ordering` module's .NET solution and create an `IOrderAppService` interface under the `Services` folder for `ModularCrm.Ordering.Contracts` project: + +````csharp +using System.Collections.Generic; +using System.Threading.Tasks; +using Volo.Abp.Application.Services; + +namespace ModularCrm.Ordering.Contracts.Services; + +public interface IOrderAppService : IApplicationService +{ + Task> GetListAsync(); + Task CreateAsync(OrderCreationDto input); +} +```` + +### Defining Data Transfer Objects + +The `GetListAsync` and `CreateAsync` methods will use data transfer objects (DTOs) to communicate with the client. We will create two DTO classes for that purpose. + +Create a `OrderCreationDto` class under the `ModularCrm.Ordering.Contracts` project: + +````csharp +using System; +using System.ComponentModel.DataAnnotations; + +namespace ModularCrm.Ordering.Contracts.Services; + +public class OrderCreationDto +{ + [Required] + [StringLength(150)] + public string CustomerName { get; set; } + + [Required] + public Guid ProductId { get; set; } +} +```` + +Create a `OrderDto` class under the `ModularCrm.Ordering.Contracts` project: + +````csharp +using System; +using ModularCrm.Ordering.Contracts.Enums; + +namespace ModularCrm.Ordering.Contracts.Services; + +public class OrderDto +{ + public Guid Id { get; set; } + public string CustomerName { get; set; } + public Guid ProductId { get; set; } + public OrderState State { get; set; } +} +```` + +The new files under the `ModularCrm.Ordering.Contracts` project should be like the following figure: + +![visual-studio-ordering-contracts](images/visual-studio-ordering-contracts.png) + +### Implementing the Application Service + +Before creating the `OrderAppService` class, we need to add the `Volo.Abp.Ddd.Application` and `Volo.Abp.AutoMapper` packages to the Ordering module. + +Right-click the `ModularCrm.Ordering` package in the *Solution Explorer* panel and select the *Add Package Reference* command: + +![abp-studio-add-package-reference-7](images/abp-studio-add-package-reference-7.png) + +This command opens a dialog to add a new package reference: + +![abp-studio-add-package-reference-dialog-6](images/abp-studio-add-package-reference-dialog-6.png) + +Select the *NuGet* tab, enter `Volo.Abp.Ddd.Application` as the *Package name*, and specify the version of the package you wish to install. Afterward, you can add the `Volo.Abp.AutoMapper` package in the same dialog. Ensure that you install the same version as the other ABP packages you are already using. + +Click the *OK* button. Now we should configure the *AutoMapper* object to map the `Order` entity to the `OrderDto` object. We will create a class named `OrderingApplicationAutoMapperProfile` under the `ModularCrm.Ordering` project: + +````csharp +using AutoMapper; +using ModularCrm.Ordering.Contracts.Services; +using ModularCrm.Ordering.Entities; + +namespace ModularCrm.Ordering; + +public class OrderingApplicationAutoMapperProfile : Profile +{ + public OrderingApplicationAutoMapperProfile() + { + CreateMap(); + } +} +```` -Since this is a non-layered module, we can use entities and repositories directly on the user interface. If you think that is not a good practice, then use the layered module template as we've already done for the *Products* module. But for the Ordering module, we will keep it very simple for this tutorial to show it is also possible. +And configure the `OrderingWebModule` class to use the `OrderingApplicationAutoMapperProfile`: + +````csharp +public override void ConfigureServices(ServiceConfigurationContext context) +{ + //Add these lines + context.Services.AddAutoMapperObjectMapper(); + Configure(options => + { + options.AddMaps(validate: true); + }); +} +```` + +Now, we can implement the `IOrderAppService` interface. Create an `OrderAppService` class under the `Services` folder of the `ModularCrm.Ordering` project: + +````csharp +using System; +using System.Collections.Generic; +using System.Threading.Tasks; +using ModularCrm.Ordering.Contracts.Enums; +using ModularCrm.Ordering.Contracts.Services; +using ModularCrm.Ordering.Entities; +using Volo.Abp.Application.Services; +using Volo.Abp.Domain.Repositories; + +namespace ModularCrm.Ordering.Services; + +public class OrderAppService : ApplicationService, IOrderAppService +{ + private readonly IRepository _orderRepository; + + public OrderAppService(IRepository orderRepository) + { + _orderRepository = orderRepository; + ObjectMapperContext = typeof(OrderingWebModule); + } + + public async Task> GetListAsync() + { + var orders = await _orderRepository.GetListAsync(); + return ObjectMapper.Map, List>(orders); + } + + public async Task CreateAsync(OrderCreationDto input) + { + var order = new Order + { + CustomerName = input.CustomerName, + ProductId = input.ProductId, + State = OrderState.Placed + }; + + await _orderRepository.InsertAsync(order); + } +} +```` + +Open the `ModularCrmWebModule` class in the main application's solution (the `ModularCrm` solution), find the `ConfigureAutoApiControllers` method and add the following lines inside that method: + +````csharp +private void ConfigureAutoApiControllers() +{ + Configure(options => + { + options.ConventionalControllers.Create(typeof(ModularCrmApplicationModule).Assembly); + options.ConventionalControllers.Create(typeof(ProductsApplicationModule).Assembly); + + //ADD THE FOLLOWING LINE: + options.ConventionalControllers.Create(typeof(OrderingWebModule).Assembly); + }); +} +```` + +### Creating Example Orders + +This section will create a few example orders using the [Swagger UI](../../framework/api-development/swagger.md). Thus, we will have some sample orders to show on the UI. + +Now, right-click the `ModularCrm` under the `main` folder in the Solution Explorer panel and select the *Dotnet CLI* -> *Graph Build* command. This will ensure that the order module and the main application are built and ready to run. + +After the build process completes, open the Solution Runner panel and click the *Play* button near the solution root. Once the `ModularCrm.Web` application runs, we can right-click it and select the *Browse* command to open the user interface. + +Once you see the user interface of the web application, type `/swagger` at the end of the URL to open the Swagger UI. If you scroll down, you should see the `Orders` API: + +![abp-studio-ordering-swagger-ui-in-browser](images/abp-studio-ordering-swagger-ui-in-browser.png) + +Expand the `/api/app/order` API and click the *Try it out* button. Then, create a few orders by filling in the request body and clicking the *Execute* button: + +![abp-studio-swagger-ui-create-order-execute](images/abp-studio-swagger-ui-create-order-execute.png) + +If you check the database, you should see the entities created in the *Orders* table: + +![sql-server-orders-database-table-filled](images/sql-server-orders-database-table-filled.png) + +## Creating the User Interface ### Creating a `_ViewImports.cshtml` File @@ -257,28 +463,26 @@ Create an `Orders` folder under the `Pages` folder and add an `Index.cshtml` Raz ````csharp using Microsoft.AspNetCore.Mvc.RazorPages; -using ModularCrm.Ordering.Entities; -using System; using System.Collections.Generic; using System.Threading.Tasks; -using Volo.Abp.Domain.Repositories; +using ModularCrm.Ordering.Contracts.Services; namespace ModularCrm.Ordering.Pages.Orders { public class IndexModel : PageModel { - public List Orders { get; set; } + public List Orders { get; set; } - private readonly IRepository _orderRepository; + private readonly IOrderAppService _orderAppService; - public IndexModel(IRepository orderRepository) + public IndexModel(IOrderAppService orderAppService) { - _orderRepository = orderRepository; + _orderAppService = orderAppService; } public async Task OnGetAsync() { - Orders = await _orderRepository.GetListAsync(); + Orders = await _orderAppService.GetListAsync(); } } } @@ -310,14 +514,6 @@ Here, we are injecting a repository to query `Order` entities from the database This page shows a list of orders on the UI. We haven't created a UI to create new orders, and we will not do it to keep this tutorial simple. If you want to learn how to create advanced UIs with ABP, please follow the [Book Store tutorial](../book-store/index.md). -### Creating Some Sample Data - -You can open the database and manually create a few order records to show on the UI: - -![sql-server-orders-table-content](images/sql-server-orders-table-content.png) - -You can get `ProductId` values from the `Products` table and [generate](https://www.guidgenerator.com/) some random GUIDs for other GUID fields. - ### Building the Application Now, we will run the application to see the result. Please stop the application if it is already running. Then open the *Solution Runner* panel, right-click the `ModularCrm.Web` application, and select the *Build* -> *Graph Build* command: @@ -375,11 +571,13 @@ namespace ModularCrm.Ordering `OrderingMenuContributor` implements the `IMenuContributor` interface, which forces us to implement the `ConfigureMenuAsync` method. In that method, we can manipulate the menu items (add new menu items, remove existing menu items or change the properties of existing menu items). The `ConfigureMenuAsync` method is executed whenever the menu is rendered on the UI, so you can dynamically decide how to manipulate the menu items. -After creating such a class, we should configure the `AbpNavigationOptions` to add that contributor. Open the `OrderingWebModule` class in the `ModularCrm.Ordering` project and add the following configuration code into the `ConfigureServices` method (if there is no `ConfigureServices` method, first create it as shown below): +After creating such a class, we should configure the `AbpNavigationOptions` to add that contributor. Open the `OrderingWebModule` class in the `ModularCrm.Ordering` project and add the following configuration code into the `ConfigureServices` method: ````csharp public override void ConfigureServices(ServiceConfigurationContext context) { + //... other configurations + Configure(options => { options.MenuContributors.Add(new OrderingMenuContributor()); diff --git a/docs/en/tutorials/modular-crm/part-06.md b/docs/en/tutorials/modular-crm/part-06.md index 2fd5d82f34..eca859a8f5 100644 --- a/docs/en/tutorials/modular-crm/part-06.md +++ b/docs/en/tutorials/modular-crm/part-06.md @@ -145,68 +145,121 @@ ABP Studio adds the package reference and arranges the [module](../../framework/ Now, we can inject and use `IProductIntegrationService` in the Ordering module codebase. -Open the `IndexModel` class (the `IndexModel.cshtml.cs` file under the `Pages/Orders` folder of the `ModularCrm.Ordering` project of the `ModularCrm.Ordering` .NET solution) and change its content as like the following code block: +Open the `OrderAppService` class (the `OrderAppService.cs` file under the `Services` folder of the `ModularCrm.Ordering` project of the `ModularCrm.Ordering` .NET solution) and change its content as like the following code block: ````csharp -using Microsoft.AspNetCore.Mvc.RazorPages; -using ModularCrm.Ordering.Entities; -using ModularCrm.Products.Integration; using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; +using ModularCrm.Ordering.Contracts.Enums; +using ModularCrm.Ordering.Contracts.Services; +using ModularCrm.Ordering.Entities; +using ModularCrm.Products.Integration; +using Volo.Abp.Application.Services; using Volo.Abp.Domain.Repositories; -namespace ModularCrm.Ordering.Pages.Orders +namespace ModularCrm.Ordering.Services; + +public class OrderAppService : ApplicationService, IOrderAppService { - public class IndexModel : PageModel + private readonly IRepository _orderRepository; + private readonly IProductIntegrationService _productIntegrationService; + + public OrderAppService( + IRepository orderRepository, + IProductIntegrationService productIntegrationService) { - public List Orders { get; set; } - - // Define a dictionary for Id -> Name conversion - public Dictionary ProductNames { get; set; } + _orderRepository = orderRepository; + _productIntegrationService = productIntegrationService; + ObjectMapperContext = typeof(OrderingWebModule); + } - private readonly IRepository _orderRepository; - private readonly IProductIntegrationService _productIntegrationService; + public async Task> GetListAsync() + { + var orders = await _orderRepository.GetListAsync(); - public IndexModel( - IRepository orderRepository, - IProductIntegrationService productIntegrationService) + // Prepare a list of products we need + var productIds = orders.Select(o => o.ProductId).Distinct().ToList(); + var products = (await _productIntegrationService + .GetProductsByIdsAsync(productIds)) + .ToDictionary(p => p.Id, p => p.Name); + + var result = ObjectMapper.Map, List>(orders); + result = result.Select(a => { - _orderRepository = orderRepository; - _productIntegrationService = productIntegrationService; - } + a.ProductName = products[a.ProductId]; + return a; + }) + .ToList(); + + return result; + } - public async Task OnGetAsync() + public async Task CreateAsync(OrderCreationDto input) + { + var order = new Order { - // Getting the orders from this module's database - Orders = await _orderRepository.GetListAsync(); + CustomerName = input.CustomerName, + ProductId = input.ProductId, + State = OrderState.Placed + }; + + await _orderRepository.InsertAsync(order); + } +} +```` - // Prepare a list of products we need - var productIds = Orders.Select(o => o.ProductId).Distinct().ToList(); +And also, open the `OrderDto` class (the `OrderDto.cs` file under the `Services` folder of the `ModularCrm.Ordering.Contracts` project of the `ModularCrm.Ordering` .NET solution) and add a `ProductName` property to it: - // Request the related products from the product integration service - var products = await _productIntegrationService - .GetProductsByIdsAsync(productIds); +````csharp +using System; +using ModularCrm.Ordering.Contracts.Enums; - // Create a dictionary to get a product name easily by its id - ProductNames = products.ToDictionary(p => p.Id, p => p.Name); - } +namespace ModularCrm.Ordering.Contracts.Services; + +public class OrderDto +{ + public Guid Id { get; set; } + public string CustomerName { get; set; } + public Guid ProductId { get; set; } + public string ProductName { get; set; } // New property + public OrderState State { get; set; } +} +```` + +Lastly, open the `OrderingApplicationAutoMapperProfile` class (the `OrderingApplicationAutoMapperProfile.cs` file under the `Services` folder of the `ModularCrm.Ordering` project of the `ModularCrm.Ordering` .NET solution) and ignore the `ProductName` property in the mapping configuration: + +````csharp +using AutoMapper; +using ModularCrm.Ordering.Contracts.Services; +using ModularCrm.Ordering.Entities; +using Volo.Abp.AutoMapper; + +namespace ModularCrm.Ordering; + +public class OrderingApplicationAutoMapperProfile : Profile +{ + public OrderingApplicationAutoMapperProfile() + { + CreateMap() + .Ignore(x => x.ProductName); // New line } } ```` Let's see what we've changed: -* We have defined a `ProductNames` dictionary. We will use it on the UI to convert product IDs to product names. We are filling that dictionary with products from the product integration service. +* We've added a `ProductName` property to the `OrderDto` class to store the product name. * Injecting the `IProductIntegrationService` interface so we can use it to request products. -* In the `OnGetAsync` method; +* In the `GetListAsync` method; * First getting the orders from the ordering module's database just like done before. * Next, we are preparing a unique list of product IDs since the `GetProductsByIdsAsync` method requests it. * Then we are calling the `IProductIntegrationService.GetProductsByIdsAsync` method to get a `List` object. * In the last line, we are converting the product list to a dictionary, where the key is `Guid Id` and the value is `string Name`. That way, we can easily find a product's name with its ID. + * Finally, we are mapping the orders to `OrderDto` objects and setting the product name by looking up the product ID in the dictionary. -Open the `Index.cshtml` file, and change the `@order.ProductId` part by `@Model.ProductNames[order.ProductId]` to write the product name instead of the product ID. The final `Index.cshtml` content should be the following: +Open the `Index.cshtml` file, and change the `@order.ProductId` part by `@Model.ProductName` to write the product name instead of the product ID. The final `Index.cshtml` content should be the following: ````html @page @@ -219,11 +272,11 @@ Open the `Index.cshtml` file, and change the `@order.ProductId` part by `@Model. @foreach (var order in Model.Orders) { - - Customer: @order.CustomerName
- Product: @Model.ProductNames[order.ProductId]
- State: @order.State -
+ + Customer: @order.CustomerName
+ Product: @order.ProductName
+ State: @order.State +
}
@@ -241,4 +294,3 @@ In the way explained in this section, you can easily create integration services > **Design Tip** > > It is suggested that you keep that type of communication to a minimum and not couple your modules with each other. It can make your solution complicated and may also decrease your system performance. When you need to do it, think about performance and try to make some optimizations. For example, if the Ordering module frequently needs product data, you can use a kind of [cache layer](../../framework/fundamentals/caching.md), so it doesn't make frequent requests to the Products module. Especially if you consider converting your system to a microservice solution in the future, too many direct integration API calls can be a performance bottleneck. - diff --git a/docs/en/tutorials/modular-crm/part-07.md b/docs/en/tutorials/modular-crm/part-07.md index 9dc18648bd..de02c08fee 100644 --- a/docs/en/tutorials/modular-crm/part-07.md +++ b/docs/en/tutorials/modular-crm/part-07.md @@ -56,83 +56,87 @@ namespace ModularCrm.Ordering.Contracts.Events ### Using the `IDistributedEventBus` Service -The `IDistributedEventBus` service publishes events to the event bus. Until this point, the Ordering module has no functionality to create new orders. - -In Part 3, we used ABP's Auto HTTP API Controller feature to expose HTTP APIs from application services automatically. In this section, we will create an ASP.NET Core API controller class to create a new order. In that way, you will also see that it is not different from creating a regular ASP.NET Core controller. - -Open the `ModularCrm.Ordering` module's .NET solution, create a `Controllers` folder in the `ModularCrm.Ordering` project and place a controller class named `OrdersController` in that new folder. The final folder structure should be like that: - -![visual-studio-ordering-controller](images/visual-studio-ordering-controller.png) - -Here is the full `OrdersController` class: +The `IDistributedEventBus` service publishes events to the event bus. Until this point, the Ordering module has no functionality to create new orders. Let's change that and place an order, for that purpose open the `ModularCrm.Ordering` module's .NET solution, and update the `OrderAppService` as follows: ````csharp -using Microsoft.AspNetCore.Mvc; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; using ModularCrm.Ordering.Contracts.Enums; using ModularCrm.Ordering.Contracts.Events; +using ModularCrm.Ordering.Contracts.Services; using ModularCrm.Ordering.Entities; -using System; -using System.ComponentModel.DataAnnotations; -using System.Threading.Tasks; -using Volo.Abp.AspNetCore.Mvc; +using ModularCrm.Products.Integration; +using Volo.Abp.Application.Services; using Volo.Abp.Domain.Repositories; using Volo.Abp.EventBus.Distributed; -namespace ModularCrm.Ordering.Controllers +namespace ModularCrm.Ordering.Services; + +public class OrderAppService : ApplicationService, IOrderAppService { - [Route("api/orders")] - [ApiController] - public class OrdersController : AbpControllerBase + private readonly IRepository _orderRepository; + private readonly IProductIntegrationService _productIntegrationService; + private readonly IDistributedEventBus _distributedEventBus; + + public OrderAppService( + IRepository orderRepository, + IProductIntegrationService productIntegrationService, + IDistributedEventBus distributedEventBus) { - private readonly IRepository _orderRepository; - private readonly IDistributedEventBus _distributedEventBus; + _orderRepository = orderRepository; + _productIntegrationService = productIntegrationService; + _distributedEventBus = distributedEventBus; + ObjectMapperContext = typeof(OrderingWebModule); + } - public OrdersController( - IRepository orderRepository, - IDistributedEventBus distributedEventBus) - { - _orderRepository = orderRepository; - _distributedEventBus = distributedEventBus; - } + public async Task> GetListAsync() + { + var orders = await _orderRepository.GetListAsync(); + + // Prepare a list of products we need + var productIds = orders.Select(o => o.ProductId).Distinct().ToList(); + var products = (await _productIntegrationService + .GetProductsByIdsAsync(productIds)) + .ToDictionary(p => p.Id, p => p.Name); - [HttpPost] - public async Task CreateAsync(OrderCreationModel input) + var result = ObjectMapper.Map, List>(orders); + result = result.Select(a => { - // Create a new Order entity - var order = new Order - { - CustomerName = input.CustomerName, - ProductId = input.ProductId, - State = OrderState.Placed - }; - - // Save it to the database - await _orderRepository.InsertAsync(order); - - // Publish an event so other modules can be informed - await _distributedEventBus.PublishAsync( - new OrderPlacedEto - { - ProductId = order.ProductId, - CustomerName = order.CustomerName - }); - - return Created(); - } + a.ProductName = products[a.ProductId]; + return a; + }) + .ToList(); - public class OrderCreationModel + return result; + } + + public async Task CreateAsync(OrderCreationDto input) + { + // Create a new Order entity + var order = new Order { - public Guid ProductId { get; set; } + CustomerName = input.CustomerName, + ProductId = input.ProductId, + State = OrderState.Placed + }; - [Required] - [StringLength(120)] - public string CustomerName { get; set; } - } + // Save it to the database + await _orderRepository.InsertAsync(order); + + // Publish an event so other modules can be informed + await _distributedEventBus.PublishAsync( + new OrderPlacedEto + { + ProductId = order.ProductId, + CustomerName = order.CustomerName + }); } } ```` -The `OrdersController.CreateAsync` method creates a new `Order` entity, saves it to the database and finally publishes an `OrderPlacedEto` event. +The `OrderAppService.CreateAsync` method creates a new `Order` entity, saves it to the database and finally publishes an `OrderPlacedEto` event. ## Subscribing to an Event diff --git a/docs/en/tutorials/todo/layered/index.md b/docs/en/tutorials/todo/layered/index.md index b58d95a034..2eef34bbd2 100644 --- a/docs/en/tutorials/todo/layered/index.md +++ b/docs/en/tutorials/todo/layered/index.md @@ -65,17 +65,17 @@ This documentation has a video tutorial on **YouTube**!! You can watch it here: We will use the [ABP CLI](../../../cli/index.md) to create new ABP solutions. You can run the following command on a terminal window to install this dotnet tool: -``` +````bash dotnet tool install -g Volo.Abp.Studio.Cli -``` +```` ## Create Your ABP Solution Create an empty folder, open a command-line terminal and execute the following command in the terminal: -``` +````bash abp new TodoApp{{if UI=="Blazor"}} -u blazor{{else if UI=="BlazorServer"}} -u blazor-server{{else if UI=="NG"}} -u angular{{end}}{{if DB=="Mongo"}} -d mongodb{{end}} -``` +```` {{if UI=="NG"}} @@ -107,9 +107,9 @@ However, sometimes this command might need to be manually run. For example, you For such cases, run the `abp install-libs` command on the root directory of your solution to install all required NPM packages: -``` +````bash abp install-libs -``` +```` > We suggest you install [Yarn](https://classic.yarnpkg.com/) to prevent possible package inconsistencies, if you haven't installed it yet. @@ -121,9 +121,9 @@ abp install-libs However, sometimes you might need to run this command manually. To update script & style references without worrying about dependencies, ordering, etc. in a project, you can run this command in the directory of your blazor application: -``` +````bash abp bundle -``` +```` > For more details about managing style and script references in Blazor or MAUI Blazor apps, see [Managing Global Scripts & Styles](../../../framework/ui/blazor/global-scripts-styles.md). @@ -167,9 +167,9 @@ You can explore and test your HTTP API with this UI. If it works, we can run the You can run the application using the following command: -``` +````bash npm start -``` +```` This command takes time, but eventually runs and opens the application in your default browser: @@ -185,7 +185,7 @@ All ready. We can start coding! This application has a single [entity](../../../framework/architecture/domain-driven-design/entities.md) and we'll start by creating it. Create a new `TodoItem` class inside the *TodoApp.Domain* project: -```csharp +````csharp using System; using Volo.Abp.Domain.Entities; @@ -196,7 +196,7 @@ namespace TodoApp public string Text { get; set; } = string.Empty; } } -``` +```` `BasicAggregateRoot` is the simplest base class to create root entities, and `Guid` is the primary key (`Id`) of the entity here. @@ -242,9 +242,9 @@ The startup solution is configured to use Entity Framework Core [Code First Migr Open a command-line terminal in the directory of the *TodoApp.EntityFrameworkCore* project and type the following command: -``` +````bash dotnet ef migrations add Added_TodoItem -``` +```` This will add a new migration class to the project: @@ -252,9 +252,9 @@ This will add a new migration class to the project: You can apply changes to the database using the following command, in the same command-line terminal: -``` +````bash dotnet ef database update -``` +```` > If you are using Visual Studio, you may want to use the `Add-Migration Added_TodoItem` and `Update-Database` commands in the *Package Manager Console (PMC)*. In this case, ensure that {{if UI=="MVC"}}`TodoApp.Web`{{else if UI=="BlazorServer" || UI=="Blazor" || UI=="BlazorWebApp"}}`TodoApp.Blazor`{{else if UI=="Blazor" || UI=="NG"}}`TodoApp.HttpApi.Host`{{end}} is the startup project and `TodoApp.EntityFrameworkCore` is the *Default Project* in PMC. @@ -264,18 +264,18 @@ Next step is to setup the [MongoDB](../../../framework/data/mongodb/index.md) co 1. Add a new property to the class: -```csharp +````csharp public IMongoCollection TodoItems => Collection(); -``` +```` 2. Add the following code inside the `CreateModel` method: -```csharp +````csharp modelBuilder.Entity(b => { b.CollectionName = "TodoItems"; }); -``` +```` {{end}} @@ -293,7 +293,7 @@ An [Application Service](../../../framework/architecture/domain-driven-design/ap We can start by defining an interface for the application service. Create a new `ITodoAppService` interface in the *TodoApp.Application.Contracts* project, as shown below: -```csharp +````csharp using System; using System.Collections.Generic; using System.Threading.Tasks; @@ -308,13 +308,13 @@ namespace TodoApp Task DeleteAsync(Guid id); } } -``` +```` ### Data Transfer Object `GetListAsync` and `CreateAsync` methods return `TodoItemDto`. `ApplicationService` typically gets and returns DTOs ([Data Transfer Objects](../../../framework/architecture/domain-driven-design/data-transfer-objects.md)) instead of entities. So, we should define the DTO class here. Create a new `TodoItemDto` class inside the *TodoApp.Application.Contracts* project: -```csharp +````csharp using System; namespace TodoApp @@ -325,7 +325,7 @@ namespace TodoApp public string Text { get; set; } = string.Empty; } } -``` +```` This is a very simple DTO class that matches our `TodoItem` entity. We are ready to implement the `ITodoAppService`. @@ -333,7 +333,7 @@ This is a very simple DTO class that matches our `TodoItem` entity. We are ready Create a `TodoAppService` class inside the *TodoApp.Application* project, as shown below: -```csharp +````csharp using System; using System.Collections.Generic; using System.Linq; @@ -355,7 +355,7 @@ namespace TodoApp // TODO: Implement the methods here... } } -``` +```` This class inherits from the `ApplicationService` class of the ABP and implements the `ITodoAppService` that was defined before. ABP provides default generic [repositories](../../../framework/architecture/domain-driven-design/entities.md) for the entities. We can use them to perform the fundamental database operations. This class [injects](../../../framework/fundamentals/dependency-injection.md) `IRepository`, which is the default repository for the `TodoItem` entity. We will use it to implement the use cases described before. @@ -363,7 +363,7 @@ This class inherits from the `ApplicationService` class of the ABP and implement Let's start by implementing the `GetListAsync` method: -```csharp +````csharp public async Task> GetListAsync() { var items = await _todoItemRepository.GetListAsync(); @@ -374,7 +374,7 @@ public async Task> GetListAsync() Text = item.Text }).ToList(); } -``` +```` We are simply getting the complete `TodoItem` list from the database, mapping them to `TodoItemDto` objects and returning as the result. @@ -382,7 +382,7 @@ We are simply getting the complete `TodoItem` list from the database, mapping th Next method is `CreateAsync` and we can implement it as shown below: -```csharp +````csharp public async Task CreateAsync(string text) { var todoItem = await _todoItemRepository.InsertAsync( @@ -395,7 +395,7 @@ public async Task CreateAsync(string text) Text = todoItem.Text }; } -``` +```` The repository's `InsertAsync` method inserts the given `TodoItem` to the database and returns the same `TodoItem` object. It also sets the `Id`, so we can use it on the returning object. We are simply returning a `TodoItemDto` by creating from the new `TodoItem` entity. @@ -403,12 +403,12 @@ The repository's `InsertAsync` method inserts the given `TodoItem` to the databa Finally, we can implement the `DeleteAsync` as the following code block: -```csharp +````csharp public async Task DeleteAsync(Guid id) { await _todoItemRepository.DeleteAsync(id); } -``` +```` The application service is ready to be used from the UI layer. @@ -426,7 +426,7 @@ It is time to show the todo items on the UI! Before starting to write the code, Open the `Index.cshtml.cs` file in the `Pages` folder of the *TodoApp.Web* project and replace the content with the following code block: -```csharp +````csharp using System.Collections.Generic; using System.Threading.Tasks; @@ -449,7 +449,7 @@ namespace TodoApp.Web.Pages } } } -``` +```` This class uses the `ITodoAppService` to get the list of todo items and assign the `TodoItems` property. We will use it to render the todo items on the razor page. @@ -743,13 +743,13 @@ You first need to run the `TodoApp.HttpApi.Host` project since the proxy generat Once you run the `TodoApp.HttpApi.Host` project, open a command-line terminal in the `angular` folder and type the following command: -``` +````bash abp generate-proxy -t ng -``` +```` If everything goes well, it should generate an output as shown below: -``` +```bash CREATE src/app/proxy/generate-proxy.json (170978 bytes) CREATE src/app/proxy/README.md (1000 bytes) CREATE src/app/proxy/todo.service.ts (794 bytes) diff --git a/docs/en/ui-themes/lepton/index.md b/docs/en/ui-themes/lepton/index.md index 8861595d45..ed5c222c39 100644 --- a/docs/en/ui-themes/lepton/index.md +++ b/docs/en/ui-themes/lepton/index.md @@ -7,7 +7,7 @@ The Lepton Theme is a professional theme for the ABP. * Built on the [Bootstrap 5](https://getbootstrap.com) library. * 100% compatible with [Bootstrap 5](https://getbootstrap.com) HTML structure and CSS classes * Responsive & mobile-compatible. -* Provides different style like Material, Dark, Light. +* Provides different styles like Material, Dark, Light. * Provides styles for [Datatables](https://datatables.net). A screenshot from the light style of the theme: @@ -18,7 +18,7 @@ A screenshot from the light style of the theme: ## How to Install -Lepton Theme module is pre-installed in [the startup templates](../../get-started). So, no need to manually install it. +Lepton Theme module can be pre-installed to [the startup templates](../../get-started), if you specify the theme as **LeptonTheme** (see the [CLI documentation](../../cli/index.md)). So, no need to manually install it. ## Packages @@ -73,10 +73,16 @@ See the `LeptonThemeManagementPermissions` class members for all permissions def ### Source code -To download the source-code of the Lepton Theme use the following CLI command +To download the source-code of the Lepton Theme use the following CLI command: +```bash +abp get-source Volo.Abp.LeptonTheme # for new ABP CLI ``` -abp get-source Volo.LeptonTheme + +If you are using the old ABP CLI, you can use the following command: + +```bash +abp get-source Volo.LeptonTheme ``` ## Lepton Theme Customization @@ -86,4 +92,4 @@ Checkout how to customize the Lepton Theme to change your website’s overall lo * [Customizing Lepton Theme for Angular](customizing-lepton-theme.md?UI=NG) * [Customizing Lepton Theme for MVC](customizing-lepton-theme.md?UI=MVC) * [Customizing Lepton Theme for Blazor](customizing-lepton-theme.md?UI=Blazor) -* [Customizing Lepton Theme for Blazor Server](customizing-lepton-theme.md?UI=BlazorServer) \ No newline at end of file +* [Customizing Lepton Theme for Blazor Server](customizing-lepton-theme.md?UI=BlazorServer) diff --git a/framework/NuGet.md b/framework/NuGet.md index 7b143ff3b9..79b27606a4 100644 --- a/framework/NuGet.md +++ b/framework/NuGet.md @@ -11,7 +11,7 @@ ABP offers an opinionated architecture to build enterprise software solutions wi 🔗GitHub Repository: https://github.com/abpframework/abp -🔗Samples: https://abp.io/docs/latest/Samples/Index +🔗Samples: https://abp.io/docs/latest/samples/ 🔗Official Theme: https://www.LeptonTheme.com @@ -126,4 +126,4 @@ If you are building an enterprise-level application with pro support, extra tool To understand how it works, see [How it Works](https://abp.io/how-it-works) page. -If you wonder why you should choose ABP Commercial, check out [Why ABP.IO Platform](https://abp.io/docs/latest/others/why-abp-platform) page. \ No newline at end of file +If you wonder why you should choose ABP, check out [Why ABP.IO Platform](https://abp.io/docs/latest/others/why-abp-platform) page. \ No newline at end of file diff --git a/framework/src/Volo.Abp.Caching.StackExchangeRedis/Volo/Abp/Caching/StackExchangeRedis/AbpRedisCache.cs b/framework/src/Volo.Abp.Caching.StackExchangeRedis/Volo/Abp/Caching/StackExchangeRedis/AbpRedisCache.cs index 80815eaa0b..900f252a77 100644 --- a/framework/src/Volo.Abp.Caching.StackExchangeRedis/Volo/Abp/Caching/StackExchangeRedis/AbpRedisCache.cs +++ b/framework/src/Volo.Abp.Caching.StackExchangeRedis/Volo/Abp/Caching/StackExchangeRedis/AbpRedisCache.cs @@ -309,7 +309,7 @@ public class AbpRedisCache : RedisCache, ICacheSupportsMultipleItems else { tasks.Add(cache.HashSetAsync(prefixedKey, fields)); - tasks.Add( cache.KeyExpireAsync(prefixedKey, TimeSpan.FromSeconds(ttl.GetValueOrDefault()))); + tasks.Add(cache.KeyExpireAsync(prefixedKey, TimeSpan.FromSeconds(ttl.GetValueOrDefault()))); } } diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/NewCommand.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/NewCommand.cs index 5d228cc176..c014f52d0e 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/NewCommand.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/NewCommand.cs @@ -220,6 +220,7 @@ public class NewCommand : ProjectCreationCommandBase, IConsoleCommand, ITransien sb.AppendLine(" abp new Acme.BookStore -u angular -d mongodb"); sb.AppendLine(" abp new Acme.BookStore -m none"); sb.AppendLine(" abp new Acme.BookStore -m react-native"); + sb.AppendLine(" abp new Acme.BookStore -m maui"); sb.AppendLine(" abp new Acme.BookStore -d mongodb"); sb.AppendLine(" abp new Acme.BookStore -d mongodb -o d:\\my-project"); sb.AppendLine(" abp new Acme.BookStore -t module"); diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/ProjectCreationCommandBase.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/ProjectCreationCommandBase.cs index d1e54868c4..6b607d4454 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/ProjectCreationCommandBase.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/ProjectCreationCommandBase.cs @@ -137,7 +137,7 @@ public abstract class ProjectCreationCommandBase Logger.LogInformation("Public Web Site: yes"); } - var mobileApp = GetMobilePreference(commandLineArgs); + var mobileApp = GetMobilePreference(commandLineArgs, template); if (mobileApp != MobileApp.None) { Logger.LogInformation("Mobile App: " + mobileApp); @@ -635,7 +635,7 @@ public abstract class ProjectCreationCommandBase } } - protected virtual MobileApp GetMobilePreference(CommandLineArgs commandLineArgs) + protected virtual MobileApp GetMobilePreference(CommandLineArgs commandLineArgs, string template) { var optionValue = commandLineArgs.Options.GetOrNull(Options.Mobile.Short, Options.Mobile.Long); @@ -644,9 +644,9 @@ public abstract class ProjectCreationCommandBase case null: case "none": return MobileApp.None; - case "react-native": + case "react-native" when template is AppProTemplate.TemplateName or MicroserviceProTemplate.TemplateName: return MobileApp.ReactNative; - case "maui": + case "maui" when template is AppProTemplate.TemplateName or MicroserviceProTemplate.TemplateName: return MobileApp.Maui; default: throw new CliUsageException(ExceptionMessageHelper.GetInvalidOptionExceptionMessage("Mobile App")); diff --git a/framework/src/Volo.Abp.Validation/Volo/Abp/Validation/Localization/es.json b/framework/src/Volo.Abp.Validation/Volo/Abp/Validation/Localization/es.json index 82a7cfca5d..0888457731 100644 --- a/framework/src/Volo.Abp.Validation/Volo/Abp/Validation/Localization/es.json +++ b/framework/src/Volo.Abp.Validation/Volo/Abp/Validation/Localization/es.json @@ -7,7 +7,7 @@ "The {0} field is not a valid e-mail address.": "El campo {0} no es una dirección de e-mail valida.", "The {0} field only accepts files with the following extensions: {1}": "El campo {0} sólo acepta ficheros con la siguientes extensiones: {1}", "The field {0} must be a string or array type with a maximum length of '{1}'.": "El campo {0} debe ser de tipo cadena o lista con una longitud máxima de '{1}'.", - "The field {0} must be a string or array type with a minimum length of '{1}'.": "El campo {0} debe ser de tipo cadena o lista con una longitud máxima de '{1}'.", + "The field {0} must be a string or array type with a minimum length of '{1}'.": "El campo {0} debe ser de tipo cadena o lista con una longitud mínima de '{1}'.", "The {0} field is not a valid phone number.": "El campo {0} no tiene un número de teléfono valido.", "The field {0} must be between {1} and {2}.": "El campo {0} debe estar entre {1} y {2}.", "The field {0} must match the regular expression '{1}'.": "El campo {0} no coincide con el formato solicitado.", diff --git a/latest-versions.json b/latest-versions.json index f505ff8abd..0eff05a891 100644 --- a/latest-versions.json +++ b/latest-versions.json @@ -1,6 +1,6 @@ [ { - "version": "8.3.0", + "version": "8.3.1", "releaseDate": "", "type": "stable", "message": "" diff --git a/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/package.json b/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/package.json index 634b99a3cb..7431e9b74e 100644 --- a/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/package.json +++ b/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/package.json @@ -3,8 +3,8 @@ "name": "asp.net", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.shared": "~8.3.0", - "@abp/prismjs": "~8.3.0", - "@abp/highlight.js": "~8.3.0" + "@abp/aspnetcore.mvc.ui.theme.shared": "~8.3.1", + "@abp/prismjs": "~8.3.1", + "@abp/highlight.js": "~8.3.1" } } diff --git a/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/yarn.lock b/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/yarn.lock index 214c3a3fdd..b86db8f496 100644 --- a/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/yarn.lock +++ b/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/yarn.lock @@ -2,212 +2,212 @@ # yarn lockfile v1 -"@abp/aspnetcore.mvc.ui.theme.shared@~8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-8.3.0.tgz#5d6bb5181a62770e9cb967980b77e75c115c5ed7" - integrity sha512-o/0eh8jLS+YJiseTKzzioUz0vNnMFzyoz+mkyA4PlO1gqw2JFhzPhTBZ3cuyV9QlxUfEA8dWAkqAUX6vqiHwkw== - dependencies: - "@abp/aspnetcore.mvc.ui" "~8.3.0" - "@abp/bootstrap" "~8.3.0" - "@abp/bootstrap-datepicker" "~8.3.0" - "@abp/bootstrap-daterangepicker" "~8.3.0" - "@abp/datatables.net-bs5" "~8.3.0" - "@abp/font-awesome" "~8.3.0" - "@abp/jquery-form" "~8.3.0" - "@abp/jquery-validation-unobtrusive" "~8.3.0" - "@abp/lodash" "~8.3.0" - "@abp/luxon" "~8.3.0" - "@abp/malihu-custom-scrollbar-plugin" "~8.3.0" - "@abp/moment" "~8.3.0" - "@abp/select2" "~8.3.0" - "@abp/sweetalert2" "~8.3.0" - "@abp/timeago" "~8.3.0" - "@abp/toastr" "~8.3.0" - -"@abp/aspnetcore.mvc.ui@~8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-8.3.0.tgz#d7ba0539bfcc6661a347dea7f952489010b3e816" - integrity sha512-OxgZhLKiXGFYYpNJ5O/IbhinsniiBPv9586e+1Soar0GckCMIIegJxnJb1Bo1O75blrcK2cIU6LqjRT1FXt2Lw== +"@abp/aspnetcore.mvc.ui.theme.shared@~8.3.1": + version "8.3.1" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-8.3.1.tgz#ab58e22315da663fe0b5ec52b5a612135e04b1d6" + integrity sha512-Qlp41ca5ppz7DE5Awpir6hpuEZ8m1Mi7PIARJAqHgK4hLMlBfEcxwEOs6zk2yVAYEhh2hqSchwS5L1rjzqiIfQ== + dependencies: + "@abp/aspnetcore.mvc.ui" "~8.3.1" + "@abp/bootstrap" "~8.3.1" + "@abp/bootstrap-datepicker" "~8.3.1" + "@abp/bootstrap-daterangepicker" "~8.3.1" + "@abp/datatables.net-bs5" "~8.3.1" + "@abp/font-awesome" "~8.3.1" + "@abp/jquery-form" "~8.3.1" + "@abp/jquery-validation-unobtrusive" "~8.3.1" + "@abp/lodash" "~8.3.1" + "@abp/luxon" "~8.3.1" + "@abp/malihu-custom-scrollbar-plugin" "~8.3.1" + "@abp/moment" "~8.3.1" + "@abp/select2" "~8.3.1" + "@abp/sweetalert2" "~8.3.1" + "@abp/timeago" "~8.3.1" + "@abp/toastr" "~8.3.1" + +"@abp/aspnetcore.mvc.ui@~8.3.1": + version "8.3.1" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-8.3.1.tgz#d45fd58565bbee49ab78a4a230344bd034c7f96d" + integrity sha512-9J2Zk1QFn5AQLMFqp1qztSsSLKMPnhwkNfrJQoY/fyiPpQEu9x0l7u46rmTUnibhRll/FYb9PYsHP9qMiePoBQ== dependencies: ansi-colors "^4.1.3" -"@abp/bootstrap-datepicker@~8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-8.3.0.tgz#8c1bf9efec37b671d8f28b8b1e89c1ac66684267" - integrity sha512-KCwMtm7x+cnKPeNMzhjDJUce0stwu4e57ibmvA6sMf1tmj+yB256O4E2hIDDohiT3vP/zV8HVHX6uATlcmGC9w== +"@abp/bootstrap-datepicker@~8.3.1": + version "8.3.1" + resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-8.3.1.tgz#c08c1688e6e21fcf388fa9b7317c3e5ae23e6c30" + integrity sha512-/JcKeLQFUf7ELiUBEnaE4Rh+2CC9jFqrm8QBjioACvZFU7dZSt1wqsqriLvDmVYq8xOfiQE7h+7dbQgXo/3Jpg== dependencies: bootstrap-datepicker "^1.10.0" -"@abp/bootstrap-daterangepicker@~8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-daterangepicker/-/bootstrap-daterangepicker-8.3.0.tgz#2b8ed978333502677916f88cbb3e1d1b1c8a3a17" - integrity sha512-uQSfuCQogl4BujdqvtdAoSE+z32ci8FT5+i3gLfpqbgTaxvY/Kv5NxAUH5/1sjnuAE7SMWO+eVvI3V0pXgQohg== +"@abp/bootstrap-daterangepicker@~8.3.1": + version "8.3.1" + resolved "https://registry.yarnpkg.com/@abp/bootstrap-daterangepicker/-/bootstrap-daterangepicker-8.3.1.tgz#8668a755968f55b6cc5eccf9d8fa8e77f2580746" + integrity sha512-4YCFDM1t8Eckp2cMjdM1qvd0g4O8tKwvQqO9ZeOkCik0SiUEvjHGvOhOlaOeg5sUkinXLG4wZ+8UiMHgtGfh7A== dependencies: bootstrap-daterangepicker "^3.1.0" -"@abp/bootstrap@~8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-8.3.0.tgz#96d6ea7e6ac30f6e34e495a4224f56f7b2a1a7a3" - integrity sha512-5AmdTtakmWhZmHrb7ibvvf+KwF9OGadpAe7Kv9mNEE02K2qkp7Xw4r5o/bgVl7YfLC1FA6GZZXrV2s2t0gjHtg== +"@abp/bootstrap@~8.3.1": + version "8.3.1" + resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-8.3.1.tgz#df7b0d99bd17049a9f7c52a018ef079ce9656829" + integrity sha512-DOFrIawWNTZQ/Mv7m9Mo20Kr9PeErke81xGzba3toR3Bn8jXRVUYk+ofarwceDTck53C6V1TCmgsRF3ecRrVgw== dependencies: - "@abp/core" "~8.3.0" + "@abp/core" "~8.3.1" bootstrap "^5.3.3" -"@abp/clipboard@~8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@abp/clipboard/-/clipboard-8.3.0.tgz#1b171e533f768cf42c8fc0c9c67fac1c636fee8c" - integrity sha512-T0O4OaMxLLYztAxyvEc3onEOpGHB/C8/jDcvJwd7mgpLoi9zXVfHwpnzkx/egfNJMzp49STD6Jc+jACi8Uq+CQ== +"@abp/clipboard@~8.3.1": + version "8.3.1" + resolved "https://registry.yarnpkg.com/@abp/clipboard/-/clipboard-8.3.1.tgz#f1b63562eeaf5488ed61b06472af134bb29be64b" + integrity sha512-5mvPu2ZQ6kwEF2s/r1fOcXlaj73+1E2XZbwZ12q0CSs0uSCNqc68ur3l3DdpFAszNj7A410sq4rUMkUvZwPsHw== dependencies: - "@abp/core" "~8.3.0" + "@abp/core" "~8.3.1" clipboard "^2.0.11" -"@abp/core@~8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@abp/core/-/core-8.3.0.tgz#3a68f5a9549efcc3e13500e301f2576751b51445" - integrity sha512-zrxnZi4qij/Y4AZWaXuPqs3Dd7gBtU/onX7FkYxLgQDxYBfx+84QAnPRNRFKMWaD/wKbTUB0wA66U3t2aiQX9Q== +"@abp/core@~8.3.1": + version "8.3.1" + resolved "https://registry.yarnpkg.com/@abp/core/-/core-8.3.1.tgz#1f2d5f5c55fcf0aafb1e4522e4d2a1f4d1ba679c" + integrity sha512-FtMhlHosvcSnEOYJiTgjbZ59+KB4NfhTPAk2l+X7MWIxGP+OLKFlTwd/OZBLtZ1c6r1Vzgaa7jnXJQvpQawqWQ== dependencies: - "@abp/utils" "~8.3.0" + "@abp/utils" "~8.3.1" -"@abp/datatables.net-bs5@~8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs5/-/datatables.net-bs5-8.3.0.tgz#21822ae4912a561afe9112925185aece03fcd0eb" - integrity sha512-GOGYSSHp3iPUDFRX2Y3C0wkiCOJDuYuK/zUSzQLNpOvBMZO+I/oWBcZM+qkVowIzsoRlAGV9+CVV2B/B05qidA== +"@abp/datatables.net-bs5@~8.3.1": + version "8.3.1" + resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs5/-/datatables.net-bs5-8.3.1.tgz#3522e949b66f7109f04d8367a0d61a663f36f6b0" + integrity sha512-rQw1DsZG8ir3OzNZrOJVpSwqu3I+CoOuEAvLr6xPJ1U9QszE4lqlciSR/pkDiFE/Ccau0KwuxGqbPjNvInshpA== dependencies: - "@abp/datatables.net" "~8.3.0" + "@abp/datatables.net" "~8.3.1" datatables.net-bs5 "^2.0.8" -"@abp/datatables.net@~8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-8.3.0.tgz#ff697758ce9309ba8311f23aec921c4722588c8b" - integrity sha512-4dIdv7eN1tVouOUrlF+MIdg8zQpecyH61waqLgy1q5jMZQivrTSFZ7UWMG3WVOAYjw5zSUZHZPbzA+ttnaOPkg== +"@abp/datatables.net@~8.3.1": + version "8.3.1" + resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-8.3.1.tgz#8bb3889b0267006fc4626afcb482ff34e60f4871" + integrity sha512-xxz4sKZmw2ZryTRoCzS66X5536Lg6XLCMDQzLHSbNQiIedEkvSEQtYKBcEYmh1U+nVX10S3nTk1YNSi8AqqYlg== dependencies: - "@abp/jquery" "~8.3.0" + "@abp/jquery" "~8.3.1" datatables.net "^2.0.8" -"@abp/font-awesome@~8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-8.3.0.tgz#9e4e9adc08dfca52c0a07d1608c5e5662675a4c9" - integrity sha512-NRxvM/dzvQC2Cj/F5i07XB/i6IVTmXcO9sOq6TWosWib0wGaPxRbCSjy8QUAYSD1QYaVQ30XMb3XXImaMGyd8A== +"@abp/font-awesome@~8.3.1": + version "8.3.1" + resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-8.3.1.tgz#b22ea61efbecfff0f0c088fd23ff4a46f0f9661d" + integrity sha512-JiEFfX6ArYjNAgxT42VgmPpkMbHo0TFaItFMFTx8kuFaO2KJS7c/5YVLJr3y3fylaF1d1HPtI/S3U8gF12quXA== dependencies: - "@abp/core" "~8.3.0" + "@abp/core" "~8.3.1" "@fortawesome/fontawesome-free" "^6.5.2" -"@abp/highlight.js@~8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@abp/highlight.js/-/highlight.js-8.3.0.tgz#fabd11a8ef7cd0e379b4c9b359d66b4aa7585e30" - integrity sha512-SHvGXqQrZGuNmup32FisVHrWCdTJyEzHgp6y8Twx1FaP1e0hSN3QK6Jw4Do600ZKI9n5xCK+kMCpdJau8I6bIg== +"@abp/highlight.js@~8.3.1": + version "8.3.1" + resolved "https://registry.yarnpkg.com/@abp/highlight.js/-/highlight.js-8.3.1.tgz#f5a9c19acdd4c79f7f9208b265ee6da5c4736c4e" + integrity sha512-NsCOHd84+d2eDwG+soVLUYm93htNkIChbzMlBB7UoW2V5OoqX09EisbnNFItsMIIA5OBOC1czoq4eWQAOHvEKQ== dependencies: - "@abp/core" "~8.3.0" + "@abp/core" "~8.3.1" "@highlightjs/cdn-assets" "~11.9.0" -"@abp/jquery-form@~8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-8.3.0.tgz#fa2ad2fedbe3d3528ee94cbbd4f94d48f0cb5e4d" - integrity sha512-olP9FmpNVTbOIewsVua0moHVYXw4Sl3chFbvTDLG6vRBohLSjllUXfgY3UEIVWR1PCqnAg+iEJZl9NHB9iOLBg== +"@abp/jquery-form@~8.3.1": + version "8.3.1" + resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-8.3.1.tgz#ba4e506aa5539d4fa7b8648aa42ed9f4605ba974" + integrity sha512-MvVYY9Je9ovHMpVkUyWbxbJcOrjyP8wbfV8EJoC9ktgIrNikP6JlDstleaRgAsoewoGpPxqSWGbOHCU6SoMUXw== dependencies: - "@abp/jquery" "~8.3.0" + "@abp/jquery" "~8.3.1" jquery-form "^4.3.0" -"@abp/jquery-validation-unobtrusive@~8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-8.3.0.tgz#0992cdd33170df83c79aa3371038c0b30e451521" - integrity sha512-9hidjq8x8sTnP5O3K2b2x9NpxvPd9WB03ENR6OfvM89kfSmQapSvBZTlCu80YK9NaQJ6MLQRLYOCuc3GHcj3EQ== +"@abp/jquery-validation-unobtrusive@~8.3.1": + version "8.3.1" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-8.3.1.tgz#bfb92f7fafc931b7a31542df3d18322c15ff9ca2" + integrity sha512-p6so0T3qyfObKi7wCj+TbyZUNIWdQMR2KgSUDKvN1zQOoDXz2GPZJS/h0LD5sMn3OPI9xSxHixlqcZwi61k1pg== dependencies: - "@abp/jquery-validation" "~8.3.0" + "@abp/jquery-validation" "~8.3.1" jquery-validation-unobtrusive "^4.0.0" -"@abp/jquery-validation@~8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-8.3.0.tgz#bd6a72c6d86f116abe3b5d2adf3752bdbbcca887" - integrity sha512-6l5BZSa3N0Fou6Se7MfUSnI2dD4SYhZ2V988bgPJQ6p37XBOZ2OAj7LEIf5FSjtUzXjao/6/vqjkPNYreNikig== +"@abp/jquery-validation@~8.3.1": + version "8.3.1" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-8.3.1.tgz#2a237e24c38da4896bcefe8e532dcff701671c1f" + integrity sha512-5+5kJjXw+smRDmbKjimIhk+E3J8UEe23smPwW+Yc7240KBRGO9YYnhrym8CnYHCnkegnW29YWmHO6FVKp/mSxA== dependencies: - "@abp/jquery" "~8.3.0" + "@abp/jquery" "~8.3.1" jquery-validation "^1.20.1" -"@abp/jquery@~8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-8.3.0.tgz#9be5ef2f769680226e6a1a981026590caf3b57ef" - integrity sha512-GsFY+n3EtS6B0pAoKd+xMnt5Dzi5bHvIbhLgDgfQfOBzAy3twGRWsPQ3nkuXXm8TppwujMNowU1oiLKPPm0AOA== +"@abp/jquery@~8.3.1": + version "8.3.1" + resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-8.3.1.tgz#e515f25498821df1a53d6329c6bc3d44abe58c2d" + integrity sha512-o3Jj1oz68mR5kW/xdpW26rK6zPJzSCzU/QnJjEVYExXGISp4GS355eJVsOlJ/dJNhiRnBcYfApx8Zm+9eltOIw== dependencies: - "@abp/core" "~8.3.0" + "@abp/core" "~8.3.1" jquery "~3.7.1" -"@abp/lodash@~8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-8.3.0.tgz#f5a0a496c999886f2d6999067bfac2e1f0c3969c" - integrity sha512-BiAsONbKR/RKG3WjRaMWVmhNe1ELEsykVq+ogG1Rhk3kwPbvze3TS8k2p0Lu/RC41/BmDUmJ5abg1pUMwkRT8w== +"@abp/lodash@~8.3.1": + version "8.3.1" + resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-8.3.1.tgz#70c1114647401d3ace1096c7e6c9bd36be8d1aa5" + integrity sha512-CaqCSZ2TijQKbIvFZGJBFSGIhBbrXJASW0jKDu6lUuzyfhQe9xayG9P83pQzrVp5GpNwInxuCqXO+qxqALHg0A== dependencies: - "@abp/core" "~8.3.0" + "@abp/core" "~8.3.1" lodash "^4.17.21" -"@abp/luxon@~8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-8.3.0.tgz#7dd3f756be1605506e26f7ac76b80cc082a12d07" - integrity sha512-8gdI5BtXkVp0sFg89QVDe8AvgQ7Qfq4JCqz2PMrKPSATR3H8GD6BCaEYpRp6CNTCjVrQjGZdzKgUyea1D3dHbw== +"@abp/luxon@~8.3.1": + version "8.3.1" + resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-8.3.1.tgz#d827ac81a1bb03a20a50d555c59ad2c24c8a9e9e" + integrity sha512-ovDJoJW0gF2QhUJHhINpYCUFXpC1OKJq55A0AzYbe+Sh7jylEF3NlvwHZuoshySc6MsSetbjRj3oE1b4e0CSyw== dependencies: - "@abp/core" "~8.3.0" + "@abp/core" "~8.3.1" luxon "^3.4.4" -"@abp/malihu-custom-scrollbar-plugin@~8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-8.3.0.tgz#c88c132c3402bbb02054ca7d446051950f87a817" - integrity sha512-nd/mb6LJa6fMxal8PGcIjIRIoZ/UHCd01WDC9YI2H4wGCGx0CA0JyHso5oc/OEzJhUL8ujO/vYm9uLb7YahPtA== +"@abp/malihu-custom-scrollbar-plugin@~8.3.1": + version "8.3.1" + resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-8.3.1.tgz#efd819695fd8e4ee37a77ca3f7fabc51632e3cb3" + integrity sha512-LyMSo90SWCwQT/j/s7i0UvI+pCthdKkWrJXq1Dfvs+/m89016fjOiCk9hCNMkZainoARJyHg9zK82koN/Q6c4A== dependencies: - "@abp/core" "~8.3.0" + "@abp/core" "~8.3.1" malihu-custom-scrollbar-plugin "^3.1.5" -"@abp/moment@~8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@abp/moment/-/moment-8.3.0.tgz#8e4f7a523ab76ef9e4cd96a399560bad38d38d1a" - integrity sha512-LywSsKuQ2GN/Btmle6CcTKa811zbvUWdC+RLQA792K9HyBs6LvN0qRRluEQZgplairRgh2pDOg8tdFlUERkv2w== +"@abp/moment@~8.3.1": + version "8.3.1" + resolved "https://registry.yarnpkg.com/@abp/moment/-/moment-8.3.1.tgz#09938caeefbbb179047b5edd7352828f8dcc8382" + integrity sha512-UEnSyeEzw/LFINfP1zwSxg3Nmx95zMw4f9bOWm2z+FeJofllmwYI4hrG9GhaJCxxV3iy+yK697U2XiBgBu6O2g== dependencies: moment "^2.30.1" -"@abp/prismjs@~8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@abp/prismjs/-/prismjs-8.3.0.tgz#0c87c63294d1452ed7152083d2fb6e70aa3aeae6" - integrity sha512-3wpwbqqlGRfQSLcBP+Qb2TKOoVGZVYYwOP6dP3So9ev8J5gFMDEizH9zLwRVHYrrsZZP8/etYnyZ0hn7ewuI5Q== +"@abp/prismjs@~8.3.1": + version "8.3.1" + resolved "https://registry.yarnpkg.com/@abp/prismjs/-/prismjs-8.3.1.tgz#e8bb9072439c0aee6bf16b351dcaea850ae13a73" + integrity sha512-WQPC4Iyr1fweoimey1xp1rZXzEsciFZloYn9rH9Hu7Bivkag2kpgx86jAGWNzMf9jo3XWo1wQHLKEtpC4kqImQ== dependencies: - "@abp/clipboard" "~8.3.0" - "@abp/core" "~8.3.0" + "@abp/clipboard" "~8.3.1" + "@abp/core" "~8.3.1" prismjs "^1.29.0" -"@abp/select2@~8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-8.3.0.tgz#ef4742fcd345394767f46180f61c6cabbd0b3867" - integrity sha512-bdLt2+ImxxpiZl4HGbYJpdDROQUT7/Z/+8A+6oJNacq3lNekdvufLYgTMxKru6zTbnd9j3HFKMOTE1eRjb9Xqg== +"@abp/select2@~8.3.1": + version "8.3.1" + resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-8.3.1.tgz#56703690adeb715e98c4a0c677f30040a560b588" + integrity sha512-yDDjkmncYJHMz5i438nsHEHZ9pfXm1ACoXhNNPQ8Ji3ZG2jwT76DamVV7zSc8Nd3v/AK5YPVBZeG4+6ZGGnfTw== dependencies: - "@abp/core" "~8.3.0" + "@abp/core" "~8.3.1" select2 "^4.0.13" -"@abp/sweetalert2@~8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-8.3.0.tgz#a63020d57e44f7940817287d3d9676288bfb85aa" - integrity sha512-ooqPM4Z2v2scnMo5l8ycTmp6t/sW4sCsvIkJ4TyM876WLQJaZxJdOao4RQWuU+dVFr9zg8cOwqLH4q7UEiO6ww== +"@abp/sweetalert2@~8.3.1": + version "8.3.1" + resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-8.3.1.tgz#3fd4913b21eec156157b5bdad95a991cf9f3f43d" + integrity sha512-yYLSv28nc6PldM4lAL2Zs+MCdGZnDLJuISzQS35xzfXvM5xKg9dgN1e/+OiYHVWULXIgZUgArUqd6In4smx2+w== dependencies: - "@abp/core" "~8.3.0" + "@abp/core" "~8.3.1" sweetalert2 "^11.3.6" -"@abp/timeago@~8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-8.3.0.tgz#b3b8d6927bf170f77af848bc1925e5ef6835bd55" - integrity sha512-Dd6xaUoF9Bp4F9WJnTsFBqY+Gt++UR7UmLvBZL/dvthkeNCu2I8MUsmshkUUjY0lIXpjZwefUOuyupQrgHXPMg== +"@abp/timeago@~8.3.1": + version "8.3.1" + resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-8.3.1.tgz#18999384ac3eb3636886ae03d5de46fbd1e2a9c1" + integrity sha512-WF8thD6vjc8TAIqjPgpoRZxL2ncwaQVcFnJuEB5sLUkj7ZqmFYNamdCdDsteyprSAb7/KsWDgwWAmGLeH4W3CQ== dependencies: - "@abp/jquery" "~8.3.0" + "@abp/jquery" "~8.3.1" timeago "^1.6.7" -"@abp/toastr@~8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-8.3.0.tgz#e68a2bd8f731e79034594bc2c736f7c66b3df1af" - integrity sha512-aWK/RaX/FmcEKhJLjsw1A0K2c04m2fRJkmo9NwzBCSscy6Msw9IMkqNWLiFDThMU8/qKzq7wq3Vmk/C0IpeAwA== +"@abp/toastr@~8.3.1": + version "8.3.1" + resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-8.3.1.tgz#541f09b905fb89d2c585d080c1bb690f3fa5f5cd" + integrity sha512-Tyz7cgFfD7HS6X4Pr51LIg/b358hAklT/NrfgE2w5G66f6vHXZB+8y/eYDJPaUeLMnuDo3Pw5M034ESKFRF76A== dependencies: - "@abp/jquery" "~8.3.0" + "@abp/jquery" "~8.3.1" toastr "^2.1.4" -"@abp/utils@~8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-8.3.0.tgz#96ae9266ad4d833fd9d723acef7fc85fabf618d9" - integrity sha512-w/XAqza4Z8wBWRoj5uPNKbd1/bE9L/uUWk6EUSBKmljMRryWQBmaPkb1XgvrOMQIbyyF60tUvvipapQLPVh6hw== +"@abp/utils@~8.3.1": + version "8.3.1" + resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-8.3.1.tgz#a0eeefbda6616940beef8376ae56b3809d3dad50" + integrity sha512-kLUll2bGNGb780Z8Bp/U9XfOYDtU1j5h6Fkqr4AqegioS7GqltI5fkpPc0oLeti05C9rJV4ca13Ip+SQ4BY6vw== dependencies: just-compare "^2.3.0" diff --git a/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Demo/package.json b/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Demo/package.json index 3f9c9e79e8..c64a345445 100644 --- a/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Demo/package.json +++ b/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Demo/package.json @@ -3,8 +3,8 @@ "name": "asp.net", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.basic": "~8.3.0", - "@abp/prismjs": "~8.3.0" + "@abp/aspnetcore.mvc.ui.theme.basic": "~8.3.1", + "@abp/prismjs": "~8.3.1" }, "devDependencies": {} } diff --git a/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Demo/yarn.lock b/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Demo/yarn.lock index 62c9b5489d..edb87d8221 100644 --- a/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Demo/yarn.lock +++ b/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Demo/yarn.lock @@ -2,211 +2,211 @@ # yarn lockfile v1 -"@abp/aspnetcore.mvc.ui.theme.basic@~8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-8.3.0.tgz#a2d17eb5da2c3abfad4bcc842cfcda0e58a130a4" - integrity sha512-T2dg7WlvNSrwTCfy5wk4gqiJ/15kIjMGM4wLXIJcMYn60yGY/YeX6Q4A3R/qJzfl4JdgW5rt3GpdKv86y/ADXg== - dependencies: - "@abp/aspnetcore.mvc.ui.theme.shared" "~8.3.0" - -"@abp/aspnetcore.mvc.ui.theme.shared@~8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-8.3.0.tgz#5d6bb5181a62770e9cb967980b77e75c115c5ed7" - integrity sha512-o/0eh8jLS+YJiseTKzzioUz0vNnMFzyoz+mkyA4PlO1gqw2JFhzPhTBZ3cuyV9QlxUfEA8dWAkqAUX6vqiHwkw== - dependencies: - "@abp/aspnetcore.mvc.ui" "~8.3.0" - "@abp/bootstrap" "~8.3.0" - "@abp/bootstrap-datepicker" "~8.3.0" - "@abp/bootstrap-daterangepicker" "~8.3.0" - "@abp/datatables.net-bs5" "~8.3.0" - "@abp/font-awesome" "~8.3.0" - "@abp/jquery-form" "~8.3.0" - "@abp/jquery-validation-unobtrusive" "~8.3.0" - "@abp/lodash" "~8.3.0" - "@abp/luxon" "~8.3.0" - "@abp/malihu-custom-scrollbar-plugin" "~8.3.0" - "@abp/moment" "~8.3.0" - "@abp/select2" "~8.3.0" - "@abp/sweetalert2" "~8.3.0" - "@abp/timeago" "~8.3.0" - "@abp/toastr" "~8.3.0" - -"@abp/aspnetcore.mvc.ui@~8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-8.3.0.tgz#d7ba0539bfcc6661a347dea7f952489010b3e816" - integrity sha512-OxgZhLKiXGFYYpNJ5O/IbhinsniiBPv9586e+1Soar0GckCMIIegJxnJb1Bo1O75blrcK2cIU6LqjRT1FXt2Lw== +"@abp/aspnetcore.mvc.ui.theme.basic@~8.3.1": + version "8.3.1" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-8.3.1.tgz#f3caaf7b2bc4e5dc143b30ea2d09c0895717226f" + integrity sha512-aFu/HLgr3oIJmQIXEUuOKq6x1NMMcvj1tDX3ZTKPSwscxVlJsHo4c+9xrqYr0TlXSkBp9kado1z5dOXsdJ586g== + dependencies: + "@abp/aspnetcore.mvc.ui.theme.shared" "~8.3.1" + +"@abp/aspnetcore.mvc.ui.theme.shared@~8.3.1": + version "8.3.1" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-8.3.1.tgz#ab58e22315da663fe0b5ec52b5a612135e04b1d6" + integrity sha512-Qlp41ca5ppz7DE5Awpir6hpuEZ8m1Mi7PIARJAqHgK4hLMlBfEcxwEOs6zk2yVAYEhh2hqSchwS5L1rjzqiIfQ== + dependencies: + "@abp/aspnetcore.mvc.ui" "~8.3.1" + "@abp/bootstrap" "~8.3.1" + "@abp/bootstrap-datepicker" "~8.3.1" + "@abp/bootstrap-daterangepicker" "~8.3.1" + "@abp/datatables.net-bs5" "~8.3.1" + "@abp/font-awesome" "~8.3.1" + "@abp/jquery-form" "~8.3.1" + "@abp/jquery-validation-unobtrusive" "~8.3.1" + "@abp/lodash" "~8.3.1" + "@abp/luxon" "~8.3.1" + "@abp/malihu-custom-scrollbar-plugin" "~8.3.1" + "@abp/moment" "~8.3.1" + "@abp/select2" "~8.3.1" + "@abp/sweetalert2" "~8.3.1" + "@abp/timeago" "~8.3.1" + "@abp/toastr" "~8.3.1" + +"@abp/aspnetcore.mvc.ui@~8.3.1": + version "8.3.1" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-8.3.1.tgz#d45fd58565bbee49ab78a4a230344bd034c7f96d" + integrity sha512-9J2Zk1QFn5AQLMFqp1qztSsSLKMPnhwkNfrJQoY/fyiPpQEu9x0l7u46rmTUnibhRll/FYb9PYsHP9qMiePoBQ== dependencies: ansi-colors "^4.1.3" -"@abp/bootstrap-datepicker@~8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-8.3.0.tgz#8c1bf9efec37b671d8f28b8b1e89c1ac66684267" - integrity sha512-KCwMtm7x+cnKPeNMzhjDJUce0stwu4e57ibmvA6sMf1tmj+yB256O4E2hIDDohiT3vP/zV8HVHX6uATlcmGC9w== +"@abp/bootstrap-datepicker@~8.3.1": + version "8.3.1" + resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-8.3.1.tgz#c08c1688e6e21fcf388fa9b7317c3e5ae23e6c30" + integrity sha512-/JcKeLQFUf7ELiUBEnaE4Rh+2CC9jFqrm8QBjioACvZFU7dZSt1wqsqriLvDmVYq8xOfiQE7h+7dbQgXo/3Jpg== dependencies: bootstrap-datepicker "^1.10.0" -"@abp/bootstrap-daterangepicker@~8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-daterangepicker/-/bootstrap-daterangepicker-8.3.0.tgz#2b8ed978333502677916f88cbb3e1d1b1c8a3a17" - integrity sha512-uQSfuCQogl4BujdqvtdAoSE+z32ci8FT5+i3gLfpqbgTaxvY/Kv5NxAUH5/1sjnuAE7SMWO+eVvI3V0pXgQohg== +"@abp/bootstrap-daterangepicker@~8.3.1": + version "8.3.1" + resolved "https://registry.yarnpkg.com/@abp/bootstrap-daterangepicker/-/bootstrap-daterangepicker-8.3.1.tgz#8668a755968f55b6cc5eccf9d8fa8e77f2580746" + integrity sha512-4YCFDM1t8Eckp2cMjdM1qvd0g4O8tKwvQqO9ZeOkCik0SiUEvjHGvOhOlaOeg5sUkinXLG4wZ+8UiMHgtGfh7A== dependencies: bootstrap-daterangepicker "^3.1.0" -"@abp/bootstrap@~8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-8.3.0.tgz#96d6ea7e6ac30f6e34e495a4224f56f7b2a1a7a3" - integrity sha512-5AmdTtakmWhZmHrb7ibvvf+KwF9OGadpAe7Kv9mNEE02K2qkp7Xw4r5o/bgVl7YfLC1FA6GZZXrV2s2t0gjHtg== +"@abp/bootstrap@~8.3.1": + version "8.3.1" + resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-8.3.1.tgz#df7b0d99bd17049a9f7c52a018ef079ce9656829" + integrity sha512-DOFrIawWNTZQ/Mv7m9Mo20Kr9PeErke81xGzba3toR3Bn8jXRVUYk+ofarwceDTck53C6V1TCmgsRF3ecRrVgw== dependencies: - "@abp/core" "~8.3.0" + "@abp/core" "~8.3.1" bootstrap "^5.3.3" -"@abp/clipboard@~8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@abp/clipboard/-/clipboard-8.3.0.tgz#1b171e533f768cf42c8fc0c9c67fac1c636fee8c" - integrity sha512-T0O4OaMxLLYztAxyvEc3onEOpGHB/C8/jDcvJwd7mgpLoi9zXVfHwpnzkx/egfNJMzp49STD6Jc+jACi8Uq+CQ== +"@abp/clipboard@~8.3.1": + version "8.3.1" + resolved "https://registry.yarnpkg.com/@abp/clipboard/-/clipboard-8.3.1.tgz#f1b63562eeaf5488ed61b06472af134bb29be64b" + integrity sha512-5mvPu2ZQ6kwEF2s/r1fOcXlaj73+1E2XZbwZ12q0CSs0uSCNqc68ur3l3DdpFAszNj7A410sq4rUMkUvZwPsHw== dependencies: - "@abp/core" "~8.3.0" + "@abp/core" "~8.3.1" clipboard "^2.0.11" -"@abp/core@~8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@abp/core/-/core-8.3.0.tgz#3a68f5a9549efcc3e13500e301f2576751b51445" - integrity sha512-zrxnZi4qij/Y4AZWaXuPqs3Dd7gBtU/onX7FkYxLgQDxYBfx+84QAnPRNRFKMWaD/wKbTUB0wA66U3t2aiQX9Q== +"@abp/core@~8.3.1": + version "8.3.1" + resolved "https://registry.yarnpkg.com/@abp/core/-/core-8.3.1.tgz#1f2d5f5c55fcf0aafb1e4522e4d2a1f4d1ba679c" + integrity sha512-FtMhlHosvcSnEOYJiTgjbZ59+KB4NfhTPAk2l+X7MWIxGP+OLKFlTwd/OZBLtZ1c6r1Vzgaa7jnXJQvpQawqWQ== dependencies: - "@abp/utils" "~8.3.0" + "@abp/utils" "~8.3.1" -"@abp/datatables.net-bs5@~8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs5/-/datatables.net-bs5-8.3.0.tgz#21822ae4912a561afe9112925185aece03fcd0eb" - integrity sha512-GOGYSSHp3iPUDFRX2Y3C0wkiCOJDuYuK/zUSzQLNpOvBMZO+I/oWBcZM+qkVowIzsoRlAGV9+CVV2B/B05qidA== +"@abp/datatables.net-bs5@~8.3.1": + version "8.3.1" + resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs5/-/datatables.net-bs5-8.3.1.tgz#3522e949b66f7109f04d8367a0d61a663f36f6b0" + integrity sha512-rQw1DsZG8ir3OzNZrOJVpSwqu3I+CoOuEAvLr6xPJ1U9QszE4lqlciSR/pkDiFE/Ccau0KwuxGqbPjNvInshpA== dependencies: - "@abp/datatables.net" "~8.3.0" + "@abp/datatables.net" "~8.3.1" datatables.net-bs5 "^2.0.8" -"@abp/datatables.net@~8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-8.3.0.tgz#ff697758ce9309ba8311f23aec921c4722588c8b" - integrity sha512-4dIdv7eN1tVouOUrlF+MIdg8zQpecyH61waqLgy1q5jMZQivrTSFZ7UWMG3WVOAYjw5zSUZHZPbzA+ttnaOPkg== +"@abp/datatables.net@~8.3.1": + version "8.3.1" + resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-8.3.1.tgz#8bb3889b0267006fc4626afcb482ff34e60f4871" + integrity sha512-xxz4sKZmw2ZryTRoCzS66X5536Lg6XLCMDQzLHSbNQiIedEkvSEQtYKBcEYmh1U+nVX10S3nTk1YNSi8AqqYlg== dependencies: - "@abp/jquery" "~8.3.0" + "@abp/jquery" "~8.3.1" datatables.net "^2.0.8" -"@abp/font-awesome@~8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-8.3.0.tgz#9e4e9adc08dfca52c0a07d1608c5e5662675a4c9" - integrity sha512-NRxvM/dzvQC2Cj/F5i07XB/i6IVTmXcO9sOq6TWosWib0wGaPxRbCSjy8QUAYSD1QYaVQ30XMb3XXImaMGyd8A== +"@abp/font-awesome@~8.3.1": + version "8.3.1" + resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-8.3.1.tgz#b22ea61efbecfff0f0c088fd23ff4a46f0f9661d" + integrity sha512-JiEFfX6ArYjNAgxT42VgmPpkMbHo0TFaItFMFTx8kuFaO2KJS7c/5YVLJr3y3fylaF1d1HPtI/S3U8gF12quXA== dependencies: - "@abp/core" "~8.3.0" + "@abp/core" "~8.3.1" "@fortawesome/fontawesome-free" "^6.5.2" -"@abp/jquery-form@~8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-8.3.0.tgz#fa2ad2fedbe3d3528ee94cbbd4f94d48f0cb5e4d" - integrity sha512-olP9FmpNVTbOIewsVua0moHVYXw4Sl3chFbvTDLG6vRBohLSjllUXfgY3UEIVWR1PCqnAg+iEJZl9NHB9iOLBg== +"@abp/jquery-form@~8.3.1": + version "8.3.1" + resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-8.3.1.tgz#ba4e506aa5539d4fa7b8648aa42ed9f4605ba974" + integrity sha512-MvVYY9Je9ovHMpVkUyWbxbJcOrjyP8wbfV8EJoC9ktgIrNikP6JlDstleaRgAsoewoGpPxqSWGbOHCU6SoMUXw== dependencies: - "@abp/jquery" "~8.3.0" + "@abp/jquery" "~8.3.1" jquery-form "^4.3.0" -"@abp/jquery-validation-unobtrusive@~8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-8.3.0.tgz#0992cdd33170df83c79aa3371038c0b30e451521" - integrity sha512-9hidjq8x8sTnP5O3K2b2x9NpxvPd9WB03ENR6OfvM89kfSmQapSvBZTlCu80YK9NaQJ6MLQRLYOCuc3GHcj3EQ== +"@abp/jquery-validation-unobtrusive@~8.3.1": + version "8.3.1" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-8.3.1.tgz#bfb92f7fafc931b7a31542df3d18322c15ff9ca2" + integrity sha512-p6so0T3qyfObKi7wCj+TbyZUNIWdQMR2KgSUDKvN1zQOoDXz2GPZJS/h0LD5sMn3OPI9xSxHixlqcZwi61k1pg== dependencies: - "@abp/jquery-validation" "~8.3.0" + "@abp/jquery-validation" "~8.3.1" jquery-validation-unobtrusive "^4.0.0" -"@abp/jquery-validation@~8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-8.3.0.tgz#bd6a72c6d86f116abe3b5d2adf3752bdbbcca887" - integrity sha512-6l5BZSa3N0Fou6Se7MfUSnI2dD4SYhZ2V988bgPJQ6p37XBOZ2OAj7LEIf5FSjtUzXjao/6/vqjkPNYreNikig== +"@abp/jquery-validation@~8.3.1": + version "8.3.1" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-8.3.1.tgz#2a237e24c38da4896bcefe8e532dcff701671c1f" + integrity sha512-5+5kJjXw+smRDmbKjimIhk+E3J8UEe23smPwW+Yc7240KBRGO9YYnhrym8CnYHCnkegnW29YWmHO6FVKp/mSxA== dependencies: - "@abp/jquery" "~8.3.0" + "@abp/jquery" "~8.3.1" jquery-validation "^1.20.1" -"@abp/jquery@~8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-8.3.0.tgz#9be5ef2f769680226e6a1a981026590caf3b57ef" - integrity sha512-GsFY+n3EtS6B0pAoKd+xMnt5Dzi5bHvIbhLgDgfQfOBzAy3twGRWsPQ3nkuXXm8TppwujMNowU1oiLKPPm0AOA== +"@abp/jquery@~8.3.1": + version "8.3.1" + resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-8.3.1.tgz#e515f25498821df1a53d6329c6bc3d44abe58c2d" + integrity sha512-o3Jj1oz68mR5kW/xdpW26rK6zPJzSCzU/QnJjEVYExXGISp4GS355eJVsOlJ/dJNhiRnBcYfApx8Zm+9eltOIw== dependencies: - "@abp/core" "~8.3.0" + "@abp/core" "~8.3.1" jquery "~3.7.1" -"@abp/lodash@~8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-8.3.0.tgz#f5a0a496c999886f2d6999067bfac2e1f0c3969c" - integrity sha512-BiAsONbKR/RKG3WjRaMWVmhNe1ELEsykVq+ogG1Rhk3kwPbvze3TS8k2p0Lu/RC41/BmDUmJ5abg1pUMwkRT8w== +"@abp/lodash@~8.3.1": + version "8.3.1" + resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-8.3.1.tgz#70c1114647401d3ace1096c7e6c9bd36be8d1aa5" + integrity sha512-CaqCSZ2TijQKbIvFZGJBFSGIhBbrXJASW0jKDu6lUuzyfhQe9xayG9P83pQzrVp5GpNwInxuCqXO+qxqALHg0A== dependencies: - "@abp/core" "~8.3.0" + "@abp/core" "~8.3.1" lodash "^4.17.21" -"@abp/luxon@~8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-8.3.0.tgz#7dd3f756be1605506e26f7ac76b80cc082a12d07" - integrity sha512-8gdI5BtXkVp0sFg89QVDe8AvgQ7Qfq4JCqz2PMrKPSATR3H8GD6BCaEYpRp6CNTCjVrQjGZdzKgUyea1D3dHbw== +"@abp/luxon@~8.3.1": + version "8.3.1" + resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-8.3.1.tgz#d827ac81a1bb03a20a50d555c59ad2c24c8a9e9e" + integrity sha512-ovDJoJW0gF2QhUJHhINpYCUFXpC1OKJq55A0AzYbe+Sh7jylEF3NlvwHZuoshySc6MsSetbjRj3oE1b4e0CSyw== dependencies: - "@abp/core" "~8.3.0" + "@abp/core" "~8.3.1" luxon "^3.4.4" -"@abp/malihu-custom-scrollbar-plugin@~8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-8.3.0.tgz#c88c132c3402bbb02054ca7d446051950f87a817" - integrity sha512-nd/mb6LJa6fMxal8PGcIjIRIoZ/UHCd01WDC9YI2H4wGCGx0CA0JyHso5oc/OEzJhUL8ujO/vYm9uLb7YahPtA== +"@abp/malihu-custom-scrollbar-plugin@~8.3.1": + version "8.3.1" + resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-8.3.1.tgz#efd819695fd8e4ee37a77ca3f7fabc51632e3cb3" + integrity sha512-LyMSo90SWCwQT/j/s7i0UvI+pCthdKkWrJXq1Dfvs+/m89016fjOiCk9hCNMkZainoARJyHg9zK82koN/Q6c4A== dependencies: - "@abp/core" "~8.3.0" + "@abp/core" "~8.3.1" malihu-custom-scrollbar-plugin "^3.1.5" -"@abp/moment@~8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@abp/moment/-/moment-8.3.0.tgz#8e4f7a523ab76ef9e4cd96a399560bad38d38d1a" - integrity sha512-LywSsKuQ2GN/Btmle6CcTKa811zbvUWdC+RLQA792K9HyBs6LvN0qRRluEQZgplairRgh2pDOg8tdFlUERkv2w== +"@abp/moment@~8.3.1": + version "8.3.1" + resolved "https://registry.yarnpkg.com/@abp/moment/-/moment-8.3.1.tgz#09938caeefbbb179047b5edd7352828f8dcc8382" + integrity sha512-UEnSyeEzw/LFINfP1zwSxg3Nmx95zMw4f9bOWm2z+FeJofllmwYI4hrG9GhaJCxxV3iy+yK697U2XiBgBu6O2g== dependencies: moment "^2.30.1" -"@abp/prismjs@~8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@abp/prismjs/-/prismjs-8.3.0.tgz#0c87c63294d1452ed7152083d2fb6e70aa3aeae6" - integrity sha512-3wpwbqqlGRfQSLcBP+Qb2TKOoVGZVYYwOP6dP3So9ev8J5gFMDEizH9zLwRVHYrrsZZP8/etYnyZ0hn7ewuI5Q== +"@abp/prismjs@~8.3.1": + version "8.3.1" + resolved "https://registry.yarnpkg.com/@abp/prismjs/-/prismjs-8.3.1.tgz#e8bb9072439c0aee6bf16b351dcaea850ae13a73" + integrity sha512-WQPC4Iyr1fweoimey1xp1rZXzEsciFZloYn9rH9Hu7Bivkag2kpgx86jAGWNzMf9jo3XWo1wQHLKEtpC4kqImQ== dependencies: - "@abp/clipboard" "~8.3.0" - "@abp/core" "~8.3.0" + "@abp/clipboard" "~8.3.1" + "@abp/core" "~8.3.1" prismjs "^1.29.0" -"@abp/select2@~8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-8.3.0.tgz#ef4742fcd345394767f46180f61c6cabbd0b3867" - integrity sha512-bdLt2+ImxxpiZl4HGbYJpdDROQUT7/Z/+8A+6oJNacq3lNekdvufLYgTMxKru6zTbnd9j3HFKMOTE1eRjb9Xqg== +"@abp/select2@~8.3.1": + version "8.3.1" + resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-8.3.1.tgz#56703690adeb715e98c4a0c677f30040a560b588" + integrity sha512-yDDjkmncYJHMz5i438nsHEHZ9pfXm1ACoXhNNPQ8Ji3ZG2jwT76DamVV7zSc8Nd3v/AK5YPVBZeG4+6ZGGnfTw== dependencies: - "@abp/core" "~8.3.0" + "@abp/core" "~8.3.1" select2 "^4.0.13" -"@abp/sweetalert2@~8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-8.3.0.tgz#a63020d57e44f7940817287d3d9676288bfb85aa" - integrity sha512-ooqPM4Z2v2scnMo5l8ycTmp6t/sW4sCsvIkJ4TyM876WLQJaZxJdOao4RQWuU+dVFr9zg8cOwqLH4q7UEiO6ww== +"@abp/sweetalert2@~8.3.1": + version "8.3.1" + resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-8.3.1.tgz#3fd4913b21eec156157b5bdad95a991cf9f3f43d" + integrity sha512-yYLSv28nc6PldM4lAL2Zs+MCdGZnDLJuISzQS35xzfXvM5xKg9dgN1e/+OiYHVWULXIgZUgArUqd6In4smx2+w== dependencies: - "@abp/core" "~8.3.0" + "@abp/core" "~8.3.1" sweetalert2 "^11.3.6" -"@abp/timeago@~8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-8.3.0.tgz#b3b8d6927bf170f77af848bc1925e5ef6835bd55" - integrity sha512-Dd6xaUoF9Bp4F9WJnTsFBqY+Gt++UR7UmLvBZL/dvthkeNCu2I8MUsmshkUUjY0lIXpjZwefUOuyupQrgHXPMg== +"@abp/timeago@~8.3.1": + version "8.3.1" + resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-8.3.1.tgz#18999384ac3eb3636886ae03d5de46fbd1e2a9c1" + integrity sha512-WF8thD6vjc8TAIqjPgpoRZxL2ncwaQVcFnJuEB5sLUkj7ZqmFYNamdCdDsteyprSAb7/KsWDgwWAmGLeH4W3CQ== dependencies: - "@abp/jquery" "~8.3.0" + "@abp/jquery" "~8.3.1" timeago "^1.6.7" -"@abp/toastr@~8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-8.3.0.tgz#e68a2bd8f731e79034594bc2c736f7c66b3df1af" - integrity sha512-aWK/RaX/FmcEKhJLjsw1A0K2c04m2fRJkmo9NwzBCSscy6Msw9IMkqNWLiFDThMU8/qKzq7wq3Vmk/C0IpeAwA== +"@abp/toastr@~8.3.1": + version "8.3.1" + resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-8.3.1.tgz#541f09b905fb89d2c585d080c1bb690f3fa5f5cd" + integrity sha512-Tyz7cgFfD7HS6X4Pr51LIg/b358hAklT/NrfgE2w5G66f6vHXZB+8y/eYDJPaUeLMnuDo3Pw5M034ESKFRF76A== dependencies: - "@abp/jquery" "~8.3.0" + "@abp/jquery" "~8.3.1" toastr "^2.1.4" -"@abp/utils@~8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-8.3.0.tgz#96ae9266ad4d833fd9d723acef7fc85fabf618d9" - integrity sha512-w/XAqza4Z8wBWRoj5uPNKbd1/bE9L/uUWk6EUSBKmljMRryWQBmaPkb1XgvrOMQIbyyF60tUvvipapQLPVh6hw== +"@abp/utils@~8.3.1": + version "8.3.1" + resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-8.3.1.tgz#a0eeefbda6616940beef8376ae56b3809d3dad50" + integrity sha512-kLUll2bGNGb780Z8Bp/U9XfOYDtU1j5h6Fkqr4AqegioS7GqltI5fkpPc0oLeti05C9rJV4ca13Ip+SQ4BY6vw== dependencies: just-compare "^2.3.0" diff --git a/modules/blogging/app/Volo.BloggingTestApp/package.json b/modules/blogging/app/Volo.BloggingTestApp/package.json index a7d225a033..3fe35bf9c0 100644 --- a/modules/blogging/app/Volo.BloggingTestApp/package.json +++ b/modules/blogging/app/Volo.BloggingTestApp/package.json @@ -3,7 +3,7 @@ "name": "volo.blogtestapp", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.basic": "~8.3.0", - "@abp/blogging": "~8.3.0" + "@abp/aspnetcore.mvc.ui.theme.basic": "~8.3.1", + "@abp/blogging": "~8.3.1" } } diff --git a/modules/blogging/app/Volo.BloggingTestApp/yarn.lock b/modules/blogging/app/Volo.BloggingTestApp/yarn.lock index a1ee3f6aea..ee81df6869 100644 --- a/modules/blogging/app/Volo.BloggingTestApp/yarn.lock +++ b/modules/blogging/app/Volo.BloggingTestApp/yarn.lock @@ -2,237 +2,237 @@ # yarn lockfile v1 -"@abp/aspnetcore.mvc.ui.theme.basic@~8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-8.3.0.tgz#a2d17eb5da2c3abfad4bcc842cfcda0e58a130a4" - integrity sha512-T2dg7WlvNSrwTCfy5wk4gqiJ/15kIjMGM4wLXIJcMYn60yGY/YeX6Q4A3R/qJzfl4JdgW5rt3GpdKv86y/ADXg== - dependencies: - "@abp/aspnetcore.mvc.ui.theme.shared" "~8.3.0" - -"@abp/aspnetcore.mvc.ui.theme.shared@~8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-8.3.0.tgz#5d6bb5181a62770e9cb967980b77e75c115c5ed7" - integrity sha512-o/0eh8jLS+YJiseTKzzioUz0vNnMFzyoz+mkyA4PlO1gqw2JFhzPhTBZ3cuyV9QlxUfEA8dWAkqAUX6vqiHwkw== - dependencies: - "@abp/aspnetcore.mvc.ui" "~8.3.0" - "@abp/bootstrap" "~8.3.0" - "@abp/bootstrap-datepicker" "~8.3.0" - "@abp/bootstrap-daterangepicker" "~8.3.0" - "@abp/datatables.net-bs5" "~8.3.0" - "@abp/font-awesome" "~8.3.0" - "@abp/jquery-form" "~8.3.0" - "@abp/jquery-validation-unobtrusive" "~8.3.0" - "@abp/lodash" "~8.3.0" - "@abp/luxon" "~8.3.0" - "@abp/malihu-custom-scrollbar-plugin" "~8.3.0" - "@abp/moment" "~8.3.0" - "@abp/select2" "~8.3.0" - "@abp/sweetalert2" "~8.3.0" - "@abp/timeago" "~8.3.0" - "@abp/toastr" "~8.3.0" - -"@abp/aspnetcore.mvc.ui@~8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-8.3.0.tgz#d7ba0539bfcc6661a347dea7f952489010b3e816" - integrity sha512-OxgZhLKiXGFYYpNJ5O/IbhinsniiBPv9586e+1Soar0GckCMIIegJxnJb1Bo1O75blrcK2cIU6LqjRT1FXt2Lw== +"@abp/aspnetcore.mvc.ui.theme.basic@~8.3.1": + version "8.3.1" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-8.3.1.tgz#f3caaf7b2bc4e5dc143b30ea2d09c0895717226f" + integrity sha512-aFu/HLgr3oIJmQIXEUuOKq6x1NMMcvj1tDX3ZTKPSwscxVlJsHo4c+9xrqYr0TlXSkBp9kado1z5dOXsdJ586g== + dependencies: + "@abp/aspnetcore.mvc.ui.theme.shared" "~8.3.1" + +"@abp/aspnetcore.mvc.ui.theme.shared@~8.3.1": + version "8.3.1" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-8.3.1.tgz#ab58e22315da663fe0b5ec52b5a612135e04b1d6" + integrity sha512-Qlp41ca5ppz7DE5Awpir6hpuEZ8m1Mi7PIARJAqHgK4hLMlBfEcxwEOs6zk2yVAYEhh2hqSchwS5L1rjzqiIfQ== + dependencies: + "@abp/aspnetcore.mvc.ui" "~8.3.1" + "@abp/bootstrap" "~8.3.1" + "@abp/bootstrap-datepicker" "~8.3.1" + "@abp/bootstrap-daterangepicker" "~8.3.1" + "@abp/datatables.net-bs5" "~8.3.1" + "@abp/font-awesome" "~8.3.1" + "@abp/jquery-form" "~8.3.1" + "@abp/jquery-validation-unobtrusive" "~8.3.1" + "@abp/lodash" "~8.3.1" + "@abp/luxon" "~8.3.1" + "@abp/malihu-custom-scrollbar-plugin" "~8.3.1" + "@abp/moment" "~8.3.1" + "@abp/select2" "~8.3.1" + "@abp/sweetalert2" "~8.3.1" + "@abp/timeago" "~8.3.1" + "@abp/toastr" "~8.3.1" + +"@abp/aspnetcore.mvc.ui@~8.3.1": + version "8.3.1" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-8.3.1.tgz#d45fd58565bbee49ab78a4a230344bd034c7f96d" + integrity sha512-9J2Zk1QFn5AQLMFqp1qztSsSLKMPnhwkNfrJQoY/fyiPpQEu9x0l7u46rmTUnibhRll/FYb9PYsHP9qMiePoBQ== dependencies: ansi-colors "^4.1.3" -"@abp/blogging@~8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@abp/blogging/-/blogging-8.3.0.tgz#2559f67b961ce3987a1dd59c138c223e19f36d51" - integrity sha512-z9ntHhxgDYxX31OpGbPVsy9eY3/zLJiCpEtRpvNYKrKAVsS4fZSxfaywvma8owBpYmwyw4uNHVLr4EXpq0oX2Q== +"@abp/blogging@~8.3.1": + version "8.3.1" + resolved "https://registry.yarnpkg.com/@abp/blogging/-/blogging-8.3.1.tgz#67c83ecd027a4175edaa8c8b7e92acd102d61220" + integrity sha512-Md5/BRiZj1QJQrLLM/oTmdg62/ELHxqy/tdbX4+FPnflbPLd0XiMr1S5QMh4C7lRMcUdLGKNVFO/mipZMLUIzQ== dependencies: - "@abp/aspnetcore.mvc.ui.theme.shared" "~8.3.0" - "@abp/owl.carousel" "~8.3.0" - "@abp/prismjs" "~8.3.0" - "@abp/tui-editor" "~8.3.0" + "@abp/aspnetcore.mvc.ui.theme.shared" "~8.3.1" + "@abp/owl.carousel" "~8.3.1" + "@abp/prismjs" "~8.3.1" + "@abp/tui-editor" "~8.3.1" -"@abp/bootstrap-datepicker@~8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-8.3.0.tgz#8c1bf9efec37b671d8f28b8b1e89c1ac66684267" - integrity sha512-KCwMtm7x+cnKPeNMzhjDJUce0stwu4e57ibmvA6sMf1tmj+yB256O4E2hIDDohiT3vP/zV8HVHX6uATlcmGC9w== +"@abp/bootstrap-datepicker@~8.3.1": + version "8.3.1" + resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-8.3.1.tgz#c08c1688e6e21fcf388fa9b7317c3e5ae23e6c30" + integrity sha512-/JcKeLQFUf7ELiUBEnaE4Rh+2CC9jFqrm8QBjioACvZFU7dZSt1wqsqriLvDmVYq8xOfiQE7h+7dbQgXo/3Jpg== dependencies: bootstrap-datepicker "^1.10.0" -"@abp/bootstrap-daterangepicker@~8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-daterangepicker/-/bootstrap-daterangepicker-8.3.0.tgz#2b8ed978333502677916f88cbb3e1d1b1c8a3a17" - integrity sha512-uQSfuCQogl4BujdqvtdAoSE+z32ci8FT5+i3gLfpqbgTaxvY/Kv5NxAUH5/1sjnuAE7SMWO+eVvI3V0pXgQohg== +"@abp/bootstrap-daterangepicker@~8.3.1": + version "8.3.1" + resolved "https://registry.yarnpkg.com/@abp/bootstrap-daterangepicker/-/bootstrap-daterangepicker-8.3.1.tgz#8668a755968f55b6cc5eccf9d8fa8e77f2580746" + integrity sha512-4YCFDM1t8Eckp2cMjdM1qvd0g4O8tKwvQqO9ZeOkCik0SiUEvjHGvOhOlaOeg5sUkinXLG4wZ+8UiMHgtGfh7A== dependencies: bootstrap-daterangepicker "^3.1.0" -"@abp/bootstrap@~8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-8.3.0.tgz#96d6ea7e6ac30f6e34e495a4224f56f7b2a1a7a3" - integrity sha512-5AmdTtakmWhZmHrb7ibvvf+KwF9OGadpAe7Kv9mNEE02K2qkp7Xw4r5o/bgVl7YfLC1FA6GZZXrV2s2t0gjHtg== +"@abp/bootstrap@~8.3.1": + version "8.3.1" + resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-8.3.1.tgz#df7b0d99bd17049a9f7c52a018ef079ce9656829" + integrity sha512-DOFrIawWNTZQ/Mv7m9Mo20Kr9PeErke81xGzba3toR3Bn8jXRVUYk+ofarwceDTck53C6V1TCmgsRF3ecRrVgw== dependencies: - "@abp/core" "~8.3.0" + "@abp/core" "~8.3.1" bootstrap "^5.3.3" -"@abp/clipboard@~8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@abp/clipboard/-/clipboard-8.3.0.tgz#1b171e533f768cf42c8fc0c9c67fac1c636fee8c" - integrity sha512-T0O4OaMxLLYztAxyvEc3onEOpGHB/C8/jDcvJwd7mgpLoi9zXVfHwpnzkx/egfNJMzp49STD6Jc+jACi8Uq+CQ== +"@abp/clipboard@~8.3.1": + version "8.3.1" + resolved "https://registry.yarnpkg.com/@abp/clipboard/-/clipboard-8.3.1.tgz#f1b63562eeaf5488ed61b06472af134bb29be64b" + integrity sha512-5mvPu2ZQ6kwEF2s/r1fOcXlaj73+1E2XZbwZ12q0CSs0uSCNqc68ur3l3DdpFAszNj7A410sq4rUMkUvZwPsHw== dependencies: - "@abp/core" "~8.3.0" + "@abp/core" "~8.3.1" clipboard "^2.0.11" -"@abp/core@~8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@abp/core/-/core-8.3.0.tgz#3a68f5a9549efcc3e13500e301f2576751b51445" - integrity sha512-zrxnZi4qij/Y4AZWaXuPqs3Dd7gBtU/onX7FkYxLgQDxYBfx+84QAnPRNRFKMWaD/wKbTUB0wA66U3t2aiQX9Q== +"@abp/core@~8.3.1": + version "8.3.1" + resolved "https://registry.yarnpkg.com/@abp/core/-/core-8.3.1.tgz#1f2d5f5c55fcf0aafb1e4522e4d2a1f4d1ba679c" + integrity sha512-FtMhlHosvcSnEOYJiTgjbZ59+KB4NfhTPAk2l+X7MWIxGP+OLKFlTwd/OZBLtZ1c6r1Vzgaa7jnXJQvpQawqWQ== dependencies: - "@abp/utils" "~8.3.0" + "@abp/utils" "~8.3.1" -"@abp/datatables.net-bs5@~8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs5/-/datatables.net-bs5-8.3.0.tgz#21822ae4912a561afe9112925185aece03fcd0eb" - integrity sha512-GOGYSSHp3iPUDFRX2Y3C0wkiCOJDuYuK/zUSzQLNpOvBMZO+I/oWBcZM+qkVowIzsoRlAGV9+CVV2B/B05qidA== +"@abp/datatables.net-bs5@~8.3.1": + version "8.3.1" + resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs5/-/datatables.net-bs5-8.3.1.tgz#3522e949b66f7109f04d8367a0d61a663f36f6b0" + integrity sha512-rQw1DsZG8ir3OzNZrOJVpSwqu3I+CoOuEAvLr6xPJ1U9QszE4lqlciSR/pkDiFE/Ccau0KwuxGqbPjNvInshpA== dependencies: - "@abp/datatables.net" "~8.3.0" + "@abp/datatables.net" "~8.3.1" datatables.net-bs5 "^2.0.8" -"@abp/datatables.net@~8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-8.3.0.tgz#ff697758ce9309ba8311f23aec921c4722588c8b" - integrity sha512-4dIdv7eN1tVouOUrlF+MIdg8zQpecyH61waqLgy1q5jMZQivrTSFZ7UWMG3WVOAYjw5zSUZHZPbzA+ttnaOPkg== +"@abp/datatables.net@~8.3.1": + version "8.3.1" + resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-8.3.1.tgz#8bb3889b0267006fc4626afcb482ff34e60f4871" + integrity sha512-xxz4sKZmw2ZryTRoCzS66X5536Lg6XLCMDQzLHSbNQiIedEkvSEQtYKBcEYmh1U+nVX10S3nTk1YNSi8AqqYlg== dependencies: - "@abp/jquery" "~8.3.0" + "@abp/jquery" "~8.3.1" datatables.net "^2.0.8" -"@abp/font-awesome@~8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-8.3.0.tgz#9e4e9adc08dfca52c0a07d1608c5e5662675a4c9" - integrity sha512-NRxvM/dzvQC2Cj/F5i07XB/i6IVTmXcO9sOq6TWosWib0wGaPxRbCSjy8QUAYSD1QYaVQ30XMb3XXImaMGyd8A== +"@abp/font-awesome@~8.3.1": + version "8.3.1" + resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-8.3.1.tgz#b22ea61efbecfff0f0c088fd23ff4a46f0f9661d" + integrity sha512-JiEFfX6ArYjNAgxT42VgmPpkMbHo0TFaItFMFTx8kuFaO2KJS7c/5YVLJr3y3fylaF1d1HPtI/S3U8gF12quXA== dependencies: - "@abp/core" "~8.3.0" + "@abp/core" "~8.3.1" "@fortawesome/fontawesome-free" "^6.5.2" -"@abp/jquery-form@~8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-8.3.0.tgz#fa2ad2fedbe3d3528ee94cbbd4f94d48f0cb5e4d" - integrity sha512-olP9FmpNVTbOIewsVua0moHVYXw4Sl3chFbvTDLG6vRBohLSjllUXfgY3UEIVWR1PCqnAg+iEJZl9NHB9iOLBg== +"@abp/jquery-form@~8.3.1": + version "8.3.1" + resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-8.3.1.tgz#ba4e506aa5539d4fa7b8648aa42ed9f4605ba974" + integrity sha512-MvVYY9Je9ovHMpVkUyWbxbJcOrjyP8wbfV8EJoC9ktgIrNikP6JlDstleaRgAsoewoGpPxqSWGbOHCU6SoMUXw== dependencies: - "@abp/jquery" "~8.3.0" + "@abp/jquery" "~8.3.1" jquery-form "^4.3.0" -"@abp/jquery-validation-unobtrusive@~8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-8.3.0.tgz#0992cdd33170df83c79aa3371038c0b30e451521" - integrity sha512-9hidjq8x8sTnP5O3K2b2x9NpxvPd9WB03ENR6OfvM89kfSmQapSvBZTlCu80YK9NaQJ6MLQRLYOCuc3GHcj3EQ== +"@abp/jquery-validation-unobtrusive@~8.3.1": + version "8.3.1" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-8.3.1.tgz#bfb92f7fafc931b7a31542df3d18322c15ff9ca2" + integrity sha512-p6so0T3qyfObKi7wCj+TbyZUNIWdQMR2KgSUDKvN1zQOoDXz2GPZJS/h0LD5sMn3OPI9xSxHixlqcZwi61k1pg== dependencies: - "@abp/jquery-validation" "~8.3.0" + "@abp/jquery-validation" "~8.3.1" jquery-validation-unobtrusive "^4.0.0" -"@abp/jquery-validation@~8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-8.3.0.tgz#bd6a72c6d86f116abe3b5d2adf3752bdbbcca887" - integrity sha512-6l5BZSa3N0Fou6Se7MfUSnI2dD4SYhZ2V988bgPJQ6p37XBOZ2OAj7LEIf5FSjtUzXjao/6/vqjkPNYreNikig== +"@abp/jquery-validation@~8.3.1": + version "8.3.1" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-8.3.1.tgz#2a237e24c38da4896bcefe8e532dcff701671c1f" + integrity sha512-5+5kJjXw+smRDmbKjimIhk+E3J8UEe23smPwW+Yc7240KBRGO9YYnhrym8CnYHCnkegnW29YWmHO6FVKp/mSxA== dependencies: - "@abp/jquery" "~8.3.0" + "@abp/jquery" "~8.3.1" jquery-validation "^1.20.1" -"@abp/jquery@~8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-8.3.0.tgz#9be5ef2f769680226e6a1a981026590caf3b57ef" - integrity sha512-GsFY+n3EtS6B0pAoKd+xMnt5Dzi5bHvIbhLgDgfQfOBzAy3twGRWsPQ3nkuXXm8TppwujMNowU1oiLKPPm0AOA== +"@abp/jquery@~8.3.1": + version "8.3.1" + resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-8.3.1.tgz#e515f25498821df1a53d6329c6bc3d44abe58c2d" + integrity sha512-o3Jj1oz68mR5kW/xdpW26rK6zPJzSCzU/QnJjEVYExXGISp4GS355eJVsOlJ/dJNhiRnBcYfApx8Zm+9eltOIw== dependencies: - "@abp/core" "~8.3.0" + "@abp/core" "~8.3.1" jquery "~3.7.1" -"@abp/lodash@~8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-8.3.0.tgz#f5a0a496c999886f2d6999067bfac2e1f0c3969c" - integrity sha512-BiAsONbKR/RKG3WjRaMWVmhNe1ELEsykVq+ogG1Rhk3kwPbvze3TS8k2p0Lu/RC41/BmDUmJ5abg1pUMwkRT8w== +"@abp/lodash@~8.3.1": + version "8.3.1" + resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-8.3.1.tgz#70c1114647401d3ace1096c7e6c9bd36be8d1aa5" + integrity sha512-CaqCSZ2TijQKbIvFZGJBFSGIhBbrXJASW0jKDu6lUuzyfhQe9xayG9P83pQzrVp5GpNwInxuCqXO+qxqALHg0A== dependencies: - "@abp/core" "~8.3.0" + "@abp/core" "~8.3.1" lodash "^4.17.21" -"@abp/luxon@~8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-8.3.0.tgz#7dd3f756be1605506e26f7ac76b80cc082a12d07" - integrity sha512-8gdI5BtXkVp0sFg89QVDe8AvgQ7Qfq4JCqz2PMrKPSATR3H8GD6BCaEYpRp6CNTCjVrQjGZdzKgUyea1D3dHbw== +"@abp/luxon@~8.3.1": + version "8.3.1" + resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-8.3.1.tgz#d827ac81a1bb03a20a50d555c59ad2c24c8a9e9e" + integrity sha512-ovDJoJW0gF2QhUJHhINpYCUFXpC1OKJq55A0AzYbe+Sh7jylEF3NlvwHZuoshySc6MsSetbjRj3oE1b4e0CSyw== dependencies: - "@abp/core" "~8.3.0" + "@abp/core" "~8.3.1" luxon "^3.4.4" -"@abp/malihu-custom-scrollbar-plugin@~8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-8.3.0.tgz#c88c132c3402bbb02054ca7d446051950f87a817" - integrity sha512-nd/mb6LJa6fMxal8PGcIjIRIoZ/UHCd01WDC9YI2H4wGCGx0CA0JyHso5oc/OEzJhUL8ujO/vYm9uLb7YahPtA== +"@abp/malihu-custom-scrollbar-plugin@~8.3.1": + version "8.3.1" + resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-8.3.1.tgz#efd819695fd8e4ee37a77ca3f7fabc51632e3cb3" + integrity sha512-LyMSo90SWCwQT/j/s7i0UvI+pCthdKkWrJXq1Dfvs+/m89016fjOiCk9hCNMkZainoARJyHg9zK82koN/Q6c4A== dependencies: - "@abp/core" "~8.3.0" + "@abp/core" "~8.3.1" malihu-custom-scrollbar-plugin "^3.1.5" -"@abp/moment@~8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@abp/moment/-/moment-8.3.0.tgz#8e4f7a523ab76ef9e4cd96a399560bad38d38d1a" - integrity sha512-LywSsKuQ2GN/Btmle6CcTKa811zbvUWdC+RLQA792K9HyBs6LvN0qRRluEQZgplairRgh2pDOg8tdFlUERkv2w== +"@abp/moment@~8.3.1": + version "8.3.1" + resolved "https://registry.yarnpkg.com/@abp/moment/-/moment-8.3.1.tgz#09938caeefbbb179047b5edd7352828f8dcc8382" + integrity sha512-UEnSyeEzw/LFINfP1zwSxg3Nmx95zMw4f9bOWm2z+FeJofllmwYI4hrG9GhaJCxxV3iy+yK697U2XiBgBu6O2g== dependencies: moment "^2.30.1" -"@abp/owl.carousel@~8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@abp/owl.carousel/-/owl.carousel-8.3.0.tgz#4a1128e7eb98511b890fb91ef7658b6d8d3381e7" - integrity sha512-nVBPb00XOInGNUFQgzNEN/ASZGJPl1FTxPXkg6aQQPPAQMz3ZJXByZrvej56zUR550M831XtRNmWoulI+/yVGQ== +"@abp/owl.carousel@~8.3.1": + version "8.3.1" + resolved "https://registry.yarnpkg.com/@abp/owl.carousel/-/owl.carousel-8.3.1.tgz#eaa9efaccd04d3b9b38f631eba1d9a4929c6d0f3" + integrity sha512-TZ4g1wnxJbJZDToso9rWwJEBHmke+A1VoZutc1YA6erRkfW/lX2F0FZlzoiyL88UTiG0rhUeGyl3bPQwr5xf2g== dependencies: - "@abp/core" "~8.3.0" + "@abp/core" "~8.3.1" owl.carousel "^2.3.4" -"@abp/prismjs@~8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@abp/prismjs/-/prismjs-8.3.0.tgz#0c87c63294d1452ed7152083d2fb6e70aa3aeae6" - integrity sha512-3wpwbqqlGRfQSLcBP+Qb2TKOoVGZVYYwOP6dP3So9ev8J5gFMDEizH9zLwRVHYrrsZZP8/etYnyZ0hn7ewuI5Q== +"@abp/prismjs@~8.3.1": + version "8.3.1" + resolved "https://registry.yarnpkg.com/@abp/prismjs/-/prismjs-8.3.1.tgz#e8bb9072439c0aee6bf16b351dcaea850ae13a73" + integrity sha512-WQPC4Iyr1fweoimey1xp1rZXzEsciFZloYn9rH9Hu7Bivkag2kpgx86jAGWNzMf9jo3XWo1wQHLKEtpC4kqImQ== dependencies: - "@abp/clipboard" "~8.3.0" - "@abp/core" "~8.3.0" + "@abp/clipboard" "~8.3.1" + "@abp/core" "~8.3.1" prismjs "^1.29.0" -"@abp/select2@~8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-8.3.0.tgz#ef4742fcd345394767f46180f61c6cabbd0b3867" - integrity sha512-bdLt2+ImxxpiZl4HGbYJpdDROQUT7/Z/+8A+6oJNacq3lNekdvufLYgTMxKru6zTbnd9j3HFKMOTE1eRjb9Xqg== +"@abp/select2@~8.3.1": + version "8.3.1" + resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-8.3.1.tgz#56703690adeb715e98c4a0c677f30040a560b588" + integrity sha512-yDDjkmncYJHMz5i438nsHEHZ9pfXm1ACoXhNNPQ8Ji3ZG2jwT76DamVV7zSc8Nd3v/AK5YPVBZeG4+6ZGGnfTw== dependencies: - "@abp/core" "~8.3.0" + "@abp/core" "~8.3.1" select2 "^4.0.13" -"@abp/sweetalert2@~8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-8.3.0.tgz#a63020d57e44f7940817287d3d9676288bfb85aa" - integrity sha512-ooqPM4Z2v2scnMo5l8ycTmp6t/sW4sCsvIkJ4TyM876WLQJaZxJdOao4RQWuU+dVFr9zg8cOwqLH4q7UEiO6ww== +"@abp/sweetalert2@~8.3.1": + version "8.3.1" + resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-8.3.1.tgz#3fd4913b21eec156157b5bdad95a991cf9f3f43d" + integrity sha512-yYLSv28nc6PldM4lAL2Zs+MCdGZnDLJuISzQS35xzfXvM5xKg9dgN1e/+OiYHVWULXIgZUgArUqd6In4smx2+w== dependencies: - "@abp/core" "~8.3.0" + "@abp/core" "~8.3.1" sweetalert2 "^11.3.6" -"@abp/timeago@~8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-8.3.0.tgz#b3b8d6927bf170f77af848bc1925e5ef6835bd55" - integrity sha512-Dd6xaUoF9Bp4F9WJnTsFBqY+Gt++UR7UmLvBZL/dvthkeNCu2I8MUsmshkUUjY0lIXpjZwefUOuyupQrgHXPMg== +"@abp/timeago@~8.3.1": + version "8.3.1" + resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-8.3.1.tgz#18999384ac3eb3636886ae03d5de46fbd1e2a9c1" + integrity sha512-WF8thD6vjc8TAIqjPgpoRZxL2ncwaQVcFnJuEB5sLUkj7ZqmFYNamdCdDsteyprSAb7/KsWDgwWAmGLeH4W3CQ== dependencies: - "@abp/jquery" "~8.3.0" + "@abp/jquery" "~8.3.1" timeago "^1.6.7" -"@abp/toastr@~8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-8.3.0.tgz#e68a2bd8f731e79034594bc2c736f7c66b3df1af" - integrity sha512-aWK/RaX/FmcEKhJLjsw1A0K2c04m2fRJkmo9NwzBCSscy6Msw9IMkqNWLiFDThMU8/qKzq7wq3Vmk/C0IpeAwA== +"@abp/toastr@~8.3.1": + version "8.3.1" + resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-8.3.1.tgz#541f09b905fb89d2c585d080c1bb690f3fa5f5cd" + integrity sha512-Tyz7cgFfD7HS6X4Pr51LIg/b358hAklT/NrfgE2w5G66f6vHXZB+8y/eYDJPaUeLMnuDo3Pw5M034ESKFRF76A== dependencies: - "@abp/jquery" "~8.3.0" + "@abp/jquery" "~8.3.1" toastr "^2.1.4" -"@abp/tui-editor@~8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@abp/tui-editor/-/tui-editor-8.3.0.tgz#188360644140f3173b0347c1ce883612a5eb9e18" - integrity sha512-GNFuKvAlwihuzg91dekGZ5s5aLKySROHbLujanzaco1nfRvWehx+J+oCP0rHzQ3++DpxEXhlz05qW9I1gCEAKA== +"@abp/tui-editor@~8.3.1": + version "8.3.1" + resolved "https://registry.yarnpkg.com/@abp/tui-editor/-/tui-editor-8.3.1.tgz#af6a842ead42226d2d1aa9b15c01d3d895606779" + integrity sha512-RwzyTd6XC26VHcediUfDOXRsv0dpxOm6wLW+eIK6BYz4T2DFd7ZfON24IA2grIpctWfeC1VGL9LLWx17XiCrdA== dependencies: - "@abp/jquery" "~8.3.0" - "@abp/prismjs" "~8.3.0" + "@abp/jquery" "~8.3.1" + "@abp/prismjs" "~8.3.1" -"@abp/utils@~8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-8.3.0.tgz#96ae9266ad4d833fd9d723acef7fc85fabf618d9" - integrity sha512-w/XAqza4Z8wBWRoj5uPNKbd1/bE9L/uUWk6EUSBKmljMRryWQBmaPkb1XgvrOMQIbyyF60tUvvipapQLPVh6hw== +"@abp/utils@~8.3.1": + version "8.3.1" + resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-8.3.1.tgz#a0eeefbda6616940beef8376ae56b3809d3dad50" + integrity sha512-kLUll2bGNGb780Z8Bp/U9XfOYDtU1j5h6Fkqr4AqegioS7GqltI5fkpPc0oLeti05C9rJV4ca13Ip+SQ4BY6vw== dependencies: just-compare "^2.3.0" diff --git a/modules/client-simulation/demo/Volo.ClientSimulation.Demo/package.json b/modules/client-simulation/demo/Volo.ClientSimulation.Demo/package.json index f218cbad11..3757978958 100644 --- a/modules/client-simulation/demo/Volo.ClientSimulation.Demo/package.json +++ b/modules/client-simulation/demo/Volo.ClientSimulation.Demo/package.json @@ -3,6 +3,6 @@ "name": "client-simulation-web", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.basic": "~8.3.0" + "@abp/aspnetcore.mvc.ui.theme.basic": "~8.3.1" } } diff --git a/modules/client-simulation/demo/Volo.ClientSimulation.Demo/yarn.lock b/modules/client-simulation/demo/Volo.ClientSimulation.Demo/yarn.lock index d19b65bc24..2f245ec759 100644 --- a/modules/client-simulation/demo/Volo.ClientSimulation.Demo/yarn.lock +++ b/modules/client-simulation/demo/Volo.ClientSimulation.Demo/yarn.lock @@ -2,194 +2,194 @@ # yarn lockfile v1 -"@abp/aspnetcore.mvc.ui.theme.basic@~8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-8.3.0.tgz#a2d17eb5da2c3abfad4bcc842cfcda0e58a130a4" - integrity sha512-T2dg7WlvNSrwTCfy5wk4gqiJ/15kIjMGM4wLXIJcMYn60yGY/YeX6Q4A3R/qJzfl4JdgW5rt3GpdKv86y/ADXg== - dependencies: - "@abp/aspnetcore.mvc.ui.theme.shared" "~8.3.0" - -"@abp/aspnetcore.mvc.ui.theme.shared@~8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-8.3.0.tgz#5d6bb5181a62770e9cb967980b77e75c115c5ed7" - integrity sha512-o/0eh8jLS+YJiseTKzzioUz0vNnMFzyoz+mkyA4PlO1gqw2JFhzPhTBZ3cuyV9QlxUfEA8dWAkqAUX6vqiHwkw== - dependencies: - "@abp/aspnetcore.mvc.ui" "~8.3.0" - "@abp/bootstrap" "~8.3.0" - "@abp/bootstrap-datepicker" "~8.3.0" - "@abp/bootstrap-daterangepicker" "~8.3.0" - "@abp/datatables.net-bs5" "~8.3.0" - "@abp/font-awesome" "~8.3.0" - "@abp/jquery-form" "~8.3.0" - "@abp/jquery-validation-unobtrusive" "~8.3.0" - "@abp/lodash" "~8.3.0" - "@abp/luxon" "~8.3.0" - "@abp/malihu-custom-scrollbar-plugin" "~8.3.0" - "@abp/moment" "~8.3.0" - "@abp/select2" "~8.3.0" - "@abp/sweetalert2" "~8.3.0" - "@abp/timeago" "~8.3.0" - "@abp/toastr" "~8.3.0" - -"@abp/aspnetcore.mvc.ui@~8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-8.3.0.tgz#d7ba0539bfcc6661a347dea7f952489010b3e816" - integrity sha512-OxgZhLKiXGFYYpNJ5O/IbhinsniiBPv9586e+1Soar0GckCMIIegJxnJb1Bo1O75blrcK2cIU6LqjRT1FXt2Lw== +"@abp/aspnetcore.mvc.ui.theme.basic@~8.3.1": + version "8.3.1" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-8.3.1.tgz#f3caaf7b2bc4e5dc143b30ea2d09c0895717226f" + integrity sha512-aFu/HLgr3oIJmQIXEUuOKq6x1NMMcvj1tDX3ZTKPSwscxVlJsHo4c+9xrqYr0TlXSkBp9kado1z5dOXsdJ586g== + dependencies: + "@abp/aspnetcore.mvc.ui.theme.shared" "~8.3.1" + +"@abp/aspnetcore.mvc.ui.theme.shared@~8.3.1": + version "8.3.1" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-8.3.1.tgz#ab58e22315da663fe0b5ec52b5a612135e04b1d6" + integrity sha512-Qlp41ca5ppz7DE5Awpir6hpuEZ8m1Mi7PIARJAqHgK4hLMlBfEcxwEOs6zk2yVAYEhh2hqSchwS5L1rjzqiIfQ== + dependencies: + "@abp/aspnetcore.mvc.ui" "~8.3.1" + "@abp/bootstrap" "~8.3.1" + "@abp/bootstrap-datepicker" "~8.3.1" + "@abp/bootstrap-daterangepicker" "~8.3.1" + "@abp/datatables.net-bs5" "~8.3.1" + "@abp/font-awesome" "~8.3.1" + "@abp/jquery-form" "~8.3.1" + "@abp/jquery-validation-unobtrusive" "~8.3.1" + "@abp/lodash" "~8.3.1" + "@abp/luxon" "~8.3.1" + "@abp/malihu-custom-scrollbar-plugin" "~8.3.1" + "@abp/moment" "~8.3.1" + "@abp/select2" "~8.3.1" + "@abp/sweetalert2" "~8.3.1" + "@abp/timeago" "~8.3.1" + "@abp/toastr" "~8.3.1" + +"@abp/aspnetcore.mvc.ui@~8.3.1": + version "8.3.1" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-8.3.1.tgz#d45fd58565bbee49ab78a4a230344bd034c7f96d" + integrity sha512-9J2Zk1QFn5AQLMFqp1qztSsSLKMPnhwkNfrJQoY/fyiPpQEu9x0l7u46rmTUnibhRll/FYb9PYsHP9qMiePoBQ== dependencies: ansi-colors "^4.1.3" -"@abp/bootstrap-datepicker@~8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-8.3.0.tgz#8c1bf9efec37b671d8f28b8b1e89c1ac66684267" - integrity sha512-KCwMtm7x+cnKPeNMzhjDJUce0stwu4e57ibmvA6sMf1tmj+yB256O4E2hIDDohiT3vP/zV8HVHX6uATlcmGC9w== +"@abp/bootstrap-datepicker@~8.3.1": + version "8.3.1" + resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-8.3.1.tgz#c08c1688e6e21fcf388fa9b7317c3e5ae23e6c30" + integrity sha512-/JcKeLQFUf7ELiUBEnaE4Rh+2CC9jFqrm8QBjioACvZFU7dZSt1wqsqriLvDmVYq8xOfiQE7h+7dbQgXo/3Jpg== dependencies: bootstrap-datepicker "^1.10.0" -"@abp/bootstrap-daterangepicker@~8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-daterangepicker/-/bootstrap-daterangepicker-8.3.0.tgz#2b8ed978333502677916f88cbb3e1d1b1c8a3a17" - integrity sha512-uQSfuCQogl4BujdqvtdAoSE+z32ci8FT5+i3gLfpqbgTaxvY/Kv5NxAUH5/1sjnuAE7SMWO+eVvI3V0pXgQohg== +"@abp/bootstrap-daterangepicker@~8.3.1": + version "8.3.1" + resolved "https://registry.yarnpkg.com/@abp/bootstrap-daterangepicker/-/bootstrap-daterangepicker-8.3.1.tgz#8668a755968f55b6cc5eccf9d8fa8e77f2580746" + integrity sha512-4YCFDM1t8Eckp2cMjdM1qvd0g4O8tKwvQqO9ZeOkCik0SiUEvjHGvOhOlaOeg5sUkinXLG4wZ+8UiMHgtGfh7A== dependencies: bootstrap-daterangepicker "^3.1.0" -"@abp/bootstrap@~8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-8.3.0.tgz#96d6ea7e6ac30f6e34e495a4224f56f7b2a1a7a3" - integrity sha512-5AmdTtakmWhZmHrb7ibvvf+KwF9OGadpAe7Kv9mNEE02K2qkp7Xw4r5o/bgVl7YfLC1FA6GZZXrV2s2t0gjHtg== +"@abp/bootstrap@~8.3.1": + version "8.3.1" + resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-8.3.1.tgz#df7b0d99bd17049a9f7c52a018ef079ce9656829" + integrity sha512-DOFrIawWNTZQ/Mv7m9Mo20Kr9PeErke81xGzba3toR3Bn8jXRVUYk+ofarwceDTck53C6V1TCmgsRF3ecRrVgw== dependencies: - "@abp/core" "~8.3.0" + "@abp/core" "~8.3.1" bootstrap "^5.3.3" -"@abp/core@~8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@abp/core/-/core-8.3.0.tgz#3a68f5a9549efcc3e13500e301f2576751b51445" - integrity sha512-zrxnZi4qij/Y4AZWaXuPqs3Dd7gBtU/onX7FkYxLgQDxYBfx+84QAnPRNRFKMWaD/wKbTUB0wA66U3t2aiQX9Q== +"@abp/core@~8.3.1": + version "8.3.1" + resolved "https://registry.yarnpkg.com/@abp/core/-/core-8.3.1.tgz#1f2d5f5c55fcf0aafb1e4522e4d2a1f4d1ba679c" + integrity sha512-FtMhlHosvcSnEOYJiTgjbZ59+KB4NfhTPAk2l+X7MWIxGP+OLKFlTwd/OZBLtZ1c6r1Vzgaa7jnXJQvpQawqWQ== dependencies: - "@abp/utils" "~8.3.0" + "@abp/utils" "~8.3.1" -"@abp/datatables.net-bs5@~8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs5/-/datatables.net-bs5-8.3.0.tgz#21822ae4912a561afe9112925185aece03fcd0eb" - integrity sha512-GOGYSSHp3iPUDFRX2Y3C0wkiCOJDuYuK/zUSzQLNpOvBMZO+I/oWBcZM+qkVowIzsoRlAGV9+CVV2B/B05qidA== +"@abp/datatables.net-bs5@~8.3.1": + version "8.3.1" + resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs5/-/datatables.net-bs5-8.3.1.tgz#3522e949b66f7109f04d8367a0d61a663f36f6b0" + integrity sha512-rQw1DsZG8ir3OzNZrOJVpSwqu3I+CoOuEAvLr6xPJ1U9QszE4lqlciSR/pkDiFE/Ccau0KwuxGqbPjNvInshpA== dependencies: - "@abp/datatables.net" "~8.3.0" + "@abp/datatables.net" "~8.3.1" datatables.net-bs5 "^2.0.8" -"@abp/datatables.net@~8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-8.3.0.tgz#ff697758ce9309ba8311f23aec921c4722588c8b" - integrity sha512-4dIdv7eN1tVouOUrlF+MIdg8zQpecyH61waqLgy1q5jMZQivrTSFZ7UWMG3WVOAYjw5zSUZHZPbzA+ttnaOPkg== +"@abp/datatables.net@~8.3.1": + version "8.3.1" + resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-8.3.1.tgz#8bb3889b0267006fc4626afcb482ff34e60f4871" + integrity sha512-xxz4sKZmw2ZryTRoCzS66X5536Lg6XLCMDQzLHSbNQiIedEkvSEQtYKBcEYmh1U+nVX10S3nTk1YNSi8AqqYlg== dependencies: - "@abp/jquery" "~8.3.0" + "@abp/jquery" "~8.3.1" datatables.net "^2.0.8" -"@abp/font-awesome@~8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-8.3.0.tgz#9e4e9adc08dfca52c0a07d1608c5e5662675a4c9" - integrity sha512-NRxvM/dzvQC2Cj/F5i07XB/i6IVTmXcO9sOq6TWosWib0wGaPxRbCSjy8QUAYSD1QYaVQ30XMb3XXImaMGyd8A== +"@abp/font-awesome@~8.3.1": + version "8.3.1" + resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-8.3.1.tgz#b22ea61efbecfff0f0c088fd23ff4a46f0f9661d" + integrity sha512-JiEFfX6ArYjNAgxT42VgmPpkMbHo0TFaItFMFTx8kuFaO2KJS7c/5YVLJr3y3fylaF1d1HPtI/S3U8gF12quXA== dependencies: - "@abp/core" "~8.3.0" + "@abp/core" "~8.3.1" "@fortawesome/fontawesome-free" "^6.5.2" -"@abp/jquery-form@~8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-8.3.0.tgz#fa2ad2fedbe3d3528ee94cbbd4f94d48f0cb5e4d" - integrity sha512-olP9FmpNVTbOIewsVua0moHVYXw4Sl3chFbvTDLG6vRBohLSjllUXfgY3UEIVWR1PCqnAg+iEJZl9NHB9iOLBg== +"@abp/jquery-form@~8.3.1": + version "8.3.1" + resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-8.3.1.tgz#ba4e506aa5539d4fa7b8648aa42ed9f4605ba974" + integrity sha512-MvVYY9Je9ovHMpVkUyWbxbJcOrjyP8wbfV8EJoC9ktgIrNikP6JlDstleaRgAsoewoGpPxqSWGbOHCU6SoMUXw== dependencies: - "@abp/jquery" "~8.3.0" + "@abp/jquery" "~8.3.1" jquery-form "^4.3.0" -"@abp/jquery-validation-unobtrusive@~8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-8.3.0.tgz#0992cdd33170df83c79aa3371038c0b30e451521" - integrity sha512-9hidjq8x8sTnP5O3K2b2x9NpxvPd9WB03ENR6OfvM89kfSmQapSvBZTlCu80YK9NaQJ6MLQRLYOCuc3GHcj3EQ== +"@abp/jquery-validation-unobtrusive@~8.3.1": + version "8.3.1" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-8.3.1.tgz#bfb92f7fafc931b7a31542df3d18322c15ff9ca2" + integrity sha512-p6so0T3qyfObKi7wCj+TbyZUNIWdQMR2KgSUDKvN1zQOoDXz2GPZJS/h0LD5sMn3OPI9xSxHixlqcZwi61k1pg== dependencies: - "@abp/jquery-validation" "~8.3.0" + "@abp/jquery-validation" "~8.3.1" jquery-validation-unobtrusive "^4.0.0" -"@abp/jquery-validation@~8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-8.3.0.tgz#bd6a72c6d86f116abe3b5d2adf3752bdbbcca887" - integrity sha512-6l5BZSa3N0Fou6Se7MfUSnI2dD4SYhZ2V988bgPJQ6p37XBOZ2OAj7LEIf5FSjtUzXjao/6/vqjkPNYreNikig== +"@abp/jquery-validation@~8.3.1": + version "8.3.1" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-8.3.1.tgz#2a237e24c38da4896bcefe8e532dcff701671c1f" + integrity sha512-5+5kJjXw+smRDmbKjimIhk+E3J8UEe23smPwW+Yc7240KBRGO9YYnhrym8CnYHCnkegnW29YWmHO6FVKp/mSxA== dependencies: - "@abp/jquery" "~8.3.0" + "@abp/jquery" "~8.3.1" jquery-validation "^1.20.1" -"@abp/jquery@~8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-8.3.0.tgz#9be5ef2f769680226e6a1a981026590caf3b57ef" - integrity sha512-GsFY+n3EtS6B0pAoKd+xMnt5Dzi5bHvIbhLgDgfQfOBzAy3twGRWsPQ3nkuXXm8TppwujMNowU1oiLKPPm0AOA== +"@abp/jquery@~8.3.1": + version "8.3.1" + resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-8.3.1.tgz#e515f25498821df1a53d6329c6bc3d44abe58c2d" + integrity sha512-o3Jj1oz68mR5kW/xdpW26rK6zPJzSCzU/QnJjEVYExXGISp4GS355eJVsOlJ/dJNhiRnBcYfApx8Zm+9eltOIw== dependencies: - "@abp/core" "~8.3.0" + "@abp/core" "~8.3.1" jquery "~3.7.1" -"@abp/lodash@~8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-8.3.0.tgz#f5a0a496c999886f2d6999067bfac2e1f0c3969c" - integrity sha512-BiAsONbKR/RKG3WjRaMWVmhNe1ELEsykVq+ogG1Rhk3kwPbvze3TS8k2p0Lu/RC41/BmDUmJ5abg1pUMwkRT8w== +"@abp/lodash@~8.3.1": + version "8.3.1" + resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-8.3.1.tgz#70c1114647401d3ace1096c7e6c9bd36be8d1aa5" + integrity sha512-CaqCSZ2TijQKbIvFZGJBFSGIhBbrXJASW0jKDu6lUuzyfhQe9xayG9P83pQzrVp5GpNwInxuCqXO+qxqALHg0A== dependencies: - "@abp/core" "~8.3.0" + "@abp/core" "~8.3.1" lodash "^4.17.21" -"@abp/luxon@~8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-8.3.0.tgz#7dd3f756be1605506e26f7ac76b80cc082a12d07" - integrity sha512-8gdI5BtXkVp0sFg89QVDe8AvgQ7Qfq4JCqz2PMrKPSATR3H8GD6BCaEYpRp6CNTCjVrQjGZdzKgUyea1D3dHbw== +"@abp/luxon@~8.3.1": + version "8.3.1" + resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-8.3.1.tgz#d827ac81a1bb03a20a50d555c59ad2c24c8a9e9e" + integrity sha512-ovDJoJW0gF2QhUJHhINpYCUFXpC1OKJq55A0AzYbe+Sh7jylEF3NlvwHZuoshySc6MsSetbjRj3oE1b4e0CSyw== dependencies: - "@abp/core" "~8.3.0" + "@abp/core" "~8.3.1" luxon "^3.4.4" -"@abp/malihu-custom-scrollbar-plugin@~8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-8.3.0.tgz#c88c132c3402bbb02054ca7d446051950f87a817" - integrity sha512-nd/mb6LJa6fMxal8PGcIjIRIoZ/UHCd01WDC9YI2H4wGCGx0CA0JyHso5oc/OEzJhUL8ujO/vYm9uLb7YahPtA== +"@abp/malihu-custom-scrollbar-plugin@~8.3.1": + version "8.3.1" + resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-8.3.1.tgz#efd819695fd8e4ee37a77ca3f7fabc51632e3cb3" + integrity sha512-LyMSo90SWCwQT/j/s7i0UvI+pCthdKkWrJXq1Dfvs+/m89016fjOiCk9hCNMkZainoARJyHg9zK82koN/Q6c4A== dependencies: - "@abp/core" "~8.3.0" + "@abp/core" "~8.3.1" malihu-custom-scrollbar-plugin "^3.1.5" -"@abp/moment@~8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@abp/moment/-/moment-8.3.0.tgz#8e4f7a523ab76ef9e4cd96a399560bad38d38d1a" - integrity sha512-LywSsKuQ2GN/Btmle6CcTKa811zbvUWdC+RLQA792K9HyBs6LvN0qRRluEQZgplairRgh2pDOg8tdFlUERkv2w== +"@abp/moment@~8.3.1": + version "8.3.1" + resolved "https://registry.yarnpkg.com/@abp/moment/-/moment-8.3.1.tgz#09938caeefbbb179047b5edd7352828f8dcc8382" + integrity sha512-UEnSyeEzw/LFINfP1zwSxg3Nmx95zMw4f9bOWm2z+FeJofllmwYI4hrG9GhaJCxxV3iy+yK697U2XiBgBu6O2g== dependencies: moment "^2.30.1" -"@abp/select2@~8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-8.3.0.tgz#ef4742fcd345394767f46180f61c6cabbd0b3867" - integrity sha512-bdLt2+ImxxpiZl4HGbYJpdDROQUT7/Z/+8A+6oJNacq3lNekdvufLYgTMxKru6zTbnd9j3HFKMOTE1eRjb9Xqg== +"@abp/select2@~8.3.1": + version "8.3.1" + resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-8.3.1.tgz#56703690adeb715e98c4a0c677f30040a560b588" + integrity sha512-yDDjkmncYJHMz5i438nsHEHZ9pfXm1ACoXhNNPQ8Ji3ZG2jwT76DamVV7zSc8Nd3v/AK5YPVBZeG4+6ZGGnfTw== dependencies: - "@abp/core" "~8.3.0" + "@abp/core" "~8.3.1" select2 "^4.0.13" -"@abp/sweetalert2@~8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-8.3.0.tgz#a63020d57e44f7940817287d3d9676288bfb85aa" - integrity sha512-ooqPM4Z2v2scnMo5l8ycTmp6t/sW4sCsvIkJ4TyM876WLQJaZxJdOao4RQWuU+dVFr9zg8cOwqLH4q7UEiO6ww== +"@abp/sweetalert2@~8.3.1": + version "8.3.1" + resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-8.3.1.tgz#3fd4913b21eec156157b5bdad95a991cf9f3f43d" + integrity sha512-yYLSv28nc6PldM4lAL2Zs+MCdGZnDLJuISzQS35xzfXvM5xKg9dgN1e/+OiYHVWULXIgZUgArUqd6In4smx2+w== dependencies: - "@abp/core" "~8.3.0" + "@abp/core" "~8.3.1" sweetalert2 "^11.3.6" -"@abp/timeago@~8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-8.3.0.tgz#b3b8d6927bf170f77af848bc1925e5ef6835bd55" - integrity sha512-Dd6xaUoF9Bp4F9WJnTsFBqY+Gt++UR7UmLvBZL/dvthkeNCu2I8MUsmshkUUjY0lIXpjZwefUOuyupQrgHXPMg== +"@abp/timeago@~8.3.1": + version "8.3.1" + resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-8.3.1.tgz#18999384ac3eb3636886ae03d5de46fbd1e2a9c1" + integrity sha512-WF8thD6vjc8TAIqjPgpoRZxL2ncwaQVcFnJuEB5sLUkj7ZqmFYNamdCdDsteyprSAb7/KsWDgwWAmGLeH4W3CQ== dependencies: - "@abp/jquery" "~8.3.0" + "@abp/jquery" "~8.3.1" timeago "^1.6.7" -"@abp/toastr@~8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-8.3.0.tgz#e68a2bd8f731e79034594bc2c736f7c66b3df1af" - integrity sha512-aWK/RaX/FmcEKhJLjsw1A0K2c04m2fRJkmo9NwzBCSscy6Msw9IMkqNWLiFDThMU8/qKzq7wq3Vmk/C0IpeAwA== +"@abp/toastr@~8.3.1": + version "8.3.1" + resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-8.3.1.tgz#541f09b905fb89d2c585d080c1bb690f3fa5f5cd" + integrity sha512-Tyz7cgFfD7HS6X4Pr51LIg/b358hAklT/NrfgE2w5G66f6vHXZB+8y/eYDJPaUeLMnuDo3Pw5M034ESKFRF76A== dependencies: - "@abp/jquery" "~8.3.0" + "@abp/jquery" "~8.3.1" toastr "^2.1.4" -"@abp/utils@~8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-8.3.0.tgz#96ae9266ad4d833fd9d723acef7fc85fabf618d9" - integrity sha512-w/XAqza4Z8wBWRoj5uPNKbd1/bE9L/uUWk6EUSBKmljMRryWQBmaPkb1XgvrOMQIbyyF60tUvvipapQLPVh6hw== +"@abp/utils@~8.3.1": + version "8.3.1" + resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-8.3.1.tgz#a0eeefbda6616940beef8376ae56b3809d3dad50" + integrity sha512-kLUll2bGNGb780Z8Bp/U9XfOYDtU1j5h6Fkqr4AqegioS7GqltI5fkpPc0oLeti05C9rJV4ca13Ip+SQ4BY6vw== dependencies: just-compare "^2.3.0" diff --git a/modules/cms-kit/angular/package.json b/modules/cms-kit/angular/package.json index 3ee27697d0..e20ab3903c 100644 --- a/modules/cms-kit/angular/package.json +++ b/modules/cms-kit/angular/package.json @@ -15,11 +15,11 @@ }, "private": true, "dependencies": { - "@abp/ng.account": "~8.3.0", - "@abp/ng.identity": "~8.3.0", - "@abp/ng.setting-management": "~8.3.0", - "@abp/ng.tenant-management": "~8.3.0", - "@abp/ng.theme.basic": "~8.3.0", + "@abp/ng.account": "~8.3.1", + "@abp/ng.identity": "~8.3.1", + "@abp/ng.setting-management": "~8.3.1", + "@abp/ng.tenant-management": "~8.3.1", + "@abp/ng.theme.basic": "~8.3.1", "@angular/animations": "~10.0.0", "@angular/common": "~10.0.0", "@angular/compiler": "~10.0.0", diff --git a/modules/cms-kit/angular/projects/cms-kit/package.json b/modules/cms-kit/angular/projects/cms-kit/package.json index d2cfd7941b..5242b62707 100644 --- a/modules/cms-kit/angular/projects/cms-kit/package.json +++ b/modules/cms-kit/angular/projects/cms-kit/package.json @@ -4,8 +4,8 @@ "peerDependencies": { "@angular/common": "^9.1.11", "@angular/core": "^9.1.11", - "@abp/ng.core": ">=8.3.0", - "@abp/ng.theme.shared": ">=8.3.0" + "@abp/ng.core": ">=8.3.1", + "@abp/ng.theme.shared": ">=8.3.1" }, "dependencies": { "tslib": "^2.0.0" diff --git a/modules/cms-kit/host/Volo.CmsKit.IdentityServer/package.json b/modules/cms-kit/host/Volo.CmsKit.IdentityServer/package.json index 31f6d4b511..3c6e2ec09d 100644 --- a/modules/cms-kit/host/Volo.CmsKit.IdentityServer/package.json +++ b/modules/cms-kit/host/Volo.CmsKit.IdentityServer/package.json @@ -3,6 +3,6 @@ "name": "my-app-identityserver", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.basic": "~8.3.0" + "@abp/aspnetcore.mvc.ui.theme.basic": "~8.3.1" } } diff --git a/modules/cms-kit/host/Volo.CmsKit.IdentityServer/yarn.lock b/modules/cms-kit/host/Volo.CmsKit.IdentityServer/yarn.lock index d19b65bc24..2f245ec759 100644 --- a/modules/cms-kit/host/Volo.CmsKit.IdentityServer/yarn.lock +++ b/modules/cms-kit/host/Volo.CmsKit.IdentityServer/yarn.lock @@ -2,194 +2,194 @@ # yarn lockfile v1 -"@abp/aspnetcore.mvc.ui.theme.basic@~8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-8.3.0.tgz#a2d17eb5da2c3abfad4bcc842cfcda0e58a130a4" - integrity sha512-T2dg7WlvNSrwTCfy5wk4gqiJ/15kIjMGM4wLXIJcMYn60yGY/YeX6Q4A3R/qJzfl4JdgW5rt3GpdKv86y/ADXg== - dependencies: - "@abp/aspnetcore.mvc.ui.theme.shared" "~8.3.0" - -"@abp/aspnetcore.mvc.ui.theme.shared@~8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-8.3.0.tgz#5d6bb5181a62770e9cb967980b77e75c115c5ed7" - integrity sha512-o/0eh8jLS+YJiseTKzzioUz0vNnMFzyoz+mkyA4PlO1gqw2JFhzPhTBZ3cuyV9QlxUfEA8dWAkqAUX6vqiHwkw== - dependencies: - "@abp/aspnetcore.mvc.ui" "~8.3.0" - "@abp/bootstrap" "~8.3.0" - "@abp/bootstrap-datepicker" "~8.3.0" - "@abp/bootstrap-daterangepicker" "~8.3.0" - "@abp/datatables.net-bs5" "~8.3.0" - "@abp/font-awesome" "~8.3.0" - "@abp/jquery-form" "~8.3.0" - "@abp/jquery-validation-unobtrusive" "~8.3.0" - "@abp/lodash" "~8.3.0" - "@abp/luxon" "~8.3.0" - "@abp/malihu-custom-scrollbar-plugin" "~8.3.0" - "@abp/moment" "~8.3.0" - "@abp/select2" "~8.3.0" - "@abp/sweetalert2" "~8.3.0" - "@abp/timeago" "~8.3.0" - "@abp/toastr" "~8.3.0" - -"@abp/aspnetcore.mvc.ui@~8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-8.3.0.tgz#d7ba0539bfcc6661a347dea7f952489010b3e816" - integrity sha512-OxgZhLKiXGFYYpNJ5O/IbhinsniiBPv9586e+1Soar0GckCMIIegJxnJb1Bo1O75blrcK2cIU6LqjRT1FXt2Lw== +"@abp/aspnetcore.mvc.ui.theme.basic@~8.3.1": + version "8.3.1" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-8.3.1.tgz#f3caaf7b2bc4e5dc143b30ea2d09c0895717226f" + integrity sha512-aFu/HLgr3oIJmQIXEUuOKq6x1NMMcvj1tDX3ZTKPSwscxVlJsHo4c+9xrqYr0TlXSkBp9kado1z5dOXsdJ586g== + dependencies: + "@abp/aspnetcore.mvc.ui.theme.shared" "~8.3.1" + +"@abp/aspnetcore.mvc.ui.theme.shared@~8.3.1": + version "8.3.1" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-8.3.1.tgz#ab58e22315da663fe0b5ec52b5a612135e04b1d6" + integrity sha512-Qlp41ca5ppz7DE5Awpir6hpuEZ8m1Mi7PIARJAqHgK4hLMlBfEcxwEOs6zk2yVAYEhh2hqSchwS5L1rjzqiIfQ== + dependencies: + "@abp/aspnetcore.mvc.ui" "~8.3.1" + "@abp/bootstrap" "~8.3.1" + "@abp/bootstrap-datepicker" "~8.3.1" + "@abp/bootstrap-daterangepicker" "~8.3.1" + "@abp/datatables.net-bs5" "~8.3.1" + "@abp/font-awesome" "~8.3.1" + "@abp/jquery-form" "~8.3.1" + "@abp/jquery-validation-unobtrusive" "~8.3.1" + "@abp/lodash" "~8.3.1" + "@abp/luxon" "~8.3.1" + "@abp/malihu-custom-scrollbar-plugin" "~8.3.1" + "@abp/moment" "~8.3.1" + "@abp/select2" "~8.3.1" + "@abp/sweetalert2" "~8.3.1" + "@abp/timeago" "~8.3.1" + "@abp/toastr" "~8.3.1" + +"@abp/aspnetcore.mvc.ui@~8.3.1": + version "8.3.1" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-8.3.1.tgz#d45fd58565bbee49ab78a4a230344bd034c7f96d" + integrity sha512-9J2Zk1QFn5AQLMFqp1qztSsSLKMPnhwkNfrJQoY/fyiPpQEu9x0l7u46rmTUnibhRll/FYb9PYsHP9qMiePoBQ== dependencies: ansi-colors "^4.1.3" -"@abp/bootstrap-datepicker@~8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-8.3.0.tgz#8c1bf9efec37b671d8f28b8b1e89c1ac66684267" - integrity sha512-KCwMtm7x+cnKPeNMzhjDJUce0stwu4e57ibmvA6sMf1tmj+yB256O4E2hIDDohiT3vP/zV8HVHX6uATlcmGC9w== +"@abp/bootstrap-datepicker@~8.3.1": + version "8.3.1" + resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-8.3.1.tgz#c08c1688e6e21fcf388fa9b7317c3e5ae23e6c30" + integrity sha512-/JcKeLQFUf7ELiUBEnaE4Rh+2CC9jFqrm8QBjioACvZFU7dZSt1wqsqriLvDmVYq8xOfiQE7h+7dbQgXo/3Jpg== dependencies: bootstrap-datepicker "^1.10.0" -"@abp/bootstrap-daterangepicker@~8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-daterangepicker/-/bootstrap-daterangepicker-8.3.0.tgz#2b8ed978333502677916f88cbb3e1d1b1c8a3a17" - integrity sha512-uQSfuCQogl4BujdqvtdAoSE+z32ci8FT5+i3gLfpqbgTaxvY/Kv5NxAUH5/1sjnuAE7SMWO+eVvI3V0pXgQohg== +"@abp/bootstrap-daterangepicker@~8.3.1": + version "8.3.1" + resolved "https://registry.yarnpkg.com/@abp/bootstrap-daterangepicker/-/bootstrap-daterangepicker-8.3.1.tgz#8668a755968f55b6cc5eccf9d8fa8e77f2580746" + integrity sha512-4YCFDM1t8Eckp2cMjdM1qvd0g4O8tKwvQqO9ZeOkCik0SiUEvjHGvOhOlaOeg5sUkinXLG4wZ+8UiMHgtGfh7A== dependencies: bootstrap-daterangepicker "^3.1.0" -"@abp/bootstrap@~8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-8.3.0.tgz#96d6ea7e6ac30f6e34e495a4224f56f7b2a1a7a3" - integrity sha512-5AmdTtakmWhZmHrb7ibvvf+KwF9OGadpAe7Kv9mNEE02K2qkp7Xw4r5o/bgVl7YfLC1FA6GZZXrV2s2t0gjHtg== +"@abp/bootstrap@~8.3.1": + version "8.3.1" + resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-8.3.1.tgz#df7b0d99bd17049a9f7c52a018ef079ce9656829" + integrity sha512-DOFrIawWNTZQ/Mv7m9Mo20Kr9PeErke81xGzba3toR3Bn8jXRVUYk+ofarwceDTck53C6V1TCmgsRF3ecRrVgw== dependencies: - "@abp/core" "~8.3.0" + "@abp/core" "~8.3.1" bootstrap "^5.3.3" -"@abp/core@~8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@abp/core/-/core-8.3.0.tgz#3a68f5a9549efcc3e13500e301f2576751b51445" - integrity sha512-zrxnZi4qij/Y4AZWaXuPqs3Dd7gBtU/onX7FkYxLgQDxYBfx+84QAnPRNRFKMWaD/wKbTUB0wA66U3t2aiQX9Q== +"@abp/core@~8.3.1": + version "8.3.1" + resolved "https://registry.yarnpkg.com/@abp/core/-/core-8.3.1.tgz#1f2d5f5c55fcf0aafb1e4522e4d2a1f4d1ba679c" + integrity sha512-FtMhlHosvcSnEOYJiTgjbZ59+KB4NfhTPAk2l+X7MWIxGP+OLKFlTwd/OZBLtZ1c6r1Vzgaa7jnXJQvpQawqWQ== dependencies: - "@abp/utils" "~8.3.0" + "@abp/utils" "~8.3.1" -"@abp/datatables.net-bs5@~8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs5/-/datatables.net-bs5-8.3.0.tgz#21822ae4912a561afe9112925185aece03fcd0eb" - integrity sha512-GOGYSSHp3iPUDFRX2Y3C0wkiCOJDuYuK/zUSzQLNpOvBMZO+I/oWBcZM+qkVowIzsoRlAGV9+CVV2B/B05qidA== +"@abp/datatables.net-bs5@~8.3.1": + version "8.3.1" + resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs5/-/datatables.net-bs5-8.3.1.tgz#3522e949b66f7109f04d8367a0d61a663f36f6b0" + integrity sha512-rQw1DsZG8ir3OzNZrOJVpSwqu3I+CoOuEAvLr6xPJ1U9QszE4lqlciSR/pkDiFE/Ccau0KwuxGqbPjNvInshpA== dependencies: - "@abp/datatables.net" "~8.3.0" + "@abp/datatables.net" "~8.3.1" datatables.net-bs5 "^2.0.8" -"@abp/datatables.net@~8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-8.3.0.tgz#ff697758ce9309ba8311f23aec921c4722588c8b" - integrity sha512-4dIdv7eN1tVouOUrlF+MIdg8zQpecyH61waqLgy1q5jMZQivrTSFZ7UWMG3WVOAYjw5zSUZHZPbzA+ttnaOPkg== +"@abp/datatables.net@~8.3.1": + version "8.3.1" + resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-8.3.1.tgz#8bb3889b0267006fc4626afcb482ff34e60f4871" + integrity sha512-xxz4sKZmw2ZryTRoCzS66X5536Lg6XLCMDQzLHSbNQiIedEkvSEQtYKBcEYmh1U+nVX10S3nTk1YNSi8AqqYlg== dependencies: - "@abp/jquery" "~8.3.0" + "@abp/jquery" "~8.3.1" datatables.net "^2.0.8" -"@abp/font-awesome@~8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-8.3.0.tgz#9e4e9adc08dfca52c0a07d1608c5e5662675a4c9" - integrity sha512-NRxvM/dzvQC2Cj/F5i07XB/i6IVTmXcO9sOq6TWosWib0wGaPxRbCSjy8QUAYSD1QYaVQ30XMb3XXImaMGyd8A== +"@abp/font-awesome@~8.3.1": + version "8.3.1" + resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-8.3.1.tgz#b22ea61efbecfff0f0c088fd23ff4a46f0f9661d" + integrity sha512-JiEFfX6ArYjNAgxT42VgmPpkMbHo0TFaItFMFTx8kuFaO2KJS7c/5YVLJr3y3fylaF1d1HPtI/S3U8gF12quXA== dependencies: - "@abp/core" "~8.3.0" + "@abp/core" "~8.3.1" "@fortawesome/fontawesome-free" "^6.5.2" -"@abp/jquery-form@~8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-8.3.0.tgz#fa2ad2fedbe3d3528ee94cbbd4f94d48f0cb5e4d" - integrity sha512-olP9FmpNVTbOIewsVua0moHVYXw4Sl3chFbvTDLG6vRBohLSjllUXfgY3UEIVWR1PCqnAg+iEJZl9NHB9iOLBg== +"@abp/jquery-form@~8.3.1": + version "8.3.1" + resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-8.3.1.tgz#ba4e506aa5539d4fa7b8648aa42ed9f4605ba974" + integrity sha512-MvVYY9Je9ovHMpVkUyWbxbJcOrjyP8wbfV8EJoC9ktgIrNikP6JlDstleaRgAsoewoGpPxqSWGbOHCU6SoMUXw== dependencies: - "@abp/jquery" "~8.3.0" + "@abp/jquery" "~8.3.1" jquery-form "^4.3.0" -"@abp/jquery-validation-unobtrusive@~8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-8.3.0.tgz#0992cdd33170df83c79aa3371038c0b30e451521" - integrity sha512-9hidjq8x8sTnP5O3K2b2x9NpxvPd9WB03ENR6OfvM89kfSmQapSvBZTlCu80YK9NaQJ6MLQRLYOCuc3GHcj3EQ== +"@abp/jquery-validation-unobtrusive@~8.3.1": + version "8.3.1" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-8.3.1.tgz#bfb92f7fafc931b7a31542df3d18322c15ff9ca2" + integrity sha512-p6so0T3qyfObKi7wCj+TbyZUNIWdQMR2KgSUDKvN1zQOoDXz2GPZJS/h0LD5sMn3OPI9xSxHixlqcZwi61k1pg== dependencies: - "@abp/jquery-validation" "~8.3.0" + "@abp/jquery-validation" "~8.3.1" jquery-validation-unobtrusive "^4.0.0" -"@abp/jquery-validation@~8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-8.3.0.tgz#bd6a72c6d86f116abe3b5d2adf3752bdbbcca887" - integrity sha512-6l5BZSa3N0Fou6Se7MfUSnI2dD4SYhZ2V988bgPJQ6p37XBOZ2OAj7LEIf5FSjtUzXjao/6/vqjkPNYreNikig== +"@abp/jquery-validation@~8.3.1": + version "8.3.1" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-8.3.1.tgz#2a237e24c38da4896bcefe8e532dcff701671c1f" + integrity sha512-5+5kJjXw+smRDmbKjimIhk+E3J8UEe23smPwW+Yc7240KBRGO9YYnhrym8CnYHCnkegnW29YWmHO6FVKp/mSxA== dependencies: - "@abp/jquery" "~8.3.0" + "@abp/jquery" "~8.3.1" jquery-validation "^1.20.1" -"@abp/jquery@~8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-8.3.0.tgz#9be5ef2f769680226e6a1a981026590caf3b57ef" - integrity sha512-GsFY+n3EtS6B0pAoKd+xMnt5Dzi5bHvIbhLgDgfQfOBzAy3twGRWsPQ3nkuXXm8TppwujMNowU1oiLKPPm0AOA== +"@abp/jquery@~8.3.1": + version "8.3.1" + resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-8.3.1.tgz#e515f25498821df1a53d6329c6bc3d44abe58c2d" + integrity sha512-o3Jj1oz68mR5kW/xdpW26rK6zPJzSCzU/QnJjEVYExXGISp4GS355eJVsOlJ/dJNhiRnBcYfApx8Zm+9eltOIw== dependencies: - "@abp/core" "~8.3.0" + "@abp/core" "~8.3.1" jquery "~3.7.1" -"@abp/lodash@~8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-8.3.0.tgz#f5a0a496c999886f2d6999067bfac2e1f0c3969c" - integrity sha512-BiAsONbKR/RKG3WjRaMWVmhNe1ELEsykVq+ogG1Rhk3kwPbvze3TS8k2p0Lu/RC41/BmDUmJ5abg1pUMwkRT8w== +"@abp/lodash@~8.3.1": + version "8.3.1" + resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-8.3.1.tgz#70c1114647401d3ace1096c7e6c9bd36be8d1aa5" + integrity sha512-CaqCSZ2TijQKbIvFZGJBFSGIhBbrXJASW0jKDu6lUuzyfhQe9xayG9P83pQzrVp5GpNwInxuCqXO+qxqALHg0A== dependencies: - "@abp/core" "~8.3.0" + "@abp/core" "~8.3.1" lodash "^4.17.21" -"@abp/luxon@~8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-8.3.0.tgz#7dd3f756be1605506e26f7ac76b80cc082a12d07" - integrity sha512-8gdI5BtXkVp0sFg89QVDe8AvgQ7Qfq4JCqz2PMrKPSATR3H8GD6BCaEYpRp6CNTCjVrQjGZdzKgUyea1D3dHbw== +"@abp/luxon@~8.3.1": + version "8.3.1" + resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-8.3.1.tgz#d827ac81a1bb03a20a50d555c59ad2c24c8a9e9e" + integrity sha512-ovDJoJW0gF2QhUJHhINpYCUFXpC1OKJq55A0AzYbe+Sh7jylEF3NlvwHZuoshySc6MsSetbjRj3oE1b4e0CSyw== dependencies: - "@abp/core" "~8.3.0" + "@abp/core" "~8.3.1" luxon "^3.4.4" -"@abp/malihu-custom-scrollbar-plugin@~8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-8.3.0.tgz#c88c132c3402bbb02054ca7d446051950f87a817" - integrity sha512-nd/mb6LJa6fMxal8PGcIjIRIoZ/UHCd01WDC9YI2H4wGCGx0CA0JyHso5oc/OEzJhUL8ujO/vYm9uLb7YahPtA== +"@abp/malihu-custom-scrollbar-plugin@~8.3.1": + version "8.3.1" + resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-8.3.1.tgz#efd819695fd8e4ee37a77ca3f7fabc51632e3cb3" + integrity sha512-LyMSo90SWCwQT/j/s7i0UvI+pCthdKkWrJXq1Dfvs+/m89016fjOiCk9hCNMkZainoARJyHg9zK82koN/Q6c4A== dependencies: - "@abp/core" "~8.3.0" + "@abp/core" "~8.3.1" malihu-custom-scrollbar-plugin "^3.1.5" -"@abp/moment@~8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@abp/moment/-/moment-8.3.0.tgz#8e4f7a523ab76ef9e4cd96a399560bad38d38d1a" - integrity sha512-LywSsKuQ2GN/Btmle6CcTKa811zbvUWdC+RLQA792K9HyBs6LvN0qRRluEQZgplairRgh2pDOg8tdFlUERkv2w== +"@abp/moment@~8.3.1": + version "8.3.1" + resolved "https://registry.yarnpkg.com/@abp/moment/-/moment-8.3.1.tgz#09938caeefbbb179047b5edd7352828f8dcc8382" + integrity sha512-UEnSyeEzw/LFINfP1zwSxg3Nmx95zMw4f9bOWm2z+FeJofllmwYI4hrG9GhaJCxxV3iy+yK697U2XiBgBu6O2g== dependencies: moment "^2.30.1" -"@abp/select2@~8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-8.3.0.tgz#ef4742fcd345394767f46180f61c6cabbd0b3867" - integrity sha512-bdLt2+ImxxpiZl4HGbYJpdDROQUT7/Z/+8A+6oJNacq3lNekdvufLYgTMxKru6zTbnd9j3HFKMOTE1eRjb9Xqg== +"@abp/select2@~8.3.1": + version "8.3.1" + resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-8.3.1.tgz#56703690adeb715e98c4a0c677f30040a560b588" + integrity sha512-yDDjkmncYJHMz5i438nsHEHZ9pfXm1ACoXhNNPQ8Ji3ZG2jwT76DamVV7zSc8Nd3v/AK5YPVBZeG4+6ZGGnfTw== dependencies: - "@abp/core" "~8.3.0" + "@abp/core" "~8.3.1" select2 "^4.0.13" -"@abp/sweetalert2@~8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-8.3.0.tgz#a63020d57e44f7940817287d3d9676288bfb85aa" - integrity sha512-ooqPM4Z2v2scnMo5l8ycTmp6t/sW4sCsvIkJ4TyM876WLQJaZxJdOao4RQWuU+dVFr9zg8cOwqLH4q7UEiO6ww== +"@abp/sweetalert2@~8.3.1": + version "8.3.1" + resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-8.3.1.tgz#3fd4913b21eec156157b5bdad95a991cf9f3f43d" + integrity sha512-yYLSv28nc6PldM4lAL2Zs+MCdGZnDLJuISzQS35xzfXvM5xKg9dgN1e/+OiYHVWULXIgZUgArUqd6In4smx2+w== dependencies: - "@abp/core" "~8.3.0" + "@abp/core" "~8.3.1" sweetalert2 "^11.3.6" -"@abp/timeago@~8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-8.3.0.tgz#b3b8d6927bf170f77af848bc1925e5ef6835bd55" - integrity sha512-Dd6xaUoF9Bp4F9WJnTsFBqY+Gt++UR7UmLvBZL/dvthkeNCu2I8MUsmshkUUjY0lIXpjZwefUOuyupQrgHXPMg== +"@abp/timeago@~8.3.1": + version "8.3.1" + resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-8.3.1.tgz#18999384ac3eb3636886ae03d5de46fbd1e2a9c1" + integrity sha512-WF8thD6vjc8TAIqjPgpoRZxL2ncwaQVcFnJuEB5sLUkj7ZqmFYNamdCdDsteyprSAb7/KsWDgwWAmGLeH4W3CQ== dependencies: - "@abp/jquery" "~8.3.0" + "@abp/jquery" "~8.3.1" timeago "^1.6.7" -"@abp/toastr@~8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-8.3.0.tgz#e68a2bd8f731e79034594bc2c736f7c66b3df1af" - integrity sha512-aWK/RaX/FmcEKhJLjsw1A0K2c04m2fRJkmo9NwzBCSscy6Msw9IMkqNWLiFDThMU8/qKzq7wq3Vmk/C0IpeAwA== +"@abp/toastr@~8.3.1": + version "8.3.1" + resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-8.3.1.tgz#541f09b905fb89d2c585d080c1bb690f3fa5f5cd" + integrity sha512-Tyz7cgFfD7HS6X4Pr51LIg/b358hAklT/NrfgE2w5G66f6vHXZB+8y/eYDJPaUeLMnuDo3Pw5M034ESKFRF76A== dependencies: - "@abp/jquery" "~8.3.0" + "@abp/jquery" "~8.3.1" toastr "^2.1.4" -"@abp/utils@~8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-8.3.0.tgz#96ae9266ad4d833fd9d723acef7fc85fabf618d9" - integrity sha512-w/XAqza4Z8wBWRoj5uPNKbd1/bE9L/uUWk6EUSBKmljMRryWQBmaPkb1XgvrOMQIbyyF60tUvvipapQLPVh6hw== +"@abp/utils@~8.3.1": + version "8.3.1" + resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-8.3.1.tgz#a0eeefbda6616940beef8376ae56b3809d3dad50" + integrity sha512-kLUll2bGNGb780Z8Bp/U9XfOYDtU1j5h6Fkqr4AqegioS7GqltI5fkpPc0oLeti05C9rJV4ca13Ip+SQ4BY6vw== dependencies: just-compare "^2.3.0" diff --git a/modules/cms-kit/host/Volo.CmsKit.Web.Host/package.json b/modules/cms-kit/host/Volo.CmsKit.Web.Host/package.json index 7dad1fc3e2..a631510c85 100644 --- a/modules/cms-kit/host/Volo.CmsKit.Web.Host/package.json +++ b/modules/cms-kit/host/Volo.CmsKit.Web.Host/package.json @@ -3,6 +3,6 @@ "name": "my-app", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.basic": "~8.3.0" + "@abp/aspnetcore.mvc.ui.theme.basic": "~8.3.1" } } diff --git a/modules/cms-kit/host/Volo.CmsKit.Web.Host/yarn.lock b/modules/cms-kit/host/Volo.CmsKit.Web.Host/yarn.lock index d19b65bc24..2f245ec759 100644 --- a/modules/cms-kit/host/Volo.CmsKit.Web.Host/yarn.lock +++ b/modules/cms-kit/host/Volo.CmsKit.Web.Host/yarn.lock @@ -2,194 +2,194 @@ # yarn lockfile v1 -"@abp/aspnetcore.mvc.ui.theme.basic@~8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-8.3.0.tgz#a2d17eb5da2c3abfad4bcc842cfcda0e58a130a4" - integrity sha512-T2dg7WlvNSrwTCfy5wk4gqiJ/15kIjMGM4wLXIJcMYn60yGY/YeX6Q4A3R/qJzfl4JdgW5rt3GpdKv86y/ADXg== - dependencies: - "@abp/aspnetcore.mvc.ui.theme.shared" "~8.3.0" - -"@abp/aspnetcore.mvc.ui.theme.shared@~8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-8.3.0.tgz#5d6bb5181a62770e9cb967980b77e75c115c5ed7" - integrity sha512-o/0eh8jLS+YJiseTKzzioUz0vNnMFzyoz+mkyA4PlO1gqw2JFhzPhTBZ3cuyV9QlxUfEA8dWAkqAUX6vqiHwkw== - dependencies: - "@abp/aspnetcore.mvc.ui" "~8.3.0" - "@abp/bootstrap" "~8.3.0" - "@abp/bootstrap-datepicker" "~8.3.0" - "@abp/bootstrap-daterangepicker" "~8.3.0" - "@abp/datatables.net-bs5" "~8.3.0" - "@abp/font-awesome" "~8.3.0" - "@abp/jquery-form" "~8.3.0" - "@abp/jquery-validation-unobtrusive" "~8.3.0" - "@abp/lodash" "~8.3.0" - "@abp/luxon" "~8.3.0" - "@abp/malihu-custom-scrollbar-plugin" "~8.3.0" - "@abp/moment" "~8.3.0" - "@abp/select2" "~8.3.0" - "@abp/sweetalert2" "~8.3.0" - "@abp/timeago" "~8.3.0" - "@abp/toastr" "~8.3.0" - -"@abp/aspnetcore.mvc.ui@~8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-8.3.0.tgz#d7ba0539bfcc6661a347dea7f952489010b3e816" - integrity sha512-OxgZhLKiXGFYYpNJ5O/IbhinsniiBPv9586e+1Soar0GckCMIIegJxnJb1Bo1O75blrcK2cIU6LqjRT1FXt2Lw== +"@abp/aspnetcore.mvc.ui.theme.basic@~8.3.1": + version "8.3.1" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-8.3.1.tgz#f3caaf7b2bc4e5dc143b30ea2d09c0895717226f" + integrity sha512-aFu/HLgr3oIJmQIXEUuOKq6x1NMMcvj1tDX3ZTKPSwscxVlJsHo4c+9xrqYr0TlXSkBp9kado1z5dOXsdJ586g== + dependencies: + "@abp/aspnetcore.mvc.ui.theme.shared" "~8.3.1" + +"@abp/aspnetcore.mvc.ui.theme.shared@~8.3.1": + version "8.3.1" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-8.3.1.tgz#ab58e22315da663fe0b5ec52b5a612135e04b1d6" + integrity sha512-Qlp41ca5ppz7DE5Awpir6hpuEZ8m1Mi7PIARJAqHgK4hLMlBfEcxwEOs6zk2yVAYEhh2hqSchwS5L1rjzqiIfQ== + dependencies: + "@abp/aspnetcore.mvc.ui" "~8.3.1" + "@abp/bootstrap" "~8.3.1" + "@abp/bootstrap-datepicker" "~8.3.1" + "@abp/bootstrap-daterangepicker" "~8.3.1" + "@abp/datatables.net-bs5" "~8.3.1" + "@abp/font-awesome" "~8.3.1" + "@abp/jquery-form" "~8.3.1" + "@abp/jquery-validation-unobtrusive" "~8.3.1" + "@abp/lodash" "~8.3.1" + "@abp/luxon" "~8.3.1" + "@abp/malihu-custom-scrollbar-plugin" "~8.3.1" + "@abp/moment" "~8.3.1" + "@abp/select2" "~8.3.1" + "@abp/sweetalert2" "~8.3.1" + "@abp/timeago" "~8.3.1" + "@abp/toastr" "~8.3.1" + +"@abp/aspnetcore.mvc.ui@~8.3.1": + version "8.3.1" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-8.3.1.tgz#d45fd58565bbee49ab78a4a230344bd034c7f96d" + integrity sha512-9J2Zk1QFn5AQLMFqp1qztSsSLKMPnhwkNfrJQoY/fyiPpQEu9x0l7u46rmTUnibhRll/FYb9PYsHP9qMiePoBQ== dependencies: ansi-colors "^4.1.3" -"@abp/bootstrap-datepicker@~8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-8.3.0.tgz#8c1bf9efec37b671d8f28b8b1e89c1ac66684267" - integrity sha512-KCwMtm7x+cnKPeNMzhjDJUce0stwu4e57ibmvA6sMf1tmj+yB256O4E2hIDDohiT3vP/zV8HVHX6uATlcmGC9w== +"@abp/bootstrap-datepicker@~8.3.1": + version "8.3.1" + resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-8.3.1.tgz#c08c1688e6e21fcf388fa9b7317c3e5ae23e6c30" + integrity sha512-/JcKeLQFUf7ELiUBEnaE4Rh+2CC9jFqrm8QBjioACvZFU7dZSt1wqsqriLvDmVYq8xOfiQE7h+7dbQgXo/3Jpg== dependencies: bootstrap-datepicker "^1.10.0" -"@abp/bootstrap-daterangepicker@~8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-daterangepicker/-/bootstrap-daterangepicker-8.3.0.tgz#2b8ed978333502677916f88cbb3e1d1b1c8a3a17" - integrity sha512-uQSfuCQogl4BujdqvtdAoSE+z32ci8FT5+i3gLfpqbgTaxvY/Kv5NxAUH5/1sjnuAE7SMWO+eVvI3V0pXgQohg== +"@abp/bootstrap-daterangepicker@~8.3.1": + version "8.3.1" + resolved "https://registry.yarnpkg.com/@abp/bootstrap-daterangepicker/-/bootstrap-daterangepicker-8.3.1.tgz#8668a755968f55b6cc5eccf9d8fa8e77f2580746" + integrity sha512-4YCFDM1t8Eckp2cMjdM1qvd0g4O8tKwvQqO9ZeOkCik0SiUEvjHGvOhOlaOeg5sUkinXLG4wZ+8UiMHgtGfh7A== dependencies: bootstrap-daterangepicker "^3.1.0" -"@abp/bootstrap@~8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-8.3.0.tgz#96d6ea7e6ac30f6e34e495a4224f56f7b2a1a7a3" - integrity sha512-5AmdTtakmWhZmHrb7ibvvf+KwF9OGadpAe7Kv9mNEE02K2qkp7Xw4r5o/bgVl7YfLC1FA6GZZXrV2s2t0gjHtg== +"@abp/bootstrap@~8.3.1": + version "8.3.1" + resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-8.3.1.tgz#df7b0d99bd17049a9f7c52a018ef079ce9656829" + integrity sha512-DOFrIawWNTZQ/Mv7m9Mo20Kr9PeErke81xGzba3toR3Bn8jXRVUYk+ofarwceDTck53C6V1TCmgsRF3ecRrVgw== dependencies: - "@abp/core" "~8.3.0" + "@abp/core" "~8.3.1" bootstrap "^5.3.3" -"@abp/core@~8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@abp/core/-/core-8.3.0.tgz#3a68f5a9549efcc3e13500e301f2576751b51445" - integrity sha512-zrxnZi4qij/Y4AZWaXuPqs3Dd7gBtU/onX7FkYxLgQDxYBfx+84QAnPRNRFKMWaD/wKbTUB0wA66U3t2aiQX9Q== +"@abp/core@~8.3.1": + version "8.3.1" + resolved "https://registry.yarnpkg.com/@abp/core/-/core-8.3.1.tgz#1f2d5f5c55fcf0aafb1e4522e4d2a1f4d1ba679c" + integrity sha512-FtMhlHosvcSnEOYJiTgjbZ59+KB4NfhTPAk2l+X7MWIxGP+OLKFlTwd/OZBLtZ1c6r1Vzgaa7jnXJQvpQawqWQ== dependencies: - "@abp/utils" "~8.3.0" + "@abp/utils" "~8.3.1" -"@abp/datatables.net-bs5@~8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs5/-/datatables.net-bs5-8.3.0.tgz#21822ae4912a561afe9112925185aece03fcd0eb" - integrity sha512-GOGYSSHp3iPUDFRX2Y3C0wkiCOJDuYuK/zUSzQLNpOvBMZO+I/oWBcZM+qkVowIzsoRlAGV9+CVV2B/B05qidA== +"@abp/datatables.net-bs5@~8.3.1": + version "8.3.1" + resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs5/-/datatables.net-bs5-8.3.1.tgz#3522e949b66f7109f04d8367a0d61a663f36f6b0" + integrity sha512-rQw1DsZG8ir3OzNZrOJVpSwqu3I+CoOuEAvLr6xPJ1U9QszE4lqlciSR/pkDiFE/Ccau0KwuxGqbPjNvInshpA== dependencies: - "@abp/datatables.net" "~8.3.0" + "@abp/datatables.net" "~8.3.1" datatables.net-bs5 "^2.0.8" -"@abp/datatables.net@~8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-8.3.0.tgz#ff697758ce9309ba8311f23aec921c4722588c8b" - integrity sha512-4dIdv7eN1tVouOUrlF+MIdg8zQpecyH61waqLgy1q5jMZQivrTSFZ7UWMG3WVOAYjw5zSUZHZPbzA+ttnaOPkg== +"@abp/datatables.net@~8.3.1": + version "8.3.1" + resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-8.3.1.tgz#8bb3889b0267006fc4626afcb482ff34e60f4871" + integrity sha512-xxz4sKZmw2ZryTRoCzS66X5536Lg6XLCMDQzLHSbNQiIedEkvSEQtYKBcEYmh1U+nVX10S3nTk1YNSi8AqqYlg== dependencies: - "@abp/jquery" "~8.3.0" + "@abp/jquery" "~8.3.1" datatables.net "^2.0.8" -"@abp/font-awesome@~8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-8.3.0.tgz#9e4e9adc08dfca52c0a07d1608c5e5662675a4c9" - integrity sha512-NRxvM/dzvQC2Cj/F5i07XB/i6IVTmXcO9sOq6TWosWib0wGaPxRbCSjy8QUAYSD1QYaVQ30XMb3XXImaMGyd8A== +"@abp/font-awesome@~8.3.1": + version "8.3.1" + resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-8.3.1.tgz#b22ea61efbecfff0f0c088fd23ff4a46f0f9661d" + integrity sha512-JiEFfX6ArYjNAgxT42VgmPpkMbHo0TFaItFMFTx8kuFaO2KJS7c/5YVLJr3y3fylaF1d1HPtI/S3U8gF12quXA== dependencies: - "@abp/core" "~8.3.0" + "@abp/core" "~8.3.1" "@fortawesome/fontawesome-free" "^6.5.2" -"@abp/jquery-form@~8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-8.3.0.tgz#fa2ad2fedbe3d3528ee94cbbd4f94d48f0cb5e4d" - integrity sha512-olP9FmpNVTbOIewsVua0moHVYXw4Sl3chFbvTDLG6vRBohLSjllUXfgY3UEIVWR1PCqnAg+iEJZl9NHB9iOLBg== +"@abp/jquery-form@~8.3.1": + version "8.3.1" + resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-8.3.1.tgz#ba4e506aa5539d4fa7b8648aa42ed9f4605ba974" + integrity sha512-MvVYY9Je9ovHMpVkUyWbxbJcOrjyP8wbfV8EJoC9ktgIrNikP6JlDstleaRgAsoewoGpPxqSWGbOHCU6SoMUXw== dependencies: - "@abp/jquery" "~8.3.0" + "@abp/jquery" "~8.3.1" jquery-form "^4.3.0" -"@abp/jquery-validation-unobtrusive@~8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-8.3.0.tgz#0992cdd33170df83c79aa3371038c0b30e451521" - integrity sha512-9hidjq8x8sTnP5O3K2b2x9NpxvPd9WB03ENR6OfvM89kfSmQapSvBZTlCu80YK9NaQJ6MLQRLYOCuc3GHcj3EQ== +"@abp/jquery-validation-unobtrusive@~8.3.1": + version "8.3.1" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-8.3.1.tgz#bfb92f7fafc931b7a31542df3d18322c15ff9ca2" + integrity sha512-p6so0T3qyfObKi7wCj+TbyZUNIWdQMR2KgSUDKvN1zQOoDXz2GPZJS/h0LD5sMn3OPI9xSxHixlqcZwi61k1pg== dependencies: - "@abp/jquery-validation" "~8.3.0" + "@abp/jquery-validation" "~8.3.1" jquery-validation-unobtrusive "^4.0.0" -"@abp/jquery-validation@~8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-8.3.0.tgz#bd6a72c6d86f116abe3b5d2adf3752bdbbcca887" - integrity sha512-6l5BZSa3N0Fou6Se7MfUSnI2dD4SYhZ2V988bgPJQ6p37XBOZ2OAj7LEIf5FSjtUzXjao/6/vqjkPNYreNikig== +"@abp/jquery-validation@~8.3.1": + version "8.3.1" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-8.3.1.tgz#2a237e24c38da4896bcefe8e532dcff701671c1f" + integrity sha512-5+5kJjXw+smRDmbKjimIhk+E3J8UEe23smPwW+Yc7240KBRGO9YYnhrym8CnYHCnkegnW29YWmHO6FVKp/mSxA== dependencies: - "@abp/jquery" "~8.3.0" + "@abp/jquery" "~8.3.1" jquery-validation "^1.20.1" -"@abp/jquery@~8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-8.3.0.tgz#9be5ef2f769680226e6a1a981026590caf3b57ef" - integrity sha512-GsFY+n3EtS6B0pAoKd+xMnt5Dzi5bHvIbhLgDgfQfOBzAy3twGRWsPQ3nkuXXm8TppwujMNowU1oiLKPPm0AOA== +"@abp/jquery@~8.3.1": + version "8.3.1" + resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-8.3.1.tgz#e515f25498821df1a53d6329c6bc3d44abe58c2d" + integrity sha512-o3Jj1oz68mR5kW/xdpW26rK6zPJzSCzU/QnJjEVYExXGISp4GS355eJVsOlJ/dJNhiRnBcYfApx8Zm+9eltOIw== dependencies: - "@abp/core" "~8.3.0" + "@abp/core" "~8.3.1" jquery "~3.7.1" -"@abp/lodash@~8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-8.3.0.tgz#f5a0a496c999886f2d6999067bfac2e1f0c3969c" - integrity sha512-BiAsONbKR/RKG3WjRaMWVmhNe1ELEsykVq+ogG1Rhk3kwPbvze3TS8k2p0Lu/RC41/BmDUmJ5abg1pUMwkRT8w== +"@abp/lodash@~8.3.1": + version "8.3.1" + resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-8.3.1.tgz#70c1114647401d3ace1096c7e6c9bd36be8d1aa5" + integrity sha512-CaqCSZ2TijQKbIvFZGJBFSGIhBbrXJASW0jKDu6lUuzyfhQe9xayG9P83pQzrVp5GpNwInxuCqXO+qxqALHg0A== dependencies: - "@abp/core" "~8.3.0" + "@abp/core" "~8.3.1" lodash "^4.17.21" -"@abp/luxon@~8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-8.3.0.tgz#7dd3f756be1605506e26f7ac76b80cc082a12d07" - integrity sha512-8gdI5BtXkVp0sFg89QVDe8AvgQ7Qfq4JCqz2PMrKPSATR3H8GD6BCaEYpRp6CNTCjVrQjGZdzKgUyea1D3dHbw== +"@abp/luxon@~8.3.1": + version "8.3.1" + resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-8.3.1.tgz#d827ac81a1bb03a20a50d555c59ad2c24c8a9e9e" + integrity sha512-ovDJoJW0gF2QhUJHhINpYCUFXpC1OKJq55A0AzYbe+Sh7jylEF3NlvwHZuoshySc6MsSetbjRj3oE1b4e0CSyw== dependencies: - "@abp/core" "~8.3.0" + "@abp/core" "~8.3.1" luxon "^3.4.4" -"@abp/malihu-custom-scrollbar-plugin@~8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-8.3.0.tgz#c88c132c3402bbb02054ca7d446051950f87a817" - integrity sha512-nd/mb6LJa6fMxal8PGcIjIRIoZ/UHCd01WDC9YI2H4wGCGx0CA0JyHso5oc/OEzJhUL8ujO/vYm9uLb7YahPtA== +"@abp/malihu-custom-scrollbar-plugin@~8.3.1": + version "8.3.1" + resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-8.3.1.tgz#efd819695fd8e4ee37a77ca3f7fabc51632e3cb3" + integrity sha512-LyMSo90SWCwQT/j/s7i0UvI+pCthdKkWrJXq1Dfvs+/m89016fjOiCk9hCNMkZainoARJyHg9zK82koN/Q6c4A== dependencies: - "@abp/core" "~8.3.0" + "@abp/core" "~8.3.1" malihu-custom-scrollbar-plugin "^3.1.5" -"@abp/moment@~8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@abp/moment/-/moment-8.3.0.tgz#8e4f7a523ab76ef9e4cd96a399560bad38d38d1a" - integrity sha512-LywSsKuQ2GN/Btmle6CcTKa811zbvUWdC+RLQA792K9HyBs6LvN0qRRluEQZgplairRgh2pDOg8tdFlUERkv2w== +"@abp/moment@~8.3.1": + version "8.3.1" + resolved "https://registry.yarnpkg.com/@abp/moment/-/moment-8.3.1.tgz#09938caeefbbb179047b5edd7352828f8dcc8382" + integrity sha512-UEnSyeEzw/LFINfP1zwSxg3Nmx95zMw4f9bOWm2z+FeJofllmwYI4hrG9GhaJCxxV3iy+yK697U2XiBgBu6O2g== dependencies: moment "^2.30.1" -"@abp/select2@~8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-8.3.0.tgz#ef4742fcd345394767f46180f61c6cabbd0b3867" - integrity sha512-bdLt2+ImxxpiZl4HGbYJpdDROQUT7/Z/+8A+6oJNacq3lNekdvufLYgTMxKru6zTbnd9j3HFKMOTE1eRjb9Xqg== +"@abp/select2@~8.3.1": + version "8.3.1" + resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-8.3.1.tgz#56703690adeb715e98c4a0c677f30040a560b588" + integrity sha512-yDDjkmncYJHMz5i438nsHEHZ9pfXm1ACoXhNNPQ8Ji3ZG2jwT76DamVV7zSc8Nd3v/AK5YPVBZeG4+6ZGGnfTw== dependencies: - "@abp/core" "~8.3.0" + "@abp/core" "~8.3.1" select2 "^4.0.13" -"@abp/sweetalert2@~8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-8.3.0.tgz#a63020d57e44f7940817287d3d9676288bfb85aa" - integrity sha512-ooqPM4Z2v2scnMo5l8ycTmp6t/sW4sCsvIkJ4TyM876WLQJaZxJdOao4RQWuU+dVFr9zg8cOwqLH4q7UEiO6ww== +"@abp/sweetalert2@~8.3.1": + version "8.3.1" + resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-8.3.1.tgz#3fd4913b21eec156157b5bdad95a991cf9f3f43d" + integrity sha512-yYLSv28nc6PldM4lAL2Zs+MCdGZnDLJuISzQS35xzfXvM5xKg9dgN1e/+OiYHVWULXIgZUgArUqd6In4smx2+w== dependencies: - "@abp/core" "~8.3.0" + "@abp/core" "~8.3.1" sweetalert2 "^11.3.6" -"@abp/timeago@~8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-8.3.0.tgz#b3b8d6927bf170f77af848bc1925e5ef6835bd55" - integrity sha512-Dd6xaUoF9Bp4F9WJnTsFBqY+Gt++UR7UmLvBZL/dvthkeNCu2I8MUsmshkUUjY0lIXpjZwefUOuyupQrgHXPMg== +"@abp/timeago@~8.3.1": + version "8.3.1" + resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-8.3.1.tgz#18999384ac3eb3636886ae03d5de46fbd1e2a9c1" + integrity sha512-WF8thD6vjc8TAIqjPgpoRZxL2ncwaQVcFnJuEB5sLUkj7ZqmFYNamdCdDsteyprSAb7/KsWDgwWAmGLeH4W3CQ== dependencies: - "@abp/jquery" "~8.3.0" + "@abp/jquery" "~8.3.1" timeago "^1.6.7" -"@abp/toastr@~8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-8.3.0.tgz#e68a2bd8f731e79034594bc2c736f7c66b3df1af" - integrity sha512-aWK/RaX/FmcEKhJLjsw1A0K2c04m2fRJkmo9NwzBCSscy6Msw9IMkqNWLiFDThMU8/qKzq7wq3Vmk/C0IpeAwA== +"@abp/toastr@~8.3.1": + version "8.3.1" + resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-8.3.1.tgz#541f09b905fb89d2c585d080c1bb690f3fa5f5cd" + integrity sha512-Tyz7cgFfD7HS6X4Pr51LIg/b358hAklT/NrfgE2w5G66f6vHXZB+8y/eYDJPaUeLMnuDo3Pw5M034ESKFRF76A== dependencies: - "@abp/jquery" "~8.3.0" + "@abp/jquery" "~8.3.1" toastr "^2.1.4" -"@abp/utils@~8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-8.3.0.tgz#96ae9266ad4d833fd9d723acef7fc85fabf618d9" - integrity sha512-w/XAqza4Z8wBWRoj5uPNKbd1/bE9L/uUWk6EUSBKmljMRryWQBmaPkb1XgvrOMQIbyyF60tUvvipapQLPVh6hw== +"@abp/utils@~8.3.1": + version "8.3.1" + resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-8.3.1.tgz#a0eeefbda6616940beef8376ae56b3809d3dad50" + integrity sha512-kLUll2bGNGb780Z8Bp/U9XfOYDtU1j5h6Fkqr4AqegioS7GqltI5fkpPc0oLeti05C9rJV4ca13Ip+SQ4BY6vw== dependencies: just-compare "^2.3.0" diff --git a/modules/cms-kit/host/Volo.CmsKit.Web.Unified/package.json b/modules/cms-kit/host/Volo.CmsKit.Web.Unified/package.json index bad9a5bd0d..42009ebe9c 100644 --- a/modules/cms-kit/host/Volo.CmsKit.Web.Unified/package.json +++ b/modules/cms-kit/host/Volo.CmsKit.Web.Unified/package.json @@ -3,7 +3,7 @@ "name": "my-app", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.basic": "~8.3.0", - "@abp/cms-kit": "8.3.0" + "@abp/aspnetcore.mvc.ui.theme.basic": "~8.3.1", + "@abp/cms-kit": "8.3.1" } } diff --git a/modules/cms-kit/host/Volo.CmsKit.Web.Unified/yarn.lock b/modules/cms-kit/host/Volo.CmsKit.Web.Unified/yarn.lock index 2b5adef665..5e51bf83e7 100644 --- a/modules/cms-kit/host/Volo.CmsKit.Web.Unified/yarn.lock +++ b/modules/cms-kit/host/Volo.CmsKit.Web.Unified/yarn.lock @@ -2,302 +2,302 @@ # yarn lockfile v1 -"@abp/aspnetcore.mvc.ui.theme.basic@~8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-8.3.0.tgz#a2d17eb5da2c3abfad4bcc842cfcda0e58a130a4" - integrity sha512-T2dg7WlvNSrwTCfy5wk4gqiJ/15kIjMGM4wLXIJcMYn60yGY/YeX6Q4A3R/qJzfl4JdgW5rt3GpdKv86y/ADXg== - dependencies: - "@abp/aspnetcore.mvc.ui.theme.shared" "~8.3.0" - -"@abp/aspnetcore.mvc.ui.theme.shared@~8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-8.3.0.tgz#5d6bb5181a62770e9cb967980b77e75c115c5ed7" - integrity sha512-o/0eh8jLS+YJiseTKzzioUz0vNnMFzyoz+mkyA4PlO1gqw2JFhzPhTBZ3cuyV9QlxUfEA8dWAkqAUX6vqiHwkw== - dependencies: - "@abp/aspnetcore.mvc.ui" "~8.3.0" - "@abp/bootstrap" "~8.3.0" - "@abp/bootstrap-datepicker" "~8.3.0" - "@abp/bootstrap-daterangepicker" "~8.3.0" - "@abp/datatables.net-bs5" "~8.3.0" - "@abp/font-awesome" "~8.3.0" - "@abp/jquery-form" "~8.3.0" - "@abp/jquery-validation-unobtrusive" "~8.3.0" - "@abp/lodash" "~8.3.0" - "@abp/luxon" "~8.3.0" - "@abp/malihu-custom-scrollbar-plugin" "~8.3.0" - "@abp/moment" "~8.3.0" - "@abp/select2" "~8.3.0" - "@abp/sweetalert2" "~8.3.0" - "@abp/timeago" "~8.3.0" - "@abp/toastr" "~8.3.0" - -"@abp/aspnetcore.mvc.ui@~8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-8.3.0.tgz#d7ba0539bfcc6661a347dea7f952489010b3e816" - integrity sha512-OxgZhLKiXGFYYpNJ5O/IbhinsniiBPv9586e+1Soar0GckCMIIegJxnJb1Bo1O75blrcK2cIU6LqjRT1FXt2Lw== +"@abp/aspnetcore.mvc.ui.theme.basic@~8.3.1": + version "8.3.1" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-8.3.1.tgz#f3caaf7b2bc4e5dc143b30ea2d09c0895717226f" + integrity sha512-aFu/HLgr3oIJmQIXEUuOKq6x1NMMcvj1tDX3ZTKPSwscxVlJsHo4c+9xrqYr0TlXSkBp9kado1z5dOXsdJ586g== + dependencies: + "@abp/aspnetcore.mvc.ui.theme.shared" "~8.3.1" + +"@abp/aspnetcore.mvc.ui.theme.shared@~8.3.1": + version "8.3.1" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-8.3.1.tgz#ab58e22315da663fe0b5ec52b5a612135e04b1d6" + integrity sha512-Qlp41ca5ppz7DE5Awpir6hpuEZ8m1Mi7PIARJAqHgK4hLMlBfEcxwEOs6zk2yVAYEhh2hqSchwS5L1rjzqiIfQ== + dependencies: + "@abp/aspnetcore.mvc.ui" "~8.3.1" + "@abp/bootstrap" "~8.3.1" + "@abp/bootstrap-datepicker" "~8.3.1" + "@abp/bootstrap-daterangepicker" "~8.3.1" + "@abp/datatables.net-bs5" "~8.3.1" + "@abp/font-awesome" "~8.3.1" + "@abp/jquery-form" "~8.3.1" + "@abp/jquery-validation-unobtrusive" "~8.3.1" + "@abp/lodash" "~8.3.1" + "@abp/luxon" "~8.3.1" + "@abp/malihu-custom-scrollbar-plugin" "~8.3.1" + "@abp/moment" "~8.3.1" + "@abp/select2" "~8.3.1" + "@abp/sweetalert2" "~8.3.1" + "@abp/timeago" "~8.3.1" + "@abp/toastr" "~8.3.1" + +"@abp/aspnetcore.mvc.ui@~8.3.1": + version "8.3.1" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-8.3.1.tgz#d45fd58565bbee49ab78a4a230344bd034c7f96d" + integrity sha512-9J2Zk1QFn5AQLMFqp1qztSsSLKMPnhwkNfrJQoY/fyiPpQEu9x0l7u46rmTUnibhRll/FYb9PYsHP9qMiePoBQ== dependencies: ansi-colors "^4.1.3" -"@abp/bootstrap-datepicker@~8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-8.3.0.tgz#8c1bf9efec37b671d8f28b8b1e89c1ac66684267" - integrity sha512-KCwMtm7x+cnKPeNMzhjDJUce0stwu4e57ibmvA6sMf1tmj+yB256O4E2hIDDohiT3vP/zV8HVHX6uATlcmGC9w== +"@abp/bootstrap-datepicker@~8.3.1": + version "8.3.1" + resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-8.3.1.tgz#c08c1688e6e21fcf388fa9b7317c3e5ae23e6c30" + integrity sha512-/JcKeLQFUf7ELiUBEnaE4Rh+2CC9jFqrm8QBjioACvZFU7dZSt1wqsqriLvDmVYq8xOfiQE7h+7dbQgXo/3Jpg== dependencies: bootstrap-datepicker "^1.10.0" -"@abp/bootstrap-daterangepicker@~8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-daterangepicker/-/bootstrap-daterangepicker-8.3.0.tgz#2b8ed978333502677916f88cbb3e1d1b1c8a3a17" - integrity sha512-uQSfuCQogl4BujdqvtdAoSE+z32ci8FT5+i3gLfpqbgTaxvY/Kv5NxAUH5/1sjnuAE7SMWO+eVvI3V0pXgQohg== +"@abp/bootstrap-daterangepicker@~8.3.1": + version "8.3.1" + resolved "https://registry.yarnpkg.com/@abp/bootstrap-daterangepicker/-/bootstrap-daterangepicker-8.3.1.tgz#8668a755968f55b6cc5eccf9d8fa8e77f2580746" + integrity sha512-4YCFDM1t8Eckp2cMjdM1qvd0g4O8tKwvQqO9ZeOkCik0SiUEvjHGvOhOlaOeg5sUkinXLG4wZ+8UiMHgtGfh7A== dependencies: bootstrap-daterangepicker "^3.1.0" -"@abp/bootstrap@~8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-8.3.0.tgz#96d6ea7e6ac30f6e34e495a4224f56f7b2a1a7a3" - integrity sha512-5AmdTtakmWhZmHrb7ibvvf+KwF9OGadpAe7Kv9mNEE02K2qkp7Xw4r5o/bgVl7YfLC1FA6GZZXrV2s2t0gjHtg== +"@abp/bootstrap@~8.3.1": + version "8.3.1" + resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-8.3.1.tgz#df7b0d99bd17049a9f7c52a018ef079ce9656829" + integrity sha512-DOFrIawWNTZQ/Mv7m9Mo20Kr9PeErke81xGzba3toR3Bn8jXRVUYk+ofarwceDTck53C6V1TCmgsRF3ecRrVgw== dependencies: - "@abp/core" "~8.3.0" + "@abp/core" "~8.3.1" bootstrap "^5.3.3" -"@abp/clipboard@~8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@abp/clipboard/-/clipboard-8.3.0.tgz#1b171e533f768cf42c8fc0c9c67fac1c636fee8c" - integrity sha512-T0O4OaMxLLYztAxyvEc3onEOpGHB/C8/jDcvJwd7mgpLoi9zXVfHwpnzkx/egfNJMzp49STD6Jc+jACi8Uq+CQ== +"@abp/clipboard@~8.3.1": + version "8.3.1" + resolved "https://registry.yarnpkg.com/@abp/clipboard/-/clipboard-8.3.1.tgz#f1b63562eeaf5488ed61b06472af134bb29be64b" + integrity sha512-5mvPu2ZQ6kwEF2s/r1fOcXlaj73+1E2XZbwZ12q0CSs0uSCNqc68ur3l3DdpFAszNj7A410sq4rUMkUvZwPsHw== dependencies: - "@abp/core" "~8.3.0" + "@abp/core" "~8.3.1" clipboard "^2.0.11" -"@abp/cms-kit.admin@~8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@abp/cms-kit.admin/-/cms-kit.admin-8.3.0.tgz#9601f8b8e391a1b19b53fa04f0ea7ffb8358ab45" - integrity sha512-Bwk505jNh4bthmSemsvsc2eaSppaUyctHCX2of+ZEwkbB4uc9S4ctbeV9VmeO45AUIm055/GnttfXbMKvte7ng== +"@abp/cms-kit.admin@~8.3.1": + version "8.3.1" + resolved "https://registry.yarnpkg.com/@abp/cms-kit.admin/-/cms-kit.admin-8.3.1.tgz#60ab5b42e36a9e9d650f79276bcdec642e19440f" + integrity sha512-OS8cfT4o9NMdyJRjWI8DZ8f6FE26fFUnmpgNVNS1MLnIzgdO1uKMJBPxXCSqUeyfnOOTU7EagD4LmyKCY8FQfg== dependencies: - "@abp/codemirror" "~8.3.0" - "@abp/jstree" "~8.3.0" - "@abp/markdown-it" "~8.3.0" - "@abp/slugify" "~8.3.0" - "@abp/tui-editor" "~8.3.0" - "@abp/uppy" "~8.3.0" + "@abp/codemirror" "~8.3.1" + "@abp/jstree" "~8.3.1" + "@abp/markdown-it" "~8.3.1" + "@abp/slugify" "~8.3.1" + "@abp/tui-editor" "~8.3.1" + "@abp/uppy" "~8.3.1" -"@abp/cms-kit.public@~8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@abp/cms-kit.public/-/cms-kit.public-8.3.0.tgz#cec3a67e223f951ceb6863ef62b7a487794d7253" - integrity sha512-K8azk9SGEIzE4F+Zcb9tltZezyNP9Yzkq4bDRysv5EAyfa+zNQbyftaA6LcysEhhHbiJ8Gzvtxl93sNUiCluFg== +"@abp/cms-kit.public@~8.3.1": + version "8.3.1" + resolved "https://registry.yarnpkg.com/@abp/cms-kit.public/-/cms-kit.public-8.3.1.tgz#157f25d76ed0ebb27b082818480705f0623e2f49" + integrity sha512-YS8K+JceaYgJKdXXM3z1S3uute/OBLvREss8Ni3Xccq05/T8le8/9tVvBWb4hLX1toevpfM1KCxqwse9K8bulg== dependencies: - "@abp/highlight.js" "~8.3.0" - "@abp/star-rating-svg" "~8.3.0" + "@abp/highlight.js" "~8.3.1" + "@abp/star-rating-svg" "~8.3.1" -"@abp/cms-kit@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@abp/cms-kit/-/cms-kit-8.3.0.tgz#7ac7ebcb43b1633ea337e5e6f5b447ef4e000992" - integrity sha512-XBunhRVZE4cKyTx1L9Ieh3SUw4rn0+GPGHarUmdK4oiK2q3zRZHnmAQ9w0Pb34yNcAlbPVvcqU0zE2lz2k2sSQ== +"@abp/cms-kit@8.3.1": + version "8.3.1" + resolved "https://registry.yarnpkg.com/@abp/cms-kit/-/cms-kit-8.3.1.tgz#13bf087578c0c1c69e83507f218dd554bc06c060" + integrity sha512-dT3nypD+4ZEiyv1/EsS7pH2Uk2tkDTTz/bkWackec4Doir4iw4zpFQbq4ZnS2fJZy0YUcBn862Bjil1bDMOZAQ== dependencies: - "@abp/cms-kit.admin" "~8.3.0" - "@abp/cms-kit.public" "~8.3.0" + "@abp/cms-kit.admin" "~8.3.1" + "@abp/cms-kit.public" "~8.3.1" -"@abp/codemirror@~8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@abp/codemirror/-/codemirror-8.3.0.tgz#e5b631154ab9900ba01128b4f8d2d5d16b74566f" - integrity sha512-1Mi9wT/Nl1c7VS4q/OVFilbyhAkUTy+o4WRA1OMvLd9c4pJXflmJk6CT7XODmB38ePp3kygLB7nxvNN+GLu70A== +"@abp/codemirror@~8.3.1": + version "8.3.1" + resolved "https://registry.yarnpkg.com/@abp/codemirror/-/codemirror-8.3.1.tgz#a366f86a8051a88d8ed8b64a2f2262184d03c159" + integrity sha512-YUd0un/pW4gwVkbWxhmLIdpSOrc/3D+VX8AoEOlpxi4crtnXk626pQtsAhjTf/B7TGR9kTxxrwDnVczQR3boIw== dependencies: - "@abp/core" "~8.3.0" + "@abp/core" "~8.3.1" codemirror "^6.0.1" -"@abp/core@~8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@abp/core/-/core-8.3.0.tgz#3a68f5a9549efcc3e13500e301f2576751b51445" - integrity sha512-zrxnZi4qij/Y4AZWaXuPqs3Dd7gBtU/onX7FkYxLgQDxYBfx+84QAnPRNRFKMWaD/wKbTUB0wA66U3t2aiQX9Q== +"@abp/core@~8.3.1": + version "8.3.1" + resolved "https://registry.yarnpkg.com/@abp/core/-/core-8.3.1.tgz#1f2d5f5c55fcf0aafb1e4522e4d2a1f4d1ba679c" + integrity sha512-FtMhlHosvcSnEOYJiTgjbZ59+KB4NfhTPAk2l+X7MWIxGP+OLKFlTwd/OZBLtZ1c6r1Vzgaa7jnXJQvpQawqWQ== dependencies: - "@abp/utils" "~8.3.0" + "@abp/utils" "~8.3.1" -"@abp/datatables.net-bs5@~8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs5/-/datatables.net-bs5-8.3.0.tgz#21822ae4912a561afe9112925185aece03fcd0eb" - integrity sha512-GOGYSSHp3iPUDFRX2Y3C0wkiCOJDuYuK/zUSzQLNpOvBMZO+I/oWBcZM+qkVowIzsoRlAGV9+CVV2B/B05qidA== +"@abp/datatables.net-bs5@~8.3.1": + version "8.3.1" + resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs5/-/datatables.net-bs5-8.3.1.tgz#3522e949b66f7109f04d8367a0d61a663f36f6b0" + integrity sha512-rQw1DsZG8ir3OzNZrOJVpSwqu3I+CoOuEAvLr6xPJ1U9QszE4lqlciSR/pkDiFE/Ccau0KwuxGqbPjNvInshpA== dependencies: - "@abp/datatables.net" "~8.3.0" + "@abp/datatables.net" "~8.3.1" datatables.net-bs5 "^2.0.8" -"@abp/datatables.net@~8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-8.3.0.tgz#ff697758ce9309ba8311f23aec921c4722588c8b" - integrity sha512-4dIdv7eN1tVouOUrlF+MIdg8zQpecyH61waqLgy1q5jMZQivrTSFZ7UWMG3WVOAYjw5zSUZHZPbzA+ttnaOPkg== +"@abp/datatables.net@~8.3.1": + version "8.3.1" + resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-8.3.1.tgz#8bb3889b0267006fc4626afcb482ff34e60f4871" + integrity sha512-xxz4sKZmw2ZryTRoCzS66X5536Lg6XLCMDQzLHSbNQiIedEkvSEQtYKBcEYmh1U+nVX10S3nTk1YNSi8AqqYlg== dependencies: - "@abp/jquery" "~8.3.0" + "@abp/jquery" "~8.3.1" datatables.net "^2.0.8" -"@abp/font-awesome@~8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-8.3.0.tgz#9e4e9adc08dfca52c0a07d1608c5e5662675a4c9" - integrity sha512-NRxvM/dzvQC2Cj/F5i07XB/i6IVTmXcO9sOq6TWosWib0wGaPxRbCSjy8QUAYSD1QYaVQ30XMb3XXImaMGyd8A== +"@abp/font-awesome@~8.3.1": + version "8.3.1" + resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-8.3.1.tgz#b22ea61efbecfff0f0c088fd23ff4a46f0f9661d" + integrity sha512-JiEFfX6ArYjNAgxT42VgmPpkMbHo0TFaItFMFTx8kuFaO2KJS7c/5YVLJr3y3fylaF1d1HPtI/S3U8gF12quXA== dependencies: - "@abp/core" "~8.3.0" + "@abp/core" "~8.3.1" "@fortawesome/fontawesome-free" "^6.5.2" -"@abp/highlight.js@~8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@abp/highlight.js/-/highlight.js-8.3.0.tgz#fabd11a8ef7cd0e379b4c9b359d66b4aa7585e30" - integrity sha512-SHvGXqQrZGuNmup32FisVHrWCdTJyEzHgp6y8Twx1FaP1e0hSN3QK6Jw4Do600ZKI9n5xCK+kMCpdJau8I6bIg== +"@abp/highlight.js@~8.3.1": + version "8.3.1" + resolved "https://registry.yarnpkg.com/@abp/highlight.js/-/highlight.js-8.3.1.tgz#f5a9c19acdd4c79f7f9208b265ee6da5c4736c4e" + integrity sha512-NsCOHd84+d2eDwG+soVLUYm93htNkIChbzMlBB7UoW2V5OoqX09EisbnNFItsMIIA5OBOC1czoq4eWQAOHvEKQ== dependencies: - "@abp/core" "~8.3.0" + "@abp/core" "~8.3.1" "@highlightjs/cdn-assets" "~11.9.0" -"@abp/jquery-form@~8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-8.3.0.tgz#fa2ad2fedbe3d3528ee94cbbd4f94d48f0cb5e4d" - integrity sha512-olP9FmpNVTbOIewsVua0moHVYXw4Sl3chFbvTDLG6vRBohLSjllUXfgY3UEIVWR1PCqnAg+iEJZl9NHB9iOLBg== +"@abp/jquery-form@~8.3.1": + version "8.3.1" + resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-8.3.1.tgz#ba4e506aa5539d4fa7b8648aa42ed9f4605ba974" + integrity sha512-MvVYY9Je9ovHMpVkUyWbxbJcOrjyP8wbfV8EJoC9ktgIrNikP6JlDstleaRgAsoewoGpPxqSWGbOHCU6SoMUXw== dependencies: - "@abp/jquery" "~8.3.0" + "@abp/jquery" "~8.3.1" jquery-form "^4.3.0" -"@abp/jquery-validation-unobtrusive@~8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-8.3.0.tgz#0992cdd33170df83c79aa3371038c0b30e451521" - integrity sha512-9hidjq8x8sTnP5O3K2b2x9NpxvPd9WB03ENR6OfvM89kfSmQapSvBZTlCu80YK9NaQJ6MLQRLYOCuc3GHcj3EQ== +"@abp/jquery-validation-unobtrusive@~8.3.1": + version "8.3.1" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-8.3.1.tgz#bfb92f7fafc931b7a31542df3d18322c15ff9ca2" + integrity sha512-p6so0T3qyfObKi7wCj+TbyZUNIWdQMR2KgSUDKvN1zQOoDXz2GPZJS/h0LD5sMn3OPI9xSxHixlqcZwi61k1pg== dependencies: - "@abp/jquery-validation" "~8.3.0" + "@abp/jquery-validation" "~8.3.1" jquery-validation-unobtrusive "^4.0.0" -"@abp/jquery-validation@~8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-8.3.0.tgz#bd6a72c6d86f116abe3b5d2adf3752bdbbcca887" - integrity sha512-6l5BZSa3N0Fou6Se7MfUSnI2dD4SYhZ2V988bgPJQ6p37XBOZ2OAj7LEIf5FSjtUzXjao/6/vqjkPNYreNikig== +"@abp/jquery-validation@~8.3.1": + version "8.3.1" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-8.3.1.tgz#2a237e24c38da4896bcefe8e532dcff701671c1f" + integrity sha512-5+5kJjXw+smRDmbKjimIhk+E3J8UEe23smPwW+Yc7240KBRGO9YYnhrym8CnYHCnkegnW29YWmHO6FVKp/mSxA== dependencies: - "@abp/jquery" "~8.3.0" + "@abp/jquery" "~8.3.1" jquery-validation "^1.20.1" -"@abp/jquery@~8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-8.3.0.tgz#9be5ef2f769680226e6a1a981026590caf3b57ef" - integrity sha512-GsFY+n3EtS6B0pAoKd+xMnt5Dzi5bHvIbhLgDgfQfOBzAy3twGRWsPQ3nkuXXm8TppwujMNowU1oiLKPPm0AOA== +"@abp/jquery@~8.3.1": + version "8.3.1" + resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-8.3.1.tgz#e515f25498821df1a53d6329c6bc3d44abe58c2d" + integrity sha512-o3Jj1oz68mR5kW/xdpW26rK6zPJzSCzU/QnJjEVYExXGISp4GS355eJVsOlJ/dJNhiRnBcYfApx8Zm+9eltOIw== dependencies: - "@abp/core" "~8.3.0" + "@abp/core" "~8.3.1" jquery "~3.7.1" -"@abp/jstree@~8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@abp/jstree/-/jstree-8.3.0.tgz#48054d14cd2f5ad255e5ddfb11facfae5902256a" - integrity sha512-9+0cLxIPo1pZJvYsmvo/lWWDI/yH2e9p7iQg/QukQsavvfZ/QNTDweCTI4o407lu66s6921UEZ+KnozvFvuAfg== +"@abp/jstree@~8.3.1": + version "8.3.1" + resolved "https://registry.yarnpkg.com/@abp/jstree/-/jstree-8.3.1.tgz#b643f601a482261fdbe339ab9d503a95d0054190" + integrity sha512-xx0RFD+uZdHBIVa76zgTvZdzQEpH3gjy/FoTL9DUxJDrl3yazg+jtpVbww81D6UtUBJ+YNdjUk4TZrL9c11VDw== dependencies: - "@abp/jquery" "~8.3.0" + "@abp/jquery" "~8.3.1" jstree "^3.3.16" -"@abp/lodash@~8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-8.3.0.tgz#f5a0a496c999886f2d6999067bfac2e1f0c3969c" - integrity sha512-BiAsONbKR/RKG3WjRaMWVmhNe1ELEsykVq+ogG1Rhk3kwPbvze3TS8k2p0Lu/RC41/BmDUmJ5abg1pUMwkRT8w== +"@abp/lodash@~8.3.1": + version "8.3.1" + resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-8.3.1.tgz#70c1114647401d3ace1096c7e6c9bd36be8d1aa5" + integrity sha512-CaqCSZ2TijQKbIvFZGJBFSGIhBbrXJASW0jKDu6lUuzyfhQe9xayG9P83pQzrVp5GpNwInxuCqXO+qxqALHg0A== dependencies: - "@abp/core" "~8.3.0" + "@abp/core" "~8.3.1" lodash "^4.17.21" -"@abp/luxon@~8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-8.3.0.tgz#7dd3f756be1605506e26f7ac76b80cc082a12d07" - integrity sha512-8gdI5BtXkVp0sFg89QVDe8AvgQ7Qfq4JCqz2PMrKPSATR3H8GD6BCaEYpRp6CNTCjVrQjGZdzKgUyea1D3dHbw== +"@abp/luxon@~8.3.1": + version "8.3.1" + resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-8.3.1.tgz#d827ac81a1bb03a20a50d555c59ad2c24c8a9e9e" + integrity sha512-ovDJoJW0gF2QhUJHhINpYCUFXpC1OKJq55A0AzYbe+Sh7jylEF3NlvwHZuoshySc6MsSetbjRj3oE1b4e0CSyw== dependencies: - "@abp/core" "~8.3.0" + "@abp/core" "~8.3.1" luxon "^3.4.4" -"@abp/malihu-custom-scrollbar-plugin@~8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-8.3.0.tgz#c88c132c3402bbb02054ca7d446051950f87a817" - integrity sha512-nd/mb6LJa6fMxal8PGcIjIRIoZ/UHCd01WDC9YI2H4wGCGx0CA0JyHso5oc/OEzJhUL8ujO/vYm9uLb7YahPtA== +"@abp/malihu-custom-scrollbar-plugin@~8.3.1": + version "8.3.1" + resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-8.3.1.tgz#efd819695fd8e4ee37a77ca3f7fabc51632e3cb3" + integrity sha512-LyMSo90SWCwQT/j/s7i0UvI+pCthdKkWrJXq1Dfvs+/m89016fjOiCk9hCNMkZainoARJyHg9zK82koN/Q6c4A== dependencies: - "@abp/core" "~8.3.0" + "@abp/core" "~8.3.1" malihu-custom-scrollbar-plugin "^3.1.5" -"@abp/markdown-it@~8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@abp/markdown-it/-/markdown-it-8.3.0.tgz#d8ca44d277dbce804b2240371cbd4d01e7bfeb55" - integrity sha512-hrwh1M/KbOmZ826EbllU/bQFcQq+YskZMpKTIDhPj8FQTXsOIjsvlcNjaBcSCGwE3hHyiUG8h3qw1VjjTE/PmA== +"@abp/markdown-it@~8.3.1": + version "8.3.1" + resolved "https://registry.yarnpkg.com/@abp/markdown-it/-/markdown-it-8.3.1.tgz#b00001fd2691730b4070ac691c1d0adc0150a61c" + integrity sha512-+EUF0sohNstzqcV4OYJvu3T7Duk1tOiVeS6Fp6jYFFpysMs3K5JIzFXyCIqDIVuOxIpQ0AhQEuSx6IpXl9MHzw== dependencies: - "@abp/core" "~8.3.0" + "@abp/core" "~8.3.1" markdown-it "^14.1.0" -"@abp/moment@~8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@abp/moment/-/moment-8.3.0.tgz#8e4f7a523ab76ef9e4cd96a399560bad38d38d1a" - integrity sha512-LywSsKuQ2GN/Btmle6CcTKa811zbvUWdC+RLQA792K9HyBs6LvN0qRRluEQZgplairRgh2pDOg8tdFlUERkv2w== +"@abp/moment@~8.3.1": + version "8.3.1" + resolved "https://registry.yarnpkg.com/@abp/moment/-/moment-8.3.1.tgz#09938caeefbbb179047b5edd7352828f8dcc8382" + integrity sha512-UEnSyeEzw/LFINfP1zwSxg3Nmx95zMw4f9bOWm2z+FeJofllmwYI4hrG9GhaJCxxV3iy+yK697U2XiBgBu6O2g== dependencies: moment "^2.30.1" -"@abp/prismjs@~8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@abp/prismjs/-/prismjs-8.3.0.tgz#0c87c63294d1452ed7152083d2fb6e70aa3aeae6" - integrity sha512-3wpwbqqlGRfQSLcBP+Qb2TKOoVGZVYYwOP6dP3So9ev8J5gFMDEizH9zLwRVHYrrsZZP8/etYnyZ0hn7ewuI5Q== +"@abp/prismjs@~8.3.1": + version "8.3.1" + resolved "https://registry.yarnpkg.com/@abp/prismjs/-/prismjs-8.3.1.tgz#e8bb9072439c0aee6bf16b351dcaea850ae13a73" + integrity sha512-WQPC4Iyr1fweoimey1xp1rZXzEsciFZloYn9rH9Hu7Bivkag2kpgx86jAGWNzMf9jo3XWo1wQHLKEtpC4kqImQ== dependencies: - "@abp/clipboard" "~8.3.0" - "@abp/core" "~8.3.0" + "@abp/clipboard" "~8.3.1" + "@abp/core" "~8.3.1" prismjs "^1.29.0" -"@abp/select2@~8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-8.3.0.tgz#ef4742fcd345394767f46180f61c6cabbd0b3867" - integrity sha512-bdLt2+ImxxpiZl4HGbYJpdDROQUT7/Z/+8A+6oJNacq3lNekdvufLYgTMxKru6zTbnd9j3HFKMOTE1eRjb9Xqg== +"@abp/select2@~8.3.1": + version "8.3.1" + resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-8.3.1.tgz#56703690adeb715e98c4a0c677f30040a560b588" + integrity sha512-yDDjkmncYJHMz5i438nsHEHZ9pfXm1ACoXhNNPQ8Ji3ZG2jwT76DamVV7zSc8Nd3v/AK5YPVBZeG4+6ZGGnfTw== dependencies: - "@abp/core" "~8.3.0" + "@abp/core" "~8.3.1" select2 "^4.0.13" -"@abp/slugify@~8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@abp/slugify/-/slugify-8.3.0.tgz#ac061a40268437a10defef48045ddce8eb109035" - integrity sha512-YCNg+wiyx2Y+pQesQvsZKQBYj9kVc5041opCFRuwos3IbbHUCtOdzvrc11ZAIAaUOfN5EfGZ2MfVD3v18OH3DQ== +"@abp/slugify@~8.3.1": + version "8.3.1" + resolved "https://registry.yarnpkg.com/@abp/slugify/-/slugify-8.3.1.tgz#52c07f81962983cefd8566eec86e2ffefc4a4148" + integrity sha512-0uPmmOfqL54tFQVrGcxhRcY2XFJHBkCOGzfqO6xqvxxQFOl2o/tIvNdQECnEYFiIGBL3wK9cJZfntDdopT737w== dependencies: slugify "^1.6.6" -"@abp/star-rating-svg@~8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@abp/star-rating-svg/-/star-rating-svg-8.3.0.tgz#5a8d62eca5158a4bc9f827a610db5c93e6fc9e78" - integrity sha512-W7ds+IYw45M+HNVBPSBMH7Tn7edrxQ+elUgE8eEYdz9MzYoGxwIW97lzwDjr30LMR45+ITzcc6v8GwwF4jSR6w== +"@abp/star-rating-svg@~8.3.1": + version "8.3.1" + resolved "https://registry.yarnpkg.com/@abp/star-rating-svg/-/star-rating-svg-8.3.1.tgz#82bf1c93a461f45be986e96417c7e8c1d321b7bc" + integrity sha512-RD/A1aYTb+/8d+Z/g7SsHsoZV6FIQ7Lz1Q3gHpE2R95DyLNxm3PEde/xRHCq9mE1dpO7sQtGL81uQwTyyUOIYg== dependencies: - "@abp/jquery" "~8.3.0" + "@abp/jquery" "~8.3.1" star-rating-svg "^3.5.0" -"@abp/sweetalert2@~8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-8.3.0.tgz#a63020d57e44f7940817287d3d9676288bfb85aa" - integrity sha512-ooqPM4Z2v2scnMo5l8ycTmp6t/sW4sCsvIkJ4TyM876WLQJaZxJdOao4RQWuU+dVFr9zg8cOwqLH4q7UEiO6ww== +"@abp/sweetalert2@~8.3.1": + version "8.3.1" + resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-8.3.1.tgz#3fd4913b21eec156157b5bdad95a991cf9f3f43d" + integrity sha512-yYLSv28nc6PldM4lAL2Zs+MCdGZnDLJuISzQS35xzfXvM5xKg9dgN1e/+OiYHVWULXIgZUgArUqd6In4smx2+w== dependencies: - "@abp/core" "~8.3.0" + "@abp/core" "~8.3.1" sweetalert2 "^11.3.6" -"@abp/timeago@~8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-8.3.0.tgz#b3b8d6927bf170f77af848bc1925e5ef6835bd55" - integrity sha512-Dd6xaUoF9Bp4F9WJnTsFBqY+Gt++UR7UmLvBZL/dvthkeNCu2I8MUsmshkUUjY0lIXpjZwefUOuyupQrgHXPMg== +"@abp/timeago@~8.3.1": + version "8.3.1" + resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-8.3.1.tgz#18999384ac3eb3636886ae03d5de46fbd1e2a9c1" + integrity sha512-WF8thD6vjc8TAIqjPgpoRZxL2ncwaQVcFnJuEB5sLUkj7ZqmFYNamdCdDsteyprSAb7/KsWDgwWAmGLeH4W3CQ== dependencies: - "@abp/jquery" "~8.3.0" + "@abp/jquery" "~8.3.1" timeago "^1.6.7" -"@abp/toastr@~8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-8.3.0.tgz#e68a2bd8f731e79034594bc2c736f7c66b3df1af" - integrity sha512-aWK/RaX/FmcEKhJLjsw1A0K2c04m2fRJkmo9NwzBCSscy6Msw9IMkqNWLiFDThMU8/qKzq7wq3Vmk/C0IpeAwA== +"@abp/toastr@~8.3.1": + version "8.3.1" + resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-8.3.1.tgz#541f09b905fb89d2c585d080c1bb690f3fa5f5cd" + integrity sha512-Tyz7cgFfD7HS6X4Pr51LIg/b358hAklT/NrfgE2w5G66f6vHXZB+8y/eYDJPaUeLMnuDo3Pw5M034ESKFRF76A== dependencies: - "@abp/jquery" "~8.3.0" + "@abp/jquery" "~8.3.1" toastr "^2.1.4" -"@abp/tui-editor@~8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@abp/tui-editor/-/tui-editor-8.3.0.tgz#188360644140f3173b0347c1ce883612a5eb9e18" - integrity sha512-GNFuKvAlwihuzg91dekGZ5s5aLKySROHbLujanzaco1nfRvWehx+J+oCP0rHzQ3++DpxEXhlz05qW9I1gCEAKA== +"@abp/tui-editor@~8.3.1": + version "8.3.1" + resolved "https://registry.yarnpkg.com/@abp/tui-editor/-/tui-editor-8.3.1.tgz#af6a842ead42226d2d1aa9b15c01d3d895606779" + integrity sha512-RwzyTd6XC26VHcediUfDOXRsv0dpxOm6wLW+eIK6BYz4T2DFd7ZfON24IA2grIpctWfeC1VGL9LLWx17XiCrdA== dependencies: - "@abp/jquery" "~8.3.0" - "@abp/prismjs" "~8.3.0" + "@abp/jquery" "~8.3.1" + "@abp/prismjs" "~8.3.1" -"@abp/uppy@~8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@abp/uppy/-/uppy-8.3.0.tgz#4b19ae7ed431276415195c19e94a24841232a7aa" - integrity sha512-ob9dVKxCnnxP3VarSIivx5++7KzKpUGA8qFI+tOpTiL2uPI71ERo4neOnCC1USa03bWDEo24cLWz3/CNGVIWrA== +"@abp/uppy@~8.3.1": + version "8.3.1" + resolved "https://registry.yarnpkg.com/@abp/uppy/-/uppy-8.3.1.tgz#095ac49ae65e6d2e6abb76870013546509af60dc" + integrity sha512-Od/acopdRmHmblqCpJy3boekW3x6VCZw1QAEaBs+D9/nOO9IqU7UPd2Bi0vzEyvQgFJMTF6t8BEk1qUI2V6NXQ== dependencies: - "@abp/core" "~8.3.0" + "@abp/core" "~8.3.1" uppy "^3.27.0" -"@abp/utils@~8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-8.3.0.tgz#96ae9266ad4d833fd9d723acef7fc85fabf618d9" - integrity sha512-w/XAqza4Z8wBWRoj5uPNKbd1/bE9L/uUWk6EUSBKmljMRryWQBmaPkb1XgvrOMQIbyyF60tUvvipapQLPVh6hw== +"@abp/utils@~8.3.1": + version "8.3.1" + resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-8.3.1.tgz#a0eeefbda6616940beef8376ae56b3809d3dad50" + integrity sha512-kLUll2bGNGb780Z8Bp/U9XfOYDtU1j5h6Fkqr4AqegioS7GqltI5fkpPc0oLeti05C9rJV4ca13Ip+SQ4BY6vw== dependencies: just-compare "^2.3.0" diff --git a/modules/cms-kit/src/Volo.CmsKit.Public.Application.Contracts/Volo/CmsKit/Public/Comments/CommentDto.cs b/modules/cms-kit/src/Volo.CmsKit.Public.Application.Contracts/Volo/CmsKit/Public/Comments/CommentDto.cs index 9199458c87..dc68256f8a 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Public.Application.Contracts/Volo/CmsKit/Public/Comments/CommentDto.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Public.Application.Contracts/Volo/CmsKit/Public/Comments/CommentDto.cs @@ -21,7 +21,7 @@ public class CommentDto : ExtensibleObject, IHasConcurrencyStamp public DateTime CreationTime { get; set; } - public CmsUserDto Author { get; set; } //TODO: Should only have AuthorId for the basic dto. see https://docs.abp.io/en/abp/latest/Best-Practices/Application-Services + public CmsUserDto Author { get; set; } //TODO: Should only have AuthorId for the basic dto. see https://abp.io/docs/latest/framework/architecture/best-practices/application-services public string ConcurrencyStamp { get; set; } diff --git a/modules/cms-kit/test/Volo.CmsKit.Application.Tests/Comments/CommentPublicAppService_Tests.cs b/modules/cms-kit/test/Volo.CmsKit.Application.Tests/Comments/CommentPublicAppService_Tests.cs index d01fc295cf..e260e3debe 100644 --- a/modules/cms-kit/test/Volo.CmsKit.Application.Tests/Comments/CommentPublicAppService_Tests.cs +++ b/modules/cms-kit/test/Volo.CmsKit.Application.Tests/Comments/CommentPublicAppService_Tests.cs @@ -84,8 +84,8 @@ public class CommentPublicAppService_Tests : CmsKitApplicationTestBase } [Theory] - [InlineData("[ABP Community](https://community.abp.io/)")] - [InlineData("docs.abp.io")] + [InlineData("[ABP Community](https://abp.io/community/)")] + [InlineData("abp.io/docs")] public async Task CreateAsync_ShouldThrowUserFriendlyException_If_Url_UnAllowed(string text) { _currentUser.Id.Returns(_cmsKitTestData.User2Id); @@ -150,7 +150,7 @@ public class CommentPublicAppService_Tests : CmsKitApplicationTestBase _cmsKitTestData.CommentWithChildId, new UpdateCommentInput { - Text = "[ABP Community - Update](https://community.abp.io/)", //not allowed URL + Text = "[ABP Community - Update](https://abp.io/community/)", //not allowed URL } )); } diff --git a/modules/docs/app/VoloDocs.Web/Pages/Index.cshtml b/modules/docs/app/VoloDocs.Web/Pages/Index.cshtml index 0a212f1499..daa4c90a5f 100644 --- a/modules/docs/app/VoloDocs.Web/Pages/Index.cshtml +++ b/modules/docs/app/VoloDocs.Web/Pages/Index.cshtml @@ -7,7 +7,7 @@ { No projects found!
- See documentation to see how you can create a new one. + See documentation to see how you can create a new one.
} else diff --git a/modules/docs/app/VoloDocs.Web/package.json b/modules/docs/app/VoloDocs.Web/package.json index 0eabf0859a..09c69835b1 100644 --- a/modules/docs/app/VoloDocs.Web/package.json +++ b/modules/docs/app/VoloDocs.Web/package.json @@ -3,7 +3,7 @@ "name": "volo.docstestapp", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.basic": "~8.3.0", - "@abp/docs": "~8.3.0" + "@abp/aspnetcore.mvc.ui.theme.basic": "~8.3.1", + "@abp/docs": "~8.3.1" } } diff --git a/modules/docs/app/VoloDocs.Web/yarn.lock b/modules/docs/app/VoloDocs.Web/yarn.lock index 027f4c5064..925e83a3d1 100644 --- a/modules/docs/app/VoloDocs.Web/yarn.lock +++ b/modules/docs/app/VoloDocs.Web/yarn.lock @@ -2,238 +2,238 @@ # yarn lockfile v1 -"@abp/anchor-js@~8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@abp/anchor-js/-/anchor-js-8.3.0.tgz#8dd848c157440ab41fe46e486afa390fae6838b4" - integrity sha512-fugT/x0pdHbE246W3z3qhunRz/SUkEwYU8ANBu8QM/+JgKwyqIl8M82UD3aHCimKQFqadvMo17XGQJsGcSAS/Q== +"@abp/anchor-js@~8.3.1": + version "8.3.1" + resolved "https://registry.yarnpkg.com/@abp/anchor-js/-/anchor-js-8.3.1.tgz#0e82fc51b9f8a1ba7b32db1d785aabe4b5bed5c1" + integrity sha512-hXjSEQkeOusvPqNkrcBX09MT4S4y5Ocqp8/yvYCihOJR1LBLTgri+Ro8GV9VFb0XkIHwAc+FpRmu9m+Z5cPlpg== dependencies: - "@abp/core" "~8.3.0" + "@abp/core" "~8.3.1" anchor-js "^5.0.0" -"@abp/aspnetcore.mvc.ui.theme.basic@~8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-8.3.0.tgz#a2d17eb5da2c3abfad4bcc842cfcda0e58a130a4" - integrity sha512-T2dg7WlvNSrwTCfy5wk4gqiJ/15kIjMGM4wLXIJcMYn60yGY/YeX6Q4A3R/qJzfl4JdgW5rt3GpdKv86y/ADXg== - dependencies: - "@abp/aspnetcore.mvc.ui.theme.shared" "~8.3.0" - -"@abp/aspnetcore.mvc.ui.theme.shared@~8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-8.3.0.tgz#5d6bb5181a62770e9cb967980b77e75c115c5ed7" - integrity sha512-o/0eh8jLS+YJiseTKzzioUz0vNnMFzyoz+mkyA4PlO1gqw2JFhzPhTBZ3cuyV9QlxUfEA8dWAkqAUX6vqiHwkw== - dependencies: - "@abp/aspnetcore.mvc.ui" "~8.3.0" - "@abp/bootstrap" "~8.3.0" - "@abp/bootstrap-datepicker" "~8.3.0" - "@abp/bootstrap-daterangepicker" "~8.3.0" - "@abp/datatables.net-bs5" "~8.3.0" - "@abp/font-awesome" "~8.3.0" - "@abp/jquery-form" "~8.3.0" - "@abp/jquery-validation-unobtrusive" "~8.3.0" - "@abp/lodash" "~8.3.0" - "@abp/luxon" "~8.3.0" - "@abp/malihu-custom-scrollbar-plugin" "~8.3.0" - "@abp/moment" "~8.3.0" - "@abp/select2" "~8.3.0" - "@abp/sweetalert2" "~8.3.0" - "@abp/timeago" "~8.3.0" - "@abp/toastr" "~8.3.0" - -"@abp/aspnetcore.mvc.ui@~8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-8.3.0.tgz#d7ba0539bfcc6661a347dea7f952489010b3e816" - integrity sha512-OxgZhLKiXGFYYpNJ5O/IbhinsniiBPv9586e+1Soar0GckCMIIegJxnJb1Bo1O75blrcK2cIU6LqjRT1FXt2Lw== +"@abp/aspnetcore.mvc.ui.theme.basic@~8.3.1": + version "8.3.1" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-8.3.1.tgz#f3caaf7b2bc4e5dc143b30ea2d09c0895717226f" + integrity sha512-aFu/HLgr3oIJmQIXEUuOKq6x1NMMcvj1tDX3ZTKPSwscxVlJsHo4c+9xrqYr0TlXSkBp9kado1z5dOXsdJ586g== + dependencies: + "@abp/aspnetcore.mvc.ui.theme.shared" "~8.3.1" + +"@abp/aspnetcore.mvc.ui.theme.shared@~8.3.1": + version "8.3.1" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-8.3.1.tgz#ab58e22315da663fe0b5ec52b5a612135e04b1d6" + integrity sha512-Qlp41ca5ppz7DE5Awpir6hpuEZ8m1Mi7PIARJAqHgK4hLMlBfEcxwEOs6zk2yVAYEhh2hqSchwS5L1rjzqiIfQ== + dependencies: + "@abp/aspnetcore.mvc.ui" "~8.3.1" + "@abp/bootstrap" "~8.3.1" + "@abp/bootstrap-datepicker" "~8.3.1" + "@abp/bootstrap-daterangepicker" "~8.3.1" + "@abp/datatables.net-bs5" "~8.3.1" + "@abp/font-awesome" "~8.3.1" + "@abp/jquery-form" "~8.3.1" + "@abp/jquery-validation-unobtrusive" "~8.3.1" + "@abp/lodash" "~8.3.1" + "@abp/luxon" "~8.3.1" + "@abp/malihu-custom-scrollbar-plugin" "~8.3.1" + "@abp/moment" "~8.3.1" + "@abp/select2" "~8.3.1" + "@abp/sweetalert2" "~8.3.1" + "@abp/timeago" "~8.3.1" + "@abp/toastr" "~8.3.1" + +"@abp/aspnetcore.mvc.ui@~8.3.1": + version "8.3.1" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-8.3.1.tgz#d45fd58565bbee49ab78a4a230344bd034c7f96d" + integrity sha512-9J2Zk1QFn5AQLMFqp1qztSsSLKMPnhwkNfrJQoY/fyiPpQEu9x0l7u46rmTUnibhRll/FYb9PYsHP9qMiePoBQ== dependencies: ansi-colors "^4.1.3" -"@abp/bootstrap-datepicker@~8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-8.3.0.tgz#8c1bf9efec37b671d8f28b8b1e89c1ac66684267" - integrity sha512-KCwMtm7x+cnKPeNMzhjDJUce0stwu4e57ibmvA6sMf1tmj+yB256O4E2hIDDohiT3vP/zV8HVHX6uATlcmGC9w== +"@abp/bootstrap-datepicker@~8.3.1": + version "8.3.1" + resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-8.3.1.tgz#c08c1688e6e21fcf388fa9b7317c3e5ae23e6c30" + integrity sha512-/JcKeLQFUf7ELiUBEnaE4Rh+2CC9jFqrm8QBjioACvZFU7dZSt1wqsqriLvDmVYq8xOfiQE7h+7dbQgXo/3Jpg== dependencies: bootstrap-datepicker "^1.10.0" -"@abp/bootstrap-daterangepicker@~8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-daterangepicker/-/bootstrap-daterangepicker-8.3.0.tgz#2b8ed978333502677916f88cbb3e1d1b1c8a3a17" - integrity sha512-uQSfuCQogl4BujdqvtdAoSE+z32ci8FT5+i3gLfpqbgTaxvY/Kv5NxAUH5/1sjnuAE7SMWO+eVvI3V0pXgQohg== +"@abp/bootstrap-daterangepicker@~8.3.1": + version "8.3.1" + resolved "https://registry.yarnpkg.com/@abp/bootstrap-daterangepicker/-/bootstrap-daterangepicker-8.3.1.tgz#8668a755968f55b6cc5eccf9d8fa8e77f2580746" + integrity sha512-4YCFDM1t8Eckp2cMjdM1qvd0g4O8tKwvQqO9ZeOkCik0SiUEvjHGvOhOlaOeg5sUkinXLG4wZ+8UiMHgtGfh7A== dependencies: bootstrap-daterangepicker "^3.1.0" -"@abp/bootstrap@~8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-8.3.0.tgz#96d6ea7e6ac30f6e34e495a4224f56f7b2a1a7a3" - integrity sha512-5AmdTtakmWhZmHrb7ibvvf+KwF9OGadpAe7Kv9mNEE02K2qkp7Xw4r5o/bgVl7YfLC1FA6GZZXrV2s2t0gjHtg== +"@abp/bootstrap@~8.3.1": + version "8.3.1" + resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-8.3.1.tgz#df7b0d99bd17049a9f7c52a018ef079ce9656829" + integrity sha512-DOFrIawWNTZQ/Mv7m9Mo20Kr9PeErke81xGzba3toR3Bn8jXRVUYk+ofarwceDTck53C6V1TCmgsRF3ecRrVgw== dependencies: - "@abp/core" "~8.3.0" + "@abp/core" "~8.3.1" bootstrap "^5.3.3" -"@abp/clipboard@~8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@abp/clipboard/-/clipboard-8.3.0.tgz#1b171e533f768cf42c8fc0c9c67fac1c636fee8c" - integrity sha512-T0O4OaMxLLYztAxyvEc3onEOpGHB/C8/jDcvJwd7mgpLoi9zXVfHwpnzkx/egfNJMzp49STD6Jc+jACi8Uq+CQ== +"@abp/clipboard@~8.3.1": + version "8.3.1" + resolved "https://registry.yarnpkg.com/@abp/clipboard/-/clipboard-8.3.1.tgz#f1b63562eeaf5488ed61b06472af134bb29be64b" + integrity sha512-5mvPu2ZQ6kwEF2s/r1fOcXlaj73+1E2XZbwZ12q0CSs0uSCNqc68ur3l3DdpFAszNj7A410sq4rUMkUvZwPsHw== dependencies: - "@abp/core" "~8.3.0" + "@abp/core" "~8.3.1" clipboard "^2.0.11" -"@abp/core@~8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@abp/core/-/core-8.3.0.tgz#3a68f5a9549efcc3e13500e301f2576751b51445" - integrity sha512-zrxnZi4qij/Y4AZWaXuPqs3Dd7gBtU/onX7FkYxLgQDxYBfx+84QAnPRNRFKMWaD/wKbTUB0wA66U3t2aiQX9Q== +"@abp/core@~8.3.1": + version "8.3.1" + resolved "https://registry.yarnpkg.com/@abp/core/-/core-8.3.1.tgz#1f2d5f5c55fcf0aafb1e4522e4d2a1f4d1ba679c" + integrity sha512-FtMhlHosvcSnEOYJiTgjbZ59+KB4NfhTPAk2l+X7MWIxGP+OLKFlTwd/OZBLtZ1c6r1Vzgaa7jnXJQvpQawqWQ== dependencies: - "@abp/utils" "~8.3.0" + "@abp/utils" "~8.3.1" -"@abp/datatables.net-bs5@~8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs5/-/datatables.net-bs5-8.3.0.tgz#21822ae4912a561afe9112925185aece03fcd0eb" - integrity sha512-GOGYSSHp3iPUDFRX2Y3C0wkiCOJDuYuK/zUSzQLNpOvBMZO+I/oWBcZM+qkVowIzsoRlAGV9+CVV2B/B05qidA== +"@abp/datatables.net-bs5@~8.3.1": + version "8.3.1" + resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs5/-/datatables.net-bs5-8.3.1.tgz#3522e949b66f7109f04d8367a0d61a663f36f6b0" + integrity sha512-rQw1DsZG8ir3OzNZrOJVpSwqu3I+CoOuEAvLr6xPJ1U9QszE4lqlciSR/pkDiFE/Ccau0KwuxGqbPjNvInshpA== dependencies: - "@abp/datatables.net" "~8.3.0" + "@abp/datatables.net" "~8.3.1" datatables.net-bs5 "^2.0.8" -"@abp/datatables.net@~8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-8.3.0.tgz#ff697758ce9309ba8311f23aec921c4722588c8b" - integrity sha512-4dIdv7eN1tVouOUrlF+MIdg8zQpecyH61waqLgy1q5jMZQivrTSFZ7UWMG3WVOAYjw5zSUZHZPbzA+ttnaOPkg== +"@abp/datatables.net@~8.3.1": + version "8.3.1" + resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-8.3.1.tgz#8bb3889b0267006fc4626afcb482ff34e60f4871" + integrity sha512-xxz4sKZmw2ZryTRoCzS66X5536Lg6XLCMDQzLHSbNQiIedEkvSEQtYKBcEYmh1U+nVX10S3nTk1YNSi8AqqYlg== dependencies: - "@abp/jquery" "~8.3.0" + "@abp/jquery" "~8.3.1" datatables.net "^2.0.8" -"@abp/docs@~8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@abp/docs/-/docs-8.3.0.tgz#3ca32d80b00e2f2b7410c76d92f653919fa50d20" - integrity sha512-HIHLoRtMeeZIF9JAfQ+EWyFyNWT/rJhtz23rweWz2waaC+Ua5JWkFF3vcNuPiMIqWilOp0iwsSAP0ex10/+7kA== +"@abp/docs@~8.3.1": + version "8.3.1" + resolved "https://registry.yarnpkg.com/@abp/docs/-/docs-8.3.1.tgz#0974bb806e09f4018d26df32ff3bea337a734fb7" + integrity sha512-SDjOyInfJxOtUkkCm7G65Q3Uft4EgZo3Vz7GcSW+hCOWU0EkvkHPuFUDOqXKVzuEz/Is8xJGx6c2gNpQPiFEmg== dependencies: - "@abp/anchor-js" "~8.3.0" - "@abp/clipboard" "~8.3.0" - "@abp/malihu-custom-scrollbar-plugin" "~8.3.0" - "@abp/popper.js" "~8.3.0" - "@abp/prismjs" "~8.3.0" + "@abp/anchor-js" "~8.3.1" + "@abp/clipboard" "~8.3.1" + "@abp/malihu-custom-scrollbar-plugin" "~8.3.1" + "@abp/popper.js" "~8.3.1" + "@abp/prismjs" "~8.3.1" -"@abp/font-awesome@~8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-8.3.0.tgz#9e4e9adc08dfca52c0a07d1608c5e5662675a4c9" - integrity sha512-NRxvM/dzvQC2Cj/F5i07XB/i6IVTmXcO9sOq6TWosWib0wGaPxRbCSjy8QUAYSD1QYaVQ30XMb3XXImaMGyd8A== +"@abp/font-awesome@~8.3.1": + version "8.3.1" + resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-8.3.1.tgz#b22ea61efbecfff0f0c088fd23ff4a46f0f9661d" + integrity sha512-JiEFfX6ArYjNAgxT42VgmPpkMbHo0TFaItFMFTx8kuFaO2KJS7c/5YVLJr3y3fylaF1d1HPtI/S3U8gF12quXA== dependencies: - "@abp/core" "~8.3.0" + "@abp/core" "~8.3.1" "@fortawesome/fontawesome-free" "^6.5.2" -"@abp/jquery-form@~8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-8.3.0.tgz#fa2ad2fedbe3d3528ee94cbbd4f94d48f0cb5e4d" - integrity sha512-olP9FmpNVTbOIewsVua0moHVYXw4Sl3chFbvTDLG6vRBohLSjllUXfgY3UEIVWR1PCqnAg+iEJZl9NHB9iOLBg== +"@abp/jquery-form@~8.3.1": + version "8.3.1" + resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-8.3.1.tgz#ba4e506aa5539d4fa7b8648aa42ed9f4605ba974" + integrity sha512-MvVYY9Je9ovHMpVkUyWbxbJcOrjyP8wbfV8EJoC9ktgIrNikP6JlDstleaRgAsoewoGpPxqSWGbOHCU6SoMUXw== dependencies: - "@abp/jquery" "~8.3.0" + "@abp/jquery" "~8.3.1" jquery-form "^4.3.0" -"@abp/jquery-validation-unobtrusive@~8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-8.3.0.tgz#0992cdd33170df83c79aa3371038c0b30e451521" - integrity sha512-9hidjq8x8sTnP5O3K2b2x9NpxvPd9WB03ENR6OfvM89kfSmQapSvBZTlCu80YK9NaQJ6MLQRLYOCuc3GHcj3EQ== +"@abp/jquery-validation-unobtrusive@~8.3.1": + version "8.3.1" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-8.3.1.tgz#bfb92f7fafc931b7a31542df3d18322c15ff9ca2" + integrity sha512-p6so0T3qyfObKi7wCj+TbyZUNIWdQMR2KgSUDKvN1zQOoDXz2GPZJS/h0LD5sMn3OPI9xSxHixlqcZwi61k1pg== dependencies: - "@abp/jquery-validation" "~8.3.0" + "@abp/jquery-validation" "~8.3.1" jquery-validation-unobtrusive "^4.0.0" -"@abp/jquery-validation@~8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-8.3.0.tgz#bd6a72c6d86f116abe3b5d2adf3752bdbbcca887" - integrity sha512-6l5BZSa3N0Fou6Se7MfUSnI2dD4SYhZ2V988bgPJQ6p37XBOZ2OAj7LEIf5FSjtUzXjao/6/vqjkPNYreNikig== +"@abp/jquery-validation@~8.3.1": + version "8.3.1" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-8.3.1.tgz#2a237e24c38da4896bcefe8e532dcff701671c1f" + integrity sha512-5+5kJjXw+smRDmbKjimIhk+E3J8UEe23smPwW+Yc7240KBRGO9YYnhrym8CnYHCnkegnW29YWmHO6FVKp/mSxA== dependencies: - "@abp/jquery" "~8.3.0" + "@abp/jquery" "~8.3.1" jquery-validation "^1.20.1" -"@abp/jquery@~8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-8.3.0.tgz#9be5ef2f769680226e6a1a981026590caf3b57ef" - integrity sha512-GsFY+n3EtS6B0pAoKd+xMnt5Dzi5bHvIbhLgDgfQfOBzAy3twGRWsPQ3nkuXXm8TppwujMNowU1oiLKPPm0AOA== +"@abp/jquery@~8.3.1": + version "8.3.1" + resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-8.3.1.tgz#e515f25498821df1a53d6329c6bc3d44abe58c2d" + integrity sha512-o3Jj1oz68mR5kW/xdpW26rK6zPJzSCzU/QnJjEVYExXGISp4GS355eJVsOlJ/dJNhiRnBcYfApx8Zm+9eltOIw== dependencies: - "@abp/core" "~8.3.0" + "@abp/core" "~8.3.1" jquery "~3.7.1" -"@abp/lodash@~8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-8.3.0.tgz#f5a0a496c999886f2d6999067bfac2e1f0c3969c" - integrity sha512-BiAsONbKR/RKG3WjRaMWVmhNe1ELEsykVq+ogG1Rhk3kwPbvze3TS8k2p0Lu/RC41/BmDUmJ5abg1pUMwkRT8w== +"@abp/lodash@~8.3.1": + version "8.3.1" + resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-8.3.1.tgz#70c1114647401d3ace1096c7e6c9bd36be8d1aa5" + integrity sha512-CaqCSZ2TijQKbIvFZGJBFSGIhBbrXJASW0jKDu6lUuzyfhQe9xayG9P83pQzrVp5GpNwInxuCqXO+qxqALHg0A== dependencies: - "@abp/core" "~8.3.0" + "@abp/core" "~8.3.1" lodash "^4.17.21" -"@abp/luxon@~8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-8.3.0.tgz#7dd3f756be1605506e26f7ac76b80cc082a12d07" - integrity sha512-8gdI5BtXkVp0sFg89QVDe8AvgQ7Qfq4JCqz2PMrKPSATR3H8GD6BCaEYpRp6CNTCjVrQjGZdzKgUyea1D3dHbw== +"@abp/luxon@~8.3.1": + version "8.3.1" + resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-8.3.1.tgz#d827ac81a1bb03a20a50d555c59ad2c24c8a9e9e" + integrity sha512-ovDJoJW0gF2QhUJHhINpYCUFXpC1OKJq55A0AzYbe+Sh7jylEF3NlvwHZuoshySc6MsSetbjRj3oE1b4e0CSyw== dependencies: - "@abp/core" "~8.3.0" + "@abp/core" "~8.3.1" luxon "^3.4.4" -"@abp/malihu-custom-scrollbar-plugin@~8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-8.3.0.tgz#c88c132c3402bbb02054ca7d446051950f87a817" - integrity sha512-nd/mb6LJa6fMxal8PGcIjIRIoZ/UHCd01WDC9YI2H4wGCGx0CA0JyHso5oc/OEzJhUL8ujO/vYm9uLb7YahPtA== +"@abp/malihu-custom-scrollbar-plugin@~8.3.1": + version "8.3.1" + resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-8.3.1.tgz#efd819695fd8e4ee37a77ca3f7fabc51632e3cb3" + integrity sha512-LyMSo90SWCwQT/j/s7i0UvI+pCthdKkWrJXq1Dfvs+/m89016fjOiCk9hCNMkZainoARJyHg9zK82koN/Q6c4A== dependencies: - "@abp/core" "~8.3.0" + "@abp/core" "~8.3.1" malihu-custom-scrollbar-plugin "^3.1.5" -"@abp/moment@~8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@abp/moment/-/moment-8.3.0.tgz#8e4f7a523ab76ef9e4cd96a399560bad38d38d1a" - integrity sha512-LywSsKuQ2GN/Btmle6CcTKa811zbvUWdC+RLQA792K9HyBs6LvN0qRRluEQZgplairRgh2pDOg8tdFlUERkv2w== +"@abp/moment@~8.3.1": + version "8.3.1" + resolved "https://registry.yarnpkg.com/@abp/moment/-/moment-8.3.1.tgz#09938caeefbbb179047b5edd7352828f8dcc8382" + integrity sha512-UEnSyeEzw/LFINfP1zwSxg3Nmx95zMw4f9bOWm2z+FeJofllmwYI4hrG9GhaJCxxV3iy+yK697U2XiBgBu6O2g== dependencies: moment "^2.30.1" -"@abp/popper.js@~8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@abp/popper.js/-/popper.js-8.3.0.tgz#95af55f98209ed2537e5f61404e6bfcdf36045e9" - integrity sha512-1jJbKU7zod3ihQ5hpDz91j33gkprQUkysvOzFnyDG8T5yQk+E63kYCHY+dzV3lSI1QpQscZA0c3SWVcgDgROvA== +"@abp/popper.js@~8.3.1": + version "8.3.1" + resolved "https://registry.yarnpkg.com/@abp/popper.js/-/popper.js-8.3.1.tgz#4b0793440cdb7cdcfed14fef78b7a39d11d111fd" + integrity sha512-XTh2LpVk3HiTmAJJvVTl25BAKY408fi3Xv5iw00+RBF0VuU/GTdIPRkRPEIWX1bjkN+yDYFsjJ8OGOcxbelN0A== dependencies: - "@abp/core" "~8.3.0" + "@abp/core" "~8.3.1" "@popperjs/core" "^2.11.8" -"@abp/prismjs@~8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@abp/prismjs/-/prismjs-8.3.0.tgz#0c87c63294d1452ed7152083d2fb6e70aa3aeae6" - integrity sha512-3wpwbqqlGRfQSLcBP+Qb2TKOoVGZVYYwOP6dP3So9ev8J5gFMDEizH9zLwRVHYrrsZZP8/etYnyZ0hn7ewuI5Q== +"@abp/prismjs@~8.3.1": + version "8.3.1" + resolved "https://registry.yarnpkg.com/@abp/prismjs/-/prismjs-8.3.1.tgz#e8bb9072439c0aee6bf16b351dcaea850ae13a73" + integrity sha512-WQPC4Iyr1fweoimey1xp1rZXzEsciFZloYn9rH9Hu7Bivkag2kpgx86jAGWNzMf9jo3XWo1wQHLKEtpC4kqImQ== dependencies: - "@abp/clipboard" "~8.3.0" - "@abp/core" "~8.3.0" + "@abp/clipboard" "~8.3.1" + "@abp/core" "~8.3.1" prismjs "^1.29.0" -"@abp/select2@~8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-8.3.0.tgz#ef4742fcd345394767f46180f61c6cabbd0b3867" - integrity sha512-bdLt2+ImxxpiZl4HGbYJpdDROQUT7/Z/+8A+6oJNacq3lNekdvufLYgTMxKru6zTbnd9j3HFKMOTE1eRjb9Xqg== +"@abp/select2@~8.3.1": + version "8.3.1" + resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-8.3.1.tgz#56703690adeb715e98c4a0c677f30040a560b588" + integrity sha512-yDDjkmncYJHMz5i438nsHEHZ9pfXm1ACoXhNNPQ8Ji3ZG2jwT76DamVV7zSc8Nd3v/AK5YPVBZeG4+6ZGGnfTw== dependencies: - "@abp/core" "~8.3.0" + "@abp/core" "~8.3.1" select2 "^4.0.13" -"@abp/sweetalert2@~8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-8.3.0.tgz#a63020d57e44f7940817287d3d9676288bfb85aa" - integrity sha512-ooqPM4Z2v2scnMo5l8ycTmp6t/sW4sCsvIkJ4TyM876WLQJaZxJdOao4RQWuU+dVFr9zg8cOwqLH4q7UEiO6ww== +"@abp/sweetalert2@~8.3.1": + version "8.3.1" + resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-8.3.1.tgz#3fd4913b21eec156157b5bdad95a991cf9f3f43d" + integrity sha512-yYLSv28nc6PldM4lAL2Zs+MCdGZnDLJuISzQS35xzfXvM5xKg9dgN1e/+OiYHVWULXIgZUgArUqd6In4smx2+w== dependencies: - "@abp/core" "~8.3.0" + "@abp/core" "~8.3.1" sweetalert2 "^11.3.6" -"@abp/timeago@~8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-8.3.0.tgz#b3b8d6927bf170f77af848bc1925e5ef6835bd55" - integrity sha512-Dd6xaUoF9Bp4F9WJnTsFBqY+Gt++UR7UmLvBZL/dvthkeNCu2I8MUsmshkUUjY0lIXpjZwefUOuyupQrgHXPMg== +"@abp/timeago@~8.3.1": + version "8.3.1" + resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-8.3.1.tgz#18999384ac3eb3636886ae03d5de46fbd1e2a9c1" + integrity sha512-WF8thD6vjc8TAIqjPgpoRZxL2ncwaQVcFnJuEB5sLUkj7ZqmFYNamdCdDsteyprSAb7/KsWDgwWAmGLeH4W3CQ== dependencies: - "@abp/jquery" "~8.3.0" + "@abp/jquery" "~8.3.1" timeago "^1.6.7" -"@abp/toastr@~8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-8.3.0.tgz#e68a2bd8f731e79034594bc2c736f7c66b3df1af" - integrity sha512-aWK/RaX/FmcEKhJLjsw1A0K2c04m2fRJkmo9NwzBCSscy6Msw9IMkqNWLiFDThMU8/qKzq7wq3Vmk/C0IpeAwA== +"@abp/toastr@~8.3.1": + version "8.3.1" + resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-8.3.1.tgz#541f09b905fb89d2c585d080c1bb690f3fa5f5cd" + integrity sha512-Tyz7cgFfD7HS6X4Pr51LIg/b358hAklT/NrfgE2w5G66f6vHXZB+8y/eYDJPaUeLMnuDo3Pw5M034ESKFRF76A== dependencies: - "@abp/jquery" "~8.3.0" + "@abp/jquery" "~8.3.1" toastr "^2.1.4" -"@abp/utils@~8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-8.3.0.tgz#96ae9266ad4d833fd9d723acef7fc85fabf618d9" - integrity sha512-w/XAqza4Z8wBWRoj5uPNKbd1/bE9L/uUWk6EUSBKmljMRryWQBmaPkb1XgvrOMQIbyyF60tUvvipapQLPVh6hw== +"@abp/utils@~8.3.1": + version "8.3.1" + resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-8.3.1.tgz#a0eeefbda6616940beef8376ae56b3809d3dad50" + integrity sha512-kLUll2bGNGb780Z8Bp/U9XfOYDtU1j5h6Fkqr4AqegioS7GqltI5fkpPc0oLeti05C9rJV4ca13Ip+SQ4BY6vw== dependencies: just-compare "^2.3.0" diff --git a/modules/openiddict/app/OpenIddict.Demo.Server/package.json b/modules/openiddict/app/OpenIddict.Demo.Server/package.json index 7dad1fc3e2..a631510c85 100644 --- a/modules/openiddict/app/OpenIddict.Demo.Server/package.json +++ b/modules/openiddict/app/OpenIddict.Demo.Server/package.json @@ -3,6 +3,6 @@ "name": "my-app", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.basic": "~8.3.0" + "@abp/aspnetcore.mvc.ui.theme.basic": "~8.3.1" } } diff --git a/modules/openiddict/app/angular/package.json b/modules/openiddict/app/angular/package.json index 8399146544..4fb92fb0cd 100644 --- a/modules/openiddict/app/angular/package.json +++ b/modules/openiddict/app/angular/package.json @@ -12,15 +12,15 @@ }, "private": true, "dependencies": { - "@abp/ng.account": "~8.3.0", - "@abp/ng.components": "~8.3.0", - "@abp/ng.core": "~8.3.0", - "@abp/ng.oauth": "~8.3.0", - "@abp/ng.identity": "~8.3.0", - "@abp/ng.setting-management": "~8.3.0", - "@abp/ng.tenant-management": "~8.3.0", - "@abp/ng.theme.shared": "~8.3.0", - "@abp/ng.theme.lepton-x": "~3.3.0", + "@abp/ng.account": "~8.3.1", + "@abp/ng.components": "~8.3.1", + "@abp/ng.core": "~8.3.1", + "@abp/ng.oauth": "~8.3.1", + "@abp/ng.identity": "~8.3.1", + "@abp/ng.setting-management": "~8.3.1", + "@abp/ng.tenant-management": "~8.3.1", + "@abp/ng.theme.shared": "~8.3.1", + "@abp/ng.theme.lepton-x": "~3.3.1", "@angular/animations": "^15.0.1", "@angular/common": "^15.0.1", "@angular/compiler": "^15.0.1", @@ -36,7 +36,7 @@ "zone.js": "~0.11.4" }, "devDependencies": { - "@abp/ng.schematics": "~8.3.0", + "@abp/ng.schematics": "~8.3.1", "@angular-devkit/build-angular": "^15.0.1", "@angular-eslint/builder": "~15.1.0", "@angular-eslint/eslint-plugin": "~15.1.0", diff --git a/modules/permission-management/src/Volo.Abp.PermissionManagement.Web/Pages/AbpPermissionManagement/PermissionManagementModal.cshtml b/modules/permission-management/src/Volo.Abp.PermissionManagement.Web/Pages/AbpPermissionManagement/PermissionManagementModal.cshtml index 15fbc9b1f8..08ab0910df 100644 --- a/modules/permission-management/src/Volo.Abp.PermissionManagement.Web/Pages/AbpPermissionManagement/PermissionManagementModal.cshtml +++ b/modules/permission-management/src/Volo.Abp.PermissionManagement.Web/Pages/AbpPermissionManagement/PermissionManagementModal.cshtml @@ -11,48 +11,74 @@ Layout = null; } -
+ - - - -
- - - - @for (var i = 0; i < Model.Groups.Count; i++) - { - var group = Model.Groups[i]; - -
-
- -
- @for (var j = 0; j < group.Permissions.Count; j++) - { - var permission = group.Permissions[j]; - - - } + + + + +
+
+
+ + +
+
+
+ +
+
+
+ Permission Group + + + @for (var i = 0; i < Model.Groups.Count; i++) + { + var group = Model.Groups[i]; + +
+
+ +
+ @for (var j = 0; j < group.Permissions.Count; j++) + { + var permission = group.Permissions[j]; + + + } +
-
- - } - + + } + + + + + + + + \ No newline at end of file diff --git a/modules/permission-management/src/Volo.Abp.PermissionManagement.Web/Pages/AbpPermissionManagement/permission-management-modal.css b/modules/permission-management/src/Volo.Abp.PermissionManagement.Web/Pages/AbpPermissionManagement/permission-management-modal.css index 2d47ccd927..004ae2cf27 100644 --- a/modules/permission-management/src/Volo.Abp.PermissionManagement.Web/Pages/AbpPermissionManagement/permission-management-modal.css +++ b/modules/permission-management/src/Volo.Abp.PermissionManagement.Web/Pages/AbpPermissionManagement/permission-management-modal.css @@ -1,12 +1,31 @@ -.custom-scroll-container > .col-4 { - overflow: hidden; - overflow-y: auto; - max-height: 499px; +fieldset legend { + float: none; + width: auto; +} + +.lpx-scroll-pills-container ul { display: block; - position: relative; - z-index: 123; + max-height: 500px; + overflow-y: auto; +} + +.lpx-scroll-pills-container .tab-content { + padding-top: 0 !important; + padding-bottom: 0 !important; +} + +.lpx-scroll-pills-container ul li { + border: 1px solid #e8eef3; + margin-bottom: 10px; + border-radius: 10px; +} + +.lpx-scroll-pills-container ul li a.active { + color: #fff !important; + border-color: #6c5dd3 !important; + background-color: #6c5dd3 !important; } -.custom-scroll-content { - max-height: 440px; +.lpx-theme-dark .lpx-scroll-pills-container ul li { + border: 1px solid #23262a; } diff --git a/modules/permission-management/src/Volo.Abp.PermissionManagement.Web/Pages/AbpPermissionManagement/permission-management-modal.js b/modules/permission-management/src/Volo.Abp.PermissionManagement.Web/Pages/AbpPermissionManagement/permission-management-modal.js index 298ad3791f..3723eda932 100644 --- a/modules/permission-management/src/Volo.Abp.PermissionManagement.Web/Pages/AbpPermissionManagement/permission-management-modal.js +++ b/modules/permission-management/src/Volo.Abp.PermissionManagement.Web/Pages/AbpPermissionManagement/permission-management-modal.js @@ -286,6 +286,58 @@ var abp = abp || {}; }); } + $permissionSearchInput = $('#permission-search'); + + $permissionSearchInput.keyup(throttle(function() { + var searchTerm = $permissionSearchInput.val().toLowerCase(); + filterTabs(searchTerm); + }, 300)); + + function filterTabs(searchTerm) { + var $tabs = $('#PermissionsTabs .nav-link'); + $tabs.each(function(i) { + var $tabItem = $(this); + var $tab = $tabItem.parent(); + + if (!searchTerm) { + $tab.show(); + return; + } + + var tabName = $tabItem.find('small').text().toLowerCase(); + + var tabContentFilters = $($tabItem.attr('href')).find('[data-filter-text]'); + let includedInTabContent = false; + tabContentFilters.each(function(i) { + var permissionName = $(this).attr('data-filter-text').toLowerCase(); + includedInTabContent = permissionName.includes(searchTerm); + if (includedInTabContent === true) { + return false; + } + }); + + if(includedInTabContent || tabName.includes(searchTerm)) { + $tab.show(); + } else { + $tab.hide(); + } + }); + } + + function throttle(mainFunction, delay) { + let timerFlag = null; // Variable to keep track of the timer + + // Returning a throttled version + return (...args) => { + if (timerFlag === null) { // If there is no timer currently running + mainFunction(...args); // Execute the main function + timerFlag = setTimeout(() => { // Set a timer to clear the timerFlag after the specified delay + timerFlag = null; // Clear the timerFlag to allow the main function to be executed again + }, delay); + } + }; + } + }; }; })(jQuery); diff --git a/modules/setting-management/app/Volo.Abp.SettingManagement.DemoApp/package.json b/modules/setting-management/app/Volo.Abp.SettingManagement.DemoApp/package.json index 78fa030754..3fdbf6bb44 100644 --- a/modules/setting-management/app/Volo.Abp.SettingManagement.DemoApp/package.json +++ b/modules/setting-management/app/Volo.Abp.SettingManagement.DemoApp/package.json @@ -3,6 +3,6 @@ "name": "demo-app", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.basic": "~8.3.0" + "@abp/aspnetcore.mvc.ui.theme.basic": "~8.3.1" } } diff --git a/modules/setting-management/app/Volo.Abp.SettingManagement.DemoApp/yarn.lock b/modules/setting-management/app/Volo.Abp.SettingManagement.DemoApp/yarn.lock index d19b65bc24..2f245ec759 100644 --- a/modules/setting-management/app/Volo.Abp.SettingManagement.DemoApp/yarn.lock +++ b/modules/setting-management/app/Volo.Abp.SettingManagement.DemoApp/yarn.lock @@ -2,194 +2,194 @@ # yarn lockfile v1 -"@abp/aspnetcore.mvc.ui.theme.basic@~8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-8.3.0.tgz#a2d17eb5da2c3abfad4bcc842cfcda0e58a130a4" - integrity sha512-T2dg7WlvNSrwTCfy5wk4gqiJ/15kIjMGM4wLXIJcMYn60yGY/YeX6Q4A3R/qJzfl4JdgW5rt3GpdKv86y/ADXg== - dependencies: - "@abp/aspnetcore.mvc.ui.theme.shared" "~8.3.0" - -"@abp/aspnetcore.mvc.ui.theme.shared@~8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-8.3.0.tgz#5d6bb5181a62770e9cb967980b77e75c115c5ed7" - integrity sha512-o/0eh8jLS+YJiseTKzzioUz0vNnMFzyoz+mkyA4PlO1gqw2JFhzPhTBZ3cuyV9QlxUfEA8dWAkqAUX6vqiHwkw== - dependencies: - "@abp/aspnetcore.mvc.ui" "~8.3.0" - "@abp/bootstrap" "~8.3.0" - "@abp/bootstrap-datepicker" "~8.3.0" - "@abp/bootstrap-daterangepicker" "~8.3.0" - "@abp/datatables.net-bs5" "~8.3.0" - "@abp/font-awesome" "~8.3.0" - "@abp/jquery-form" "~8.3.0" - "@abp/jquery-validation-unobtrusive" "~8.3.0" - "@abp/lodash" "~8.3.0" - "@abp/luxon" "~8.3.0" - "@abp/malihu-custom-scrollbar-plugin" "~8.3.0" - "@abp/moment" "~8.3.0" - "@abp/select2" "~8.3.0" - "@abp/sweetalert2" "~8.3.0" - "@abp/timeago" "~8.3.0" - "@abp/toastr" "~8.3.0" - -"@abp/aspnetcore.mvc.ui@~8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-8.3.0.tgz#d7ba0539bfcc6661a347dea7f952489010b3e816" - integrity sha512-OxgZhLKiXGFYYpNJ5O/IbhinsniiBPv9586e+1Soar0GckCMIIegJxnJb1Bo1O75blrcK2cIU6LqjRT1FXt2Lw== +"@abp/aspnetcore.mvc.ui.theme.basic@~8.3.1": + version "8.3.1" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-8.3.1.tgz#f3caaf7b2bc4e5dc143b30ea2d09c0895717226f" + integrity sha512-aFu/HLgr3oIJmQIXEUuOKq6x1NMMcvj1tDX3ZTKPSwscxVlJsHo4c+9xrqYr0TlXSkBp9kado1z5dOXsdJ586g== + dependencies: + "@abp/aspnetcore.mvc.ui.theme.shared" "~8.3.1" + +"@abp/aspnetcore.mvc.ui.theme.shared@~8.3.1": + version "8.3.1" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-8.3.1.tgz#ab58e22315da663fe0b5ec52b5a612135e04b1d6" + integrity sha512-Qlp41ca5ppz7DE5Awpir6hpuEZ8m1Mi7PIARJAqHgK4hLMlBfEcxwEOs6zk2yVAYEhh2hqSchwS5L1rjzqiIfQ== + dependencies: + "@abp/aspnetcore.mvc.ui" "~8.3.1" + "@abp/bootstrap" "~8.3.1" + "@abp/bootstrap-datepicker" "~8.3.1" + "@abp/bootstrap-daterangepicker" "~8.3.1" + "@abp/datatables.net-bs5" "~8.3.1" + "@abp/font-awesome" "~8.3.1" + "@abp/jquery-form" "~8.3.1" + "@abp/jquery-validation-unobtrusive" "~8.3.1" + "@abp/lodash" "~8.3.1" + "@abp/luxon" "~8.3.1" + "@abp/malihu-custom-scrollbar-plugin" "~8.3.1" + "@abp/moment" "~8.3.1" + "@abp/select2" "~8.3.1" + "@abp/sweetalert2" "~8.3.1" + "@abp/timeago" "~8.3.1" + "@abp/toastr" "~8.3.1" + +"@abp/aspnetcore.mvc.ui@~8.3.1": + version "8.3.1" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-8.3.1.tgz#d45fd58565bbee49ab78a4a230344bd034c7f96d" + integrity sha512-9J2Zk1QFn5AQLMFqp1qztSsSLKMPnhwkNfrJQoY/fyiPpQEu9x0l7u46rmTUnibhRll/FYb9PYsHP9qMiePoBQ== dependencies: ansi-colors "^4.1.3" -"@abp/bootstrap-datepicker@~8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-8.3.0.tgz#8c1bf9efec37b671d8f28b8b1e89c1ac66684267" - integrity sha512-KCwMtm7x+cnKPeNMzhjDJUce0stwu4e57ibmvA6sMf1tmj+yB256O4E2hIDDohiT3vP/zV8HVHX6uATlcmGC9w== +"@abp/bootstrap-datepicker@~8.3.1": + version "8.3.1" + resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-8.3.1.tgz#c08c1688e6e21fcf388fa9b7317c3e5ae23e6c30" + integrity sha512-/JcKeLQFUf7ELiUBEnaE4Rh+2CC9jFqrm8QBjioACvZFU7dZSt1wqsqriLvDmVYq8xOfiQE7h+7dbQgXo/3Jpg== dependencies: bootstrap-datepicker "^1.10.0" -"@abp/bootstrap-daterangepicker@~8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-daterangepicker/-/bootstrap-daterangepicker-8.3.0.tgz#2b8ed978333502677916f88cbb3e1d1b1c8a3a17" - integrity sha512-uQSfuCQogl4BujdqvtdAoSE+z32ci8FT5+i3gLfpqbgTaxvY/Kv5NxAUH5/1sjnuAE7SMWO+eVvI3V0pXgQohg== +"@abp/bootstrap-daterangepicker@~8.3.1": + version "8.3.1" + resolved "https://registry.yarnpkg.com/@abp/bootstrap-daterangepicker/-/bootstrap-daterangepicker-8.3.1.tgz#8668a755968f55b6cc5eccf9d8fa8e77f2580746" + integrity sha512-4YCFDM1t8Eckp2cMjdM1qvd0g4O8tKwvQqO9ZeOkCik0SiUEvjHGvOhOlaOeg5sUkinXLG4wZ+8UiMHgtGfh7A== dependencies: bootstrap-daterangepicker "^3.1.0" -"@abp/bootstrap@~8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-8.3.0.tgz#96d6ea7e6ac30f6e34e495a4224f56f7b2a1a7a3" - integrity sha512-5AmdTtakmWhZmHrb7ibvvf+KwF9OGadpAe7Kv9mNEE02K2qkp7Xw4r5o/bgVl7YfLC1FA6GZZXrV2s2t0gjHtg== +"@abp/bootstrap@~8.3.1": + version "8.3.1" + resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-8.3.1.tgz#df7b0d99bd17049a9f7c52a018ef079ce9656829" + integrity sha512-DOFrIawWNTZQ/Mv7m9Mo20Kr9PeErke81xGzba3toR3Bn8jXRVUYk+ofarwceDTck53C6V1TCmgsRF3ecRrVgw== dependencies: - "@abp/core" "~8.3.0" + "@abp/core" "~8.3.1" bootstrap "^5.3.3" -"@abp/core@~8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@abp/core/-/core-8.3.0.tgz#3a68f5a9549efcc3e13500e301f2576751b51445" - integrity sha512-zrxnZi4qij/Y4AZWaXuPqs3Dd7gBtU/onX7FkYxLgQDxYBfx+84QAnPRNRFKMWaD/wKbTUB0wA66U3t2aiQX9Q== +"@abp/core@~8.3.1": + version "8.3.1" + resolved "https://registry.yarnpkg.com/@abp/core/-/core-8.3.1.tgz#1f2d5f5c55fcf0aafb1e4522e4d2a1f4d1ba679c" + integrity sha512-FtMhlHosvcSnEOYJiTgjbZ59+KB4NfhTPAk2l+X7MWIxGP+OLKFlTwd/OZBLtZ1c6r1Vzgaa7jnXJQvpQawqWQ== dependencies: - "@abp/utils" "~8.3.0" + "@abp/utils" "~8.3.1" -"@abp/datatables.net-bs5@~8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs5/-/datatables.net-bs5-8.3.0.tgz#21822ae4912a561afe9112925185aece03fcd0eb" - integrity sha512-GOGYSSHp3iPUDFRX2Y3C0wkiCOJDuYuK/zUSzQLNpOvBMZO+I/oWBcZM+qkVowIzsoRlAGV9+CVV2B/B05qidA== +"@abp/datatables.net-bs5@~8.3.1": + version "8.3.1" + resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs5/-/datatables.net-bs5-8.3.1.tgz#3522e949b66f7109f04d8367a0d61a663f36f6b0" + integrity sha512-rQw1DsZG8ir3OzNZrOJVpSwqu3I+CoOuEAvLr6xPJ1U9QszE4lqlciSR/pkDiFE/Ccau0KwuxGqbPjNvInshpA== dependencies: - "@abp/datatables.net" "~8.3.0" + "@abp/datatables.net" "~8.3.1" datatables.net-bs5 "^2.0.8" -"@abp/datatables.net@~8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-8.3.0.tgz#ff697758ce9309ba8311f23aec921c4722588c8b" - integrity sha512-4dIdv7eN1tVouOUrlF+MIdg8zQpecyH61waqLgy1q5jMZQivrTSFZ7UWMG3WVOAYjw5zSUZHZPbzA+ttnaOPkg== +"@abp/datatables.net@~8.3.1": + version "8.3.1" + resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-8.3.1.tgz#8bb3889b0267006fc4626afcb482ff34e60f4871" + integrity sha512-xxz4sKZmw2ZryTRoCzS66X5536Lg6XLCMDQzLHSbNQiIedEkvSEQtYKBcEYmh1U+nVX10S3nTk1YNSi8AqqYlg== dependencies: - "@abp/jquery" "~8.3.0" + "@abp/jquery" "~8.3.1" datatables.net "^2.0.8" -"@abp/font-awesome@~8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-8.3.0.tgz#9e4e9adc08dfca52c0a07d1608c5e5662675a4c9" - integrity sha512-NRxvM/dzvQC2Cj/F5i07XB/i6IVTmXcO9sOq6TWosWib0wGaPxRbCSjy8QUAYSD1QYaVQ30XMb3XXImaMGyd8A== +"@abp/font-awesome@~8.3.1": + version "8.3.1" + resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-8.3.1.tgz#b22ea61efbecfff0f0c088fd23ff4a46f0f9661d" + integrity sha512-JiEFfX6ArYjNAgxT42VgmPpkMbHo0TFaItFMFTx8kuFaO2KJS7c/5YVLJr3y3fylaF1d1HPtI/S3U8gF12quXA== dependencies: - "@abp/core" "~8.3.0" + "@abp/core" "~8.3.1" "@fortawesome/fontawesome-free" "^6.5.2" -"@abp/jquery-form@~8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-8.3.0.tgz#fa2ad2fedbe3d3528ee94cbbd4f94d48f0cb5e4d" - integrity sha512-olP9FmpNVTbOIewsVua0moHVYXw4Sl3chFbvTDLG6vRBohLSjllUXfgY3UEIVWR1PCqnAg+iEJZl9NHB9iOLBg== +"@abp/jquery-form@~8.3.1": + version "8.3.1" + resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-8.3.1.tgz#ba4e506aa5539d4fa7b8648aa42ed9f4605ba974" + integrity sha512-MvVYY9Je9ovHMpVkUyWbxbJcOrjyP8wbfV8EJoC9ktgIrNikP6JlDstleaRgAsoewoGpPxqSWGbOHCU6SoMUXw== dependencies: - "@abp/jquery" "~8.3.0" + "@abp/jquery" "~8.3.1" jquery-form "^4.3.0" -"@abp/jquery-validation-unobtrusive@~8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-8.3.0.tgz#0992cdd33170df83c79aa3371038c0b30e451521" - integrity sha512-9hidjq8x8sTnP5O3K2b2x9NpxvPd9WB03ENR6OfvM89kfSmQapSvBZTlCu80YK9NaQJ6MLQRLYOCuc3GHcj3EQ== +"@abp/jquery-validation-unobtrusive@~8.3.1": + version "8.3.1" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-8.3.1.tgz#bfb92f7fafc931b7a31542df3d18322c15ff9ca2" + integrity sha512-p6so0T3qyfObKi7wCj+TbyZUNIWdQMR2KgSUDKvN1zQOoDXz2GPZJS/h0LD5sMn3OPI9xSxHixlqcZwi61k1pg== dependencies: - "@abp/jquery-validation" "~8.3.0" + "@abp/jquery-validation" "~8.3.1" jquery-validation-unobtrusive "^4.0.0" -"@abp/jquery-validation@~8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-8.3.0.tgz#bd6a72c6d86f116abe3b5d2adf3752bdbbcca887" - integrity sha512-6l5BZSa3N0Fou6Se7MfUSnI2dD4SYhZ2V988bgPJQ6p37XBOZ2OAj7LEIf5FSjtUzXjao/6/vqjkPNYreNikig== +"@abp/jquery-validation@~8.3.1": + version "8.3.1" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-8.3.1.tgz#2a237e24c38da4896bcefe8e532dcff701671c1f" + integrity sha512-5+5kJjXw+smRDmbKjimIhk+E3J8UEe23smPwW+Yc7240KBRGO9YYnhrym8CnYHCnkegnW29YWmHO6FVKp/mSxA== dependencies: - "@abp/jquery" "~8.3.0" + "@abp/jquery" "~8.3.1" jquery-validation "^1.20.1" -"@abp/jquery@~8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-8.3.0.tgz#9be5ef2f769680226e6a1a981026590caf3b57ef" - integrity sha512-GsFY+n3EtS6B0pAoKd+xMnt5Dzi5bHvIbhLgDgfQfOBzAy3twGRWsPQ3nkuXXm8TppwujMNowU1oiLKPPm0AOA== +"@abp/jquery@~8.3.1": + version "8.3.1" + resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-8.3.1.tgz#e515f25498821df1a53d6329c6bc3d44abe58c2d" + integrity sha512-o3Jj1oz68mR5kW/xdpW26rK6zPJzSCzU/QnJjEVYExXGISp4GS355eJVsOlJ/dJNhiRnBcYfApx8Zm+9eltOIw== dependencies: - "@abp/core" "~8.3.0" + "@abp/core" "~8.3.1" jquery "~3.7.1" -"@abp/lodash@~8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-8.3.0.tgz#f5a0a496c999886f2d6999067bfac2e1f0c3969c" - integrity sha512-BiAsONbKR/RKG3WjRaMWVmhNe1ELEsykVq+ogG1Rhk3kwPbvze3TS8k2p0Lu/RC41/BmDUmJ5abg1pUMwkRT8w== +"@abp/lodash@~8.3.1": + version "8.3.1" + resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-8.3.1.tgz#70c1114647401d3ace1096c7e6c9bd36be8d1aa5" + integrity sha512-CaqCSZ2TijQKbIvFZGJBFSGIhBbrXJASW0jKDu6lUuzyfhQe9xayG9P83pQzrVp5GpNwInxuCqXO+qxqALHg0A== dependencies: - "@abp/core" "~8.3.0" + "@abp/core" "~8.3.1" lodash "^4.17.21" -"@abp/luxon@~8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-8.3.0.tgz#7dd3f756be1605506e26f7ac76b80cc082a12d07" - integrity sha512-8gdI5BtXkVp0sFg89QVDe8AvgQ7Qfq4JCqz2PMrKPSATR3H8GD6BCaEYpRp6CNTCjVrQjGZdzKgUyea1D3dHbw== +"@abp/luxon@~8.3.1": + version "8.3.1" + resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-8.3.1.tgz#d827ac81a1bb03a20a50d555c59ad2c24c8a9e9e" + integrity sha512-ovDJoJW0gF2QhUJHhINpYCUFXpC1OKJq55A0AzYbe+Sh7jylEF3NlvwHZuoshySc6MsSetbjRj3oE1b4e0CSyw== dependencies: - "@abp/core" "~8.3.0" + "@abp/core" "~8.3.1" luxon "^3.4.4" -"@abp/malihu-custom-scrollbar-plugin@~8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-8.3.0.tgz#c88c132c3402bbb02054ca7d446051950f87a817" - integrity sha512-nd/mb6LJa6fMxal8PGcIjIRIoZ/UHCd01WDC9YI2H4wGCGx0CA0JyHso5oc/OEzJhUL8ujO/vYm9uLb7YahPtA== +"@abp/malihu-custom-scrollbar-plugin@~8.3.1": + version "8.3.1" + resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-8.3.1.tgz#efd819695fd8e4ee37a77ca3f7fabc51632e3cb3" + integrity sha512-LyMSo90SWCwQT/j/s7i0UvI+pCthdKkWrJXq1Dfvs+/m89016fjOiCk9hCNMkZainoARJyHg9zK82koN/Q6c4A== dependencies: - "@abp/core" "~8.3.0" + "@abp/core" "~8.3.1" malihu-custom-scrollbar-plugin "^3.1.5" -"@abp/moment@~8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@abp/moment/-/moment-8.3.0.tgz#8e4f7a523ab76ef9e4cd96a399560bad38d38d1a" - integrity sha512-LywSsKuQ2GN/Btmle6CcTKa811zbvUWdC+RLQA792K9HyBs6LvN0qRRluEQZgplairRgh2pDOg8tdFlUERkv2w== +"@abp/moment@~8.3.1": + version "8.3.1" + resolved "https://registry.yarnpkg.com/@abp/moment/-/moment-8.3.1.tgz#09938caeefbbb179047b5edd7352828f8dcc8382" + integrity sha512-UEnSyeEzw/LFINfP1zwSxg3Nmx95zMw4f9bOWm2z+FeJofllmwYI4hrG9GhaJCxxV3iy+yK697U2XiBgBu6O2g== dependencies: moment "^2.30.1" -"@abp/select2@~8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-8.3.0.tgz#ef4742fcd345394767f46180f61c6cabbd0b3867" - integrity sha512-bdLt2+ImxxpiZl4HGbYJpdDROQUT7/Z/+8A+6oJNacq3lNekdvufLYgTMxKru6zTbnd9j3HFKMOTE1eRjb9Xqg== +"@abp/select2@~8.3.1": + version "8.3.1" + resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-8.3.1.tgz#56703690adeb715e98c4a0c677f30040a560b588" + integrity sha512-yDDjkmncYJHMz5i438nsHEHZ9pfXm1ACoXhNNPQ8Ji3ZG2jwT76DamVV7zSc8Nd3v/AK5YPVBZeG4+6ZGGnfTw== dependencies: - "@abp/core" "~8.3.0" + "@abp/core" "~8.3.1" select2 "^4.0.13" -"@abp/sweetalert2@~8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-8.3.0.tgz#a63020d57e44f7940817287d3d9676288bfb85aa" - integrity sha512-ooqPM4Z2v2scnMo5l8ycTmp6t/sW4sCsvIkJ4TyM876WLQJaZxJdOao4RQWuU+dVFr9zg8cOwqLH4q7UEiO6ww== +"@abp/sweetalert2@~8.3.1": + version "8.3.1" + resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-8.3.1.tgz#3fd4913b21eec156157b5bdad95a991cf9f3f43d" + integrity sha512-yYLSv28nc6PldM4lAL2Zs+MCdGZnDLJuISzQS35xzfXvM5xKg9dgN1e/+OiYHVWULXIgZUgArUqd6In4smx2+w== dependencies: - "@abp/core" "~8.3.0" + "@abp/core" "~8.3.1" sweetalert2 "^11.3.6" -"@abp/timeago@~8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-8.3.0.tgz#b3b8d6927bf170f77af848bc1925e5ef6835bd55" - integrity sha512-Dd6xaUoF9Bp4F9WJnTsFBqY+Gt++UR7UmLvBZL/dvthkeNCu2I8MUsmshkUUjY0lIXpjZwefUOuyupQrgHXPMg== +"@abp/timeago@~8.3.1": + version "8.3.1" + resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-8.3.1.tgz#18999384ac3eb3636886ae03d5de46fbd1e2a9c1" + integrity sha512-WF8thD6vjc8TAIqjPgpoRZxL2ncwaQVcFnJuEB5sLUkj7ZqmFYNamdCdDsteyprSAb7/KsWDgwWAmGLeH4W3CQ== dependencies: - "@abp/jquery" "~8.3.0" + "@abp/jquery" "~8.3.1" timeago "^1.6.7" -"@abp/toastr@~8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-8.3.0.tgz#e68a2bd8f731e79034594bc2c736f7c66b3df1af" - integrity sha512-aWK/RaX/FmcEKhJLjsw1A0K2c04m2fRJkmo9NwzBCSscy6Msw9IMkqNWLiFDThMU8/qKzq7wq3Vmk/C0IpeAwA== +"@abp/toastr@~8.3.1": + version "8.3.1" + resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-8.3.1.tgz#541f09b905fb89d2c585d080c1bb690f3fa5f5cd" + integrity sha512-Tyz7cgFfD7HS6X4Pr51LIg/b358hAklT/NrfgE2w5G66f6vHXZB+8y/eYDJPaUeLMnuDo3Pw5M034ESKFRF76A== dependencies: - "@abp/jquery" "~8.3.0" + "@abp/jquery" "~8.3.1" toastr "^2.1.4" -"@abp/utils@~8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-8.3.0.tgz#96ae9266ad4d833fd9d723acef7fc85fabf618d9" - integrity sha512-w/XAqza4Z8wBWRoj5uPNKbd1/bE9L/uUWk6EUSBKmljMRryWQBmaPkb1XgvrOMQIbyyF60tUvvipapQLPVh6hw== +"@abp/utils@~8.3.1": + version "8.3.1" + resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-8.3.1.tgz#a0eeefbda6616940beef8376ae56b3809d3dad50" + integrity sha512-kLUll2bGNGb780Z8Bp/U9XfOYDtU1j5h6Fkqr4AqegioS7GqltI5fkpPc0oLeti05C9rJV4ca13Ip+SQ4BY6vw== dependencies: just-compare "^2.3.0" diff --git a/modules/virtual-file-explorer/app/Volo.Abp.VirtualFileExplorer.DemoApp/package.json b/modules/virtual-file-explorer/app/Volo.Abp.VirtualFileExplorer.DemoApp/package.json index 1579c94398..ad3485186d 100644 --- a/modules/virtual-file-explorer/app/Volo.Abp.VirtualFileExplorer.DemoApp/package.json +++ b/modules/virtual-file-explorer/app/Volo.Abp.VirtualFileExplorer.DemoApp/package.json @@ -3,7 +3,7 @@ "version": "1.0.0", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.basic": "~8.3.0", - "@abp/virtual-file-explorer": "~8.3.0" + "@abp/aspnetcore.mvc.ui.theme.basic": "~8.3.1", + "@abp/virtual-file-explorer": "~8.3.1" } } diff --git a/modules/virtual-file-explorer/app/Volo.Abp.VirtualFileExplorer.DemoApp/yarn.lock b/modules/virtual-file-explorer/app/Volo.Abp.VirtualFileExplorer.DemoApp/yarn.lock index 4d83a17c81..de0d90a3a2 100644 --- a/modules/virtual-file-explorer/app/Volo.Abp.VirtualFileExplorer.DemoApp/yarn.lock +++ b/modules/virtual-file-explorer/app/Volo.Abp.VirtualFileExplorer.DemoApp/yarn.lock @@ -2,221 +2,221 @@ # yarn lockfile v1 -"@abp/aspnetcore.mvc.ui.theme.basic@~8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-8.3.0.tgz#a2d17eb5da2c3abfad4bcc842cfcda0e58a130a4" - integrity sha512-T2dg7WlvNSrwTCfy5wk4gqiJ/15kIjMGM4wLXIJcMYn60yGY/YeX6Q4A3R/qJzfl4JdgW5rt3GpdKv86y/ADXg== - dependencies: - "@abp/aspnetcore.mvc.ui.theme.shared" "~8.3.0" - -"@abp/aspnetcore.mvc.ui.theme.shared@~8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-8.3.0.tgz#5d6bb5181a62770e9cb967980b77e75c115c5ed7" - integrity sha512-o/0eh8jLS+YJiseTKzzioUz0vNnMFzyoz+mkyA4PlO1gqw2JFhzPhTBZ3cuyV9QlxUfEA8dWAkqAUX6vqiHwkw== - dependencies: - "@abp/aspnetcore.mvc.ui" "~8.3.0" - "@abp/bootstrap" "~8.3.0" - "@abp/bootstrap-datepicker" "~8.3.0" - "@abp/bootstrap-daterangepicker" "~8.3.0" - "@abp/datatables.net-bs5" "~8.3.0" - "@abp/font-awesome" "~8.3.0" - "@abp/jquery-form" "~8.3.0" - "@abp/jquery-validation-unobtrusive" "~8.3.0" - "@abp/lodash" "~8.3.0" - "@abp/luxon" "~8.3.0" - "@abp/malihu-custom-scrollbar-plugin" "~8.3.0" - "@abp/moment" "~8.3.0" - "@abp/select2" "~8.3.0" - "@abp/sweetalert2" "~8.3.0" - "@abp/timeago" "~8.3.0" - "@abp/toastr" "~8.3.0" - -"@abp/aspnetcore.mvc.ui@~8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-8.3.0.tgz#d7ba0539bfcc6661a347dea7f952489010b3e816" - integrity sha512-OxgZhLKiXGFYYpNJ5O/IbhinsniiBPv9586e+1Soar0GckCMIIegJxnJb1Bo1O75blrcK2cIU6LqjRT1FXt2Lw== +"@abp/aspnetcore.mvc.ui.theme.basic@~8.3.1": + version "8.3.1" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-8.3.1.tgz#f3caaf7b2bc4e5dc143b30ea2d09c0895717226f" + integrity sha512-aFu/HLgr3oIJmQIXEUuOKq6x1NMMcvj1tDX3ZTKPSwscxVlJsHo4c+9xrqYr0TlXSkBp9kado1z5dOXsdJ586g== + dependencies: + "@abp/aspnetcore.mvc.ui.theme.shared" "~8.3.1" + +"@abp/aspnetcore.mvc.ui.theme.shared@~8.3.1": + version "8.3.1" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-8.3.1.tgz#ab58e22315da663fe0b5ec52b5a612135e04b1d6" + integrity sha512-Qlp41ca5ppz7DE5Awpir6hpuEZ8m1Mi7PIARJAqHgK4hLMlBfEcxwEOs6zk2yVAYEhh2hqSchwS5L1rjzqiIfQ== + dependencies: + "@abp/aspnetcore.mvc.ui" "~8.3.1" + "@abp/bootstrap" "~8.3.1" + "@abp/bootstrap-datepicker" "~8.3.1" + "@abp/bootstrap-daterangepicker" "~8.3.1" + "@abp/datatables.net-bs5" "~8.3.1" + "@abp/font-awesome" "~8.3.1" + "@abp/jquery-form" "~8.3.1" + "@abp/jquery-validation-unobtrusive" "~8.3.1" + "@abp/lodash" "~8.3.1" + "@abp/luxon" "~8.3.1" + "@abp/malihu-custom-scrollbar-plugin" "~8.3.1" + "@abp/moment" "~8.3.1" + "@abp/select2" "~8.3.1" + "@abp/sweetalert2" "~8.3.1" + "@abp/timeago" "~8.3.1" + "@abp/toastr" "~8.3.1" + +"@abp/aspnetcore.mvc.ui@~8.3.1": + version "8.3.1" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-8.3.1.tgz#d45fd58565bbee49ab78a4a230344bd034c7f96d" + integrity sha512-9J2Zk1QFn5AQLMFqp1qztSsSLKMPnhwkNfrJQoY/fyiPpQEu9x0l7u46rmTUnibhRll/FYb9PYsHP9qMiePoBQ== dependencies: ansi-colors "^4.1.3" -"@abp/bootstrap-datepicker@~8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-8.3.0.tgz#8c1bf9efec37b671d8f28b8b1e89c1ac66684267" - integrity sha512-KCwMtm7x+cnKPeNMzhjDJUce0stwu4e57ibmvA6sMf1tmj+yB256O4E2hIDDohiT3vP/zV8HVHX6uATlcmGC9w== +"@abp/bootstrap-datepicker@~8.3.1": + version "8.3.1" + resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-8.3.1.tgz#c08c1688e6e21fcf388fa9b7317c3e5ae23e6c30" + integrity sha512-/JcKeLQFUf7ELiUBEnaE4Rh+2CC9jFqrm8QBjioACvZFU7dZSt1wqsqriLvDmVYq8xOfiQE7h+7dbQgXo/3Jpg== dependencies: bootstrap-datepicker "^1.10.0" -"@abp/bootstrap-daterangepicker@~8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-daterangepicker/-/bootstrap-daterangepicker-8.3.0.tgz#2b8ed978333502677916f88cbb3e1d1b1c8a3a17" - integrity sha512-uQSfuCQogl4BujdqvtdAoSE+z32ci8FT5+i3gLfpqbgTaxvY/Kv5NxAUH5/1sjnuAE7SMWO+eVvI3V0pXgQohg== +"@abp/bootstrap-daterangepicker@~8.3.1": + version "8.3.1" + resolved "https://registry.yarnpkg.com/@abp/bootstrap-daterangepicker/-/bootstrap-daterangepicker-8.3.1.tgz#8668a755968f55b6cc5eccf9d8fa8e77f2580746" + integrity sha512-4YCFDM1t8Eckp2cMjdM1qvd0g4O8tKwvQqO9ZeOkCik0SiUEvjHGvOhOlaOeg5sUkinXLG4wZ+8UiMHgtGfh7A== dependencies: bootstrap-daterangepicker "^3.1.0" -"@abp/bootstrap@~8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-8.3.0.tgz#96d6ea7e6ac30f6e34e495a4224f56f7b2a1a7a3" - integrity sha512-5AmdTtakmWhZmHrb7ibvvf+KwF9OGadpAe7Kv9mNEE02K2qkp7Xw4r5o/bgVl7YfLC1FA6GZZXrV2s2t0gjHtg== +"@abp/bootstrap@~8.3.1": + version "8.3.1" + resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-8.3.1.tgz#df7b0d99bd17049a9f7c52a018ef079ce9656829" + integrity sha512-DOFrIawWNTZQ/Mv7m9Mo20Kr9PeErke81xGzba3toR3Bn8jXRVUYk+ofarwceDTck53C6V1TCmgsRF3ecRrVgw== dependencies: - "@abp/core" "~8.3.0" + "@abp/core" "~8.3.1" bootstrap "^5.3.3" -"@abp/clipboard@~8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@abp/clipboard/-/clipboard-8.3.0.tgz#1b171e533f768cf42c8fc0c9c67fac1c636fee8c" - integrity sha512-T0O4OaMxLLYztAxyvEc3onEOpGHB/C8/jDcvJwd7mgpLoi9zXVfHwpnzkx/egfNJMzp49STD6Jc+jACi8Uq+CQ== +"@abp/clipboard@~8.3.1": + version "8.3.1" + resolved "https://registry.yarnpkg.com/@abp/clipboard/-/clipboard-8.3.1.tgz#f1b63562eeaf5488ed61b06472af134bb29be64b" + integrity sha512-5mvPu2ZQ6kwEF2s/r1fOcXlaj73+1E2XZbwZ12q0CSs0uSCNqc68ur3l3DdpFAszNj7A410sq4rUMkUvZwPsHw== dependencies: - "@abp/core" "~8.3.0" + "@abp/core" "~8.3.1" clipboard "^2.0.11" -"@abp/core@~8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@abp/core/-/core-8.3.0.tgz#3a68f5a9549efcc3e13500e301f2576751b51445" - integrity sha512-zrxnZi4qij/Y4AZWaXuPqs3Dd7gBtU/onX7FkYxLgQDxYBfx+84QAnPRNRFKMWaD/wKbTUB0wA66U3t2aiQX9Q== +"@abp/core@~8.3.1": + version "8.3.1" + resolved "https://registry.yarnpkg.com/@abp/core/-/core-8.3.1.tgz#1f2d5f5c55fcf0aafb1e4522e4d2a1f4d1ba679c" + integrity sha512-FtMhlHosvcSnEOYJiTgjbZ59+KB4NfhTPAk2l+X7MWIxGP+OLKFlTwd/OZBLtZ1c6r1Vzgaa7jnXJQvpQawqWQ== dependencies: - "@abp/utils" "~8.3.0" + "@abp/utils" "~8.3.1" -"@abp/datatables.net-bs5@~8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs5/-/datatables.net-bs5-8.3.0.tgz#21822ae4912a561afe9112925185aece03fcd0eb" - integrity sha512-GOGYSSHp3iPUDFRX2Y3C0wkiCOJDuYuK/zUSzQLNpOvBMZO+I/oWBcZM+qkVowIzsoRlAGV9+CVV2B/B05qidA== +"@abp/datatables.net-bs5@~8.3.1": + version "8.3.1" + resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs5/-/datatables.net-bs5-8.3.1.tgz#3522e949b66f7109f04d8367a0d61a663f36f6b0" + integrity sha512-rQw1DsZG8ir3OzNZrOJVpSwqu3I+CoOuEAvLr6xPJ1U9QszE4lqlciSR/pkDiFE/Ccau0KwuxGqbPjNvInshpA== dependencies: - "@abp/datatables.net" "~8.3.0" + "@abp/datatables.net" "~8.3.1" datatables.net-bs5 "^2.0.8" -"@abp/datatables.net@~8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-8.3.0.tgz#ff697758ce9309ba8311f23aec921c4722588c8b" - integrity sha512-4dIdv7eN1tVouOUrlF+MIdg8zQpecyH61waqLgy1q5jMZQivrTSFZ7UWMG3WVOAYjw5zSUZHZPbzA+ttnaOPkg== +"@abp/datatables.net@~8.3.1": + version "8.3.1" + resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-8.3.1.tgz#8bb3889b0267006fc4626afcb482ff34e60f4871" + integrity sha512-xxz4sKZmw2ZryTRoCzS66X5536Lg6XLCMDQzLHSbNQiIedEkvSEQtYKBcEYmh1U+nVX10S3nTk1YNSi8AqqYlg== dependencies: - "@abp/jquery" "~8.3.0" + "@abp/jquery" "~8.3.1" datatables.net "^2.0.8" -"@abp/font-awesome@~8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-8.3.0.tgz#9e4e9adc08dfca52c0a07d1608c5e5662675a4c9" - integrity sha512-NRxvM/dzvQC2Cj/F5i07XB/i6IVTmXcO9sOq6TWosWib0wGaPxRbCSjy8QUAYSD1QYaVQ30XMb3XXImaMGyd8A== +"@abp/font-awesome@~8.3.1": + version "8.3.1" + resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-8.3.1.tgz#b22ea61efbecfff0f0c088fd23ff4a46f0f9661d" + integrity sha512-JiEFfX6ArYjNAgxT42VgmPpkMbHo0TFaItFMFTx8kuFaO2KJS7c/5YVLJr3y3fylaF1d1HPtI/S3U8gF12quXA== dependencies: - "@abp/core" "~8.3.0" + "@abp/core" "~8.3.1" "@fortawesome/fontawesome-free" "^6.5.2" -"@abp/jquery-form@~8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-8.3.0.tgz#fa2ad2fedbe3d3528ee94cbbd4f94d48f0cb5e4d" - integrity sha512-olP9FmpNVTbOIewsVua0moHVYXw4Sl3chFbvTDLG6vRBohLSjllUXfgY3UEIVWR1PCqnAg+iEJZl9NHB9iOLBg== +"@abp/jquery-form@~8.3.1": + version "8.3.1" + resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-8.3.1.tgz#ba4e506aa5539d4fa7b8648aa42ed9f4605ba974" + integrity sha512-MvVYY9Je9ovHMpVkUyWbxbJcOrjyP8wbfV8EJoC9ktgIrNikP6JlDstleaRgAsoewoGpPxqSWGbOHCU6SoMUXw== dependencies: - "@abp/jquery" "~8.3.0" + "@abp/jquery" "~8.3.1" jquery-form "^4.3.0" -"@abp/jquery-validation-unobtrusive@~8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-8.3.0.tgz#0992cdd33170df83c79aa3371038c0b30e451521" - integrity sha512-9hidjq8x8sTnP5O3K2b2x9NpxvPd9WB03ENR6OfvM89kfSmQapSvBZTlCu80YK9NaQJ6MLQRLYOCuc3GHcj3EQ== +"@abp/jquery-validation-unobtrusive@~8.3.1": + version "8.3.1" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-8.3.1.tgz#bfb92f7fafc931b7a31542df3d18322c15ff9ca2" + integrity sha512-p6so0T3qyfObKi7wCj+TbyZUNIWdQMR2KgSUDKvN1zQOoDXz2GPZJS/h0LD5sMn3OPI9xSxHixlqcZwi61k1pg== dependencies: - "@abp/jquery-validation" "~8.3.0" + "@abp/jquery-validation" "~8.3.1" jquery-validation-unobtrusive "^4.0.0" -"@abp/jquery-validation@~8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-8.3.0.tgz#bd6a72c6d86f116abe3b5d2adf3752bdbbcca887" - integrity sha512-6l5BZSa3N0Fou6Se7MfUSnI2dD4SYhZ2V988bgPJQ6p37XBOZ2OAj7LEIf5FSjtUzXjao/6/vqjkPNYreNikig== +"@abp/jquery-validation@~8.3.1": + version "8.3.1" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-8.3.1.tgz#2a237e24c38da4896bcefe8e532dcff701671c1f" + integrity sha512-5+5kJjXw+smRDmbKjimIhk+E3J8UEe23smPwW+Yc7240KBRGO9YYnhrym8CnYHCnkegnW29YWmHO6FVKp/mSxA== dependencies: - "@abp/jquery" "~8.3.0" + "@abp/jquery" "~8.3.1" jquery-validation "^1.20.1" -"@abp/jquery@~8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-8.3.0.tgz#9be5ef2f769680226e6a1a981026590caf3b57ef" - integrity sha512-GsFY+n3EtS6B0pAoKd+xMnt5Dzi5bHvIbhLgDgfQfOBzAy3twGRWsPQ3nkuXXm8TppwujMNowU1oiLKPPm0AOA== +"@abp/jquery@~8.3.1": + version "8.3.1" + resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-8.3.1.tgz#e515f25498821df1a53d6329c6bc3d44abe58c2d" + integrity sha512-o3Jj1oz68mR5kW/xdpW26rK6zPJzSCzU/QnJjEVYExXGISp4GS355eJVsOlJ/dJNhiRnBcYfApx8Zm+9eltOIw== dependencies: - "@abp/core" "~8.3.0" + "@abp/core" "~8.3.1" jquery "~3.7.1" -"@abp/lodash@~8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-8.3.0.tgz#f5a0a496c999886f2d6999067bfac2e1f0c3969c" - integrity sha512-BiAsONbKR/RKG3WjRaMWVmhNe1ELEsykVq+ogG1Rhk3kwPbvze3TS8k2p0Lu/RC41/BmDUmJ5abg1pUMwkRT8w== +"@abp/lodash@~8.3.1": + version "8.3.1" + resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-8.3.1.tgz#70c1114647401d3ace1096c7e6c9bd36be8d1aa5" + integrity sha512-CaqCSZ2TijQKbIvFZGJBFSGIhBbrXJASW0jKDu6lUuzyfhQe9xayG9P83pQzrVp5GpNwInxuCqXO+qxqALHg0A== dependencies: - "@abp/core" "~8.3.0" + "@abp/core" "~8.3.1" lodash "^4.17.21" -"@abp/luxon@~8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-8.3.0.tgz#7dd3f756be1605506e26f7ac76b80cc082a12d07" - integrity sha512-8gdI5BtXkVp0sFg89QVDe8AvgQ7Qfq4JCqz2PMrKPSATR3H8GD6BCaEYpRp6CNTCjVrQjGZdzKgUyea1D3dHbw== +"@abp/luxon@~8.3.1": + version "8.3.1" + resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-8.3.1.tgz#d827ac81a1bb03a20a50d555c59ad2c24c8a9e9e" + integrity sha512-ovDJoJW0gF2QhUJHhINpYCUFXpC1OKJq55A0AzYbe+Sh7jylEF3NlvwHZuoshySc6MsSetbjRj3oE1b4e0CSyw== dependencies: - "@abp/core" "~8.3.0" + "@abp/core" "~8.3.1" luxon "^3.4.4" -"@abp/malihu-custom-scrollbar-plugin@~8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-8.3.0.tgz#c88c132c3402bbb02054ca7d446051950f87a817" - integrity sha512-nd/mb6LJa6fMxal8PGcIjIRIoZ/UHCd01WDC9YI2H4wGCGx0CA0JyHso5oc/OEzJhUL8ujO/vYm9uLb7YahPtA== +"@abp/malihu-custom-scrollbar-plugin@~8.3.1": + version "8.3.1" + resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-8.3.1.tgz#efd819695fd8e4ee37a77ca3f7fabc51632e3cb3" + integrity sha512-LyMSo90SWCwQT/j/s7i0UvI+pCthdKkWrJXq1Dfvs+/m89016fjOiCk9hCNMkZainoARJyHg9zK82koN/Q6c4A== dependencies: - "@abp/core" "~8.3.0" + "@abp/core" "~8.3.1" malihu-custom-scrollbar-plugin "^3.1.5" -"@abp/moment@~8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@abp/moment/-/moment-8.3.0.tgz#8e4f7a523ab76ef9e4cd96a399560bad38d38d1a" - integrity sha512-LywSsKuQ2GN/Btmle6CcTKa811zbvUWdC+RLQA792K9HyBs6LvN0qRRluEQZgplairRgh2pDOg8tdFlUERkv2w== +"@abp/moment@~8.3.1": + version "8.3.1" + resolved "https://registry.yarnpkg.com/@abp/moment/-/moment-8.3.1.tgz#09938caeefbbb179047b5edd7352828f8dcc8382" + integrity sha512-UEnSyeEzw/LFINfP1zwSxg3Nmx95zMw4f9bOWm2z+FeJofllmwYI4hrG9GhaJCxxV3iy+yK697U2XiBgBu6O2g== dependencies: moment "^2.30.1" -"@abp/prismjs@~8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@abp/prismjs/-/prismjs-8.3.0.tgz#0c87c63294d1452ed7152083d2fb6e70aa3aeae6" - integrity sha512-3wpwbqqlGRfQSLcBP+Qb2TKOoVGZVYYwOP6dP3So9ev8J5gFMDEizH9zLwRVHYrrsZZP8/etYnyZ0hn7ewuI5Q== +"@abp/prismjs@~8.3.1": + version "8.3.1" + resolved "https://registry.yarnpkg.com/@abp/prismjs/-/prismjs-8.3.1.tgz#e8bb9072439c0aee6bf16b351dcaea850ae13a73" + integrity sha512-WQPC4Iyr1fweoimey1xp1rZXzEsciFZloYn9rH9Hu7Bivkag2kpgx86jAGWNzMf9jo3XWo1wQHLKEtpC4kqImQ== dependencies: - "@abp/clipboard" "~8.3.0" - "@abp/core" "~8.3.0" + "@abp/clipboard" "~8.3.1" + "@abp/core" "~8.3.1" prismjs "^1.29.0" -"@abp/select2@~8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-8.3.0.tgz#ef4742fcd345394767f46180f61c6cabbd0b3867" - integrity sha512-bdLt2+ImxxpiZl4HGbYJpdDROQUT7/Z/+8A+6oJNacq3lNekdvufLYgTMxKru6zTbnd9j3HFKMOTE1eRjb9Xqg== +"@abp/select2@~8.3.1": + version "8.3.1" + resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-8.3.1.tgz#56703690adeb715e98c4a0c677f30040a560b588" + integrity sha512-yDDjkmncYJHMz5i438nsHEHZ9pfXm1ACoXhNNPQ8Ji3ZG2jwT76DamVV7zSc8Nd3v/AK5YPVBZeG4+6ZGGnfTw== dependencies: - "@abp/core" "~8.3.0" + "@abp/core" "~8.3.1" select2 "^4.0.13" -"@abp/sweetalert2@~8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-8.3.0.tgz#a63020d57e44f7940817287d3d9676288bfb85aa" - integrity sha512-ooqPM4Z2v2scnMo5l8ycTmp6t/sW4sCsvIkJ4TyM876WLQJaZxJdOao4RQWuU+dVFr9zg8cOwqLH4q7UEiO6ww== +"@abp/sweetalert2@~8.3.1": + version "8.3.1" + resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-8.3.1.tgz#3fd4913b21eec156157b5bdad95a991cf9f3f43d" + integrity sha512-yYLSv28nc6PldM4lAL2Zs+MCdGZnDLJuISzQS35xzfXvM5xKg9dgN1e/+OiYHVWULXIgZUgArUqd6In4smx2+w== dependencies: - "@abp/core" "~8.3.0" + "@abp/core" "~8.3.1" sweetalert2 "^11.3.6" -"@abp/timeago@~8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-8.3.0.tgz#b3b8d6927bf170f77af848bc1925e5ef6835bd55" - integrity sha512-Dd6xaUoF9Bp4F9WJnTsFBqY+Gt++UR7UmLvBZL/dvthkeNCu2I8MUsmshkUUjY0lIXpjZwefUOuyupQrgHXPMg== +"@abp/timeago@~8.3.1": + version "8.3.1" + resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-8.3.1.tgz#18999384ac3eb3636886ae03d5de46fbd1e2a9c1" + integrity sha512-WF8thD6vjc8TAIqjPgpoRZxL2ncwaQVcFnJuEB5sLUkj7ZqmFYNamdCdDsteyprSAb7/KsWDgwWAmGLeH4W3CQ== dependencies: - "@abp/jquery" "~8.3.0" + "@abp/jquery" "~8.3.1" timeago "^1.6.7" -"@abp/toastr@~8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-8.3.0.tgz#e68a2bd8f731e79034594bc2c736f7c66b3df1af" - integrity sha512-aWK/RaX/FmcEKhJLjsw1A0K2c04m2fRJkmo9NwzBCSscy6Msw9IMkqNWLiFDThMU8/qKzq7wq3Vmk/C0IpeAwA== +"@abp/toastr@~8.3.1": + version "8.3.1" + resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-8.3.1.tgz#541f09b905fb89d2c585d080c1bb690f3fa5f5cd" + integrity sha512-Tyz7cgFfD7HS6X4Pr51LIg/b358hAklT/NrfgE2w5G66f6vHXZB+8y/eYDJPaUeLMnuDo3Pw5M034ESKFRF76A== dependencies: - "@abp/jquery" "~8.3.0" + "@abp/jquery" "~8.3.1" toastr "^2.1.4" -"@abp/utils@~8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-8.3.0.tgz#96ae9266ad4d833fd9d723acef7fc85fabf618d9" - integrity sha512-w/XAqza4Z8wBWRoj5uPNKbd1/bE9L/uUWk6EUSBKmljMRryWQBmaPkb1XgvrOMQIbyyF60tUvvipapQLPVh6hw== +"@abp/utils@~8.3.1": + version "8.3.1" + resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-8.3.1.tgz#a0eeefbda6616940beef8376ae56b3809d3dad50" + integrity sha512-kLUll2bGNGb780Z8Bp/U9XfOYDtU1j5h6Fkqr4AqegioS7GqltI5fkpPc0oLeti05C9rJV4ca13Ip+SQ4BY6vw== dependencies: just-compare "^2.3.0" -"@abp/virtual-file-explorer@~8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@abp/virtual-file-explorer/-/virtual-file-explorer-8.3.0.tgz#44572a5251274db27e740c627d6f6169bb54d1fb" - integrity sha512-UEMeSOfpLTwEhFvmDd8+/CoBslC3n15w51Fnmz/RH007Z4M5BQvt//uTNzEV2trOn/MtAL+bf9X+Ij3Qu6JQvg== +"@abp/virtual-file-explorer@~8.3.1": + version "8.3.1" + resolved "https://registry.yarnpkg.com/@abp/virtual-file-explorer/-/virtual-file-explorer-8.3.1.tgz#a24b50f5e0aacad17bcbfc20e36f7c00a74402a6" + integrity sha512-m4yZAZFk4xcFS5rht5pm3MuZ7X7uN23n3W/RHNIpuyD0hm8OWZOGXyNITCqCRWmnpI14bxfW0xGQe9F7NpJikQ== dependencies: - "@abp/clipboard" "~8.3.0" - "@abp/prismjs" "~8.3.0" + "@abp/clipboard" "~8.3.1" + "@abp/prismjs" "~8.3.1" "@fortawesome/fontawesome-free@^6.5.2": version "6.6.0" diff --git a/npm/lerna.json b/npm/lerna.json index 7ee07a5e0a..6bcdb67463 100644 --- a/npm/lerna.json +++ b/npm/lerna.json @@ -1,5 +1,5 @@ { - "version": "8.3.0", + "version": "8.3.1", "packages": [ "packs/*" ], diff --git a/npm/ng-packs/CONTRIBUTING.md b/npm/ng-packs/CONTRIBUTING.md index da14dd623a..8b4b81406d 100644 --- a/npm/ng-packs/CONTRIBUTING.md +++ b/npm/ng-packs/CONTRIBUTING.md @@ -15,7 +15,7 @@ The `dev-app` project is the same as the Angular UI template project. `dev-app` > Reminder! If you have developed the `dev-app` template, you should do the same for the application and module templates. -For more information, see the [docs.abp.io](https://docs.abp.io) +For more information, see the [abp.io/docs](https://abp.io/docs/latest/) # Committing changes diff --git a/npm/ng-packs/apps/dev-app/src/app/home/home.component.html b/npm/ng-packs/apps/dev-app/src/app/home/home.component.html index 387f0d9968..1a0d46c2da 100644 --- a/npm/ng-packs/apps/dev-app/src/app/home/home.component.html +++ b/npm/ng-packs/apps/dev-app/src/app/home/home.component.html @@ -40,7 +40,7 @@ 'Explore the compherensive documentation to learn how to build a modern web application.', links: [ { - href: 'https://docs.abp.io/en/abp/latest?ref=tmpl', + href: 'https://abp.io/docs/latest?ref=tmpl', label: 'See Documents' } ] @@ -58,7 +58,7 @@ description: 'See the example projects built with the ABP Framework.', links: [ { - href: 'https://docs.abp.io/en/abp/latest/Samples/Index?ref=tmpl', + href: 'https://abp.io/docs/latest/samples?ref=tmpl', label: 'All samples' } ] @@ -76,11 +76,11 @@ description: 'Get involved with a vibrant community and become a contributor.', links: [ { - href: 'https://community.abp.io/', + href: 'https://abp.io/community/', label: 'Community' }, { - href: 'https://docs.abp.io/en/abp/latest/Contribution/Index?ref=tmpl', + href: 'https://abp.io/docs/latest/contribution?ref=tmpl', label: 'Contribute' } ] @@ -99,7 +99,7 @@ description: 'Take a look at our recently published articles.', links: [ { - href: 'https://blog.abp.io/abp?ref=tmpl', + href: 'https://abp.io/blog?ref=tmpl', label: 'See Blog' } ] @@ -187,13 +187,13 @@
-

Meet the ABP Commercial

+

Meet the ABP

A Complete Web Application Platform Built on the ABP Framework

- ABP Commercial is a platform based + ABP is a platform based on the open source ABP framework. It provides pre-built application modules, rapid application development tooling, professional UI themes, premium support and more.

@@ -205,7 +205,7 @@ context: { $implicit: { title: 'Startup Templates', - href: 'https://commercial.abp.io/startup-templates?ref=tmpl' + href: 'https://abp.io/startup-templates?ref=tmpl' } } " @@ -217,7 +217,7 @@ context: { $implicit: { title: 'Application Modules', - href: 'https://commercial.abp.io/modules?ref=tmpl' + href: 'https://abp.io/modules?ref=tmpl' } } " @@ -229,7 +229,7 @@ context: { $implicit: { title: 'Developer
Tools', - href: 'https://commercial.abp.io/tools?ref=tmpl' + href: 'https://abp.io/tools?ref=tmpl' } } " @@ -241,7 +241,7 @@ context: { $implicit: { title: 'UI
Themes', - href: 'https://commercial.abp.io/themes?ref=tmpl' + href: 'https://abp.io/themes?ref=tmpl' } } " @@ -253,7 +253,7 @@ context: { $implicit: { title: 'Premium Support', - href: 'https://support.abp.io/QA/Questions?ref=tmpl' + href: 'https://abp.io/support/questions?ref=tmpl' } } " @@ -265,7 +265,7 @@ context: { $implicit: { title: 'Additional Services', - href: 'https://commercial.abp.io/additional-services?ref=tmpl' + href: 'https://abp.io/services' } } " @@ -282,7 +282,7 @@ > Abp Commercial Abp =8.3.0", - "@abp/ng.theme.shared": ">=8.3.0" + "@abp/ng.core": ">=8.3.1", + "@abp/ng.theme.shared": ">=8.3.1" }, "dependencies": { "chart.js": "^3.5.1", diff --git a/npm/ng-packs/packages/core/README.md b/npm/ng-packs/packages/core/README.md index c214a715ed..1c8d5ec6de 100644 --- a/npm/ng-packs/packages/core/README.md +++ b/npm/ng-packs/packages/core/README.md @@ -5,25 +5,23 @@ For more information, check out the below links: 🔗Official Website: https://abp.io -🔗Commercial Website: https://commercial.abp.io - -🔗Commercial Demo: https://commercial.abp.io/demo +🔗Commercial Demo: https://abp.io/demo 🔗GitHub Repository: https://github.com/abpframework/abp 🔗Official Theme: https://www.LeptonTheme.com -🔗Documentation: https://docs.abp.io +🔗Documentation: https://abp.io/docs/latest/ -🔗Community: https://community.abp.io +🔗Community: https://abp.io/community/ -🔗Blog: https://blog.abp.io +🔗Blog: https://abp.io/blog/ 🔗Books: https://abp.io/books 🔗Twitter: https://twitter.com/abpframework -🔗Discord: https://community.abp.io/discord +🔗Discord: https://abp.io/community/discord 🔗Stackoverflow: https://stackoverflow.com/questions/tagged/abp @@ -34,7 +32,7 @@ For more information, check out the below links: Why should you use the ABP.IO Platform instead of creating a new solution from scratch? -You can find the answer here 👉🏻 [Why ABP Platform?](https://docs.abp.io/en/commercial/latest/why-abp-io-platform) +You can find the answer here 👉🏻 [Why ABP Platform?](https://abp.io/docs/latest/others/why-abp-platform) ## 🚀 Key Features of the ABP Framework @@ -100,7 +98,7 @@ You can find the answer here 👉🏻 [Why ABP Platform?](https://docs.abp.io/en ## 🧐 How It Works? -The following page explains how you use the ABP.IO Platform as a .NET developer 👉 [How it works?](https://commercial.abp.io/how-it-works) +The following page explains how you use the ABP.IO Platform as a .NET developer 👉 [How it works?](https://abp.io/how-it-works) ### 📘 Supported Database Providers @@ -127,4 +125,4 @@ The following page explains how you use the ABP.IO Platform as a .NET developer ## 📫 Bug & Support -Support for open-source ABP Framework client-side packages is available at [GitHub Issues](https://github.com/abpframework/abp/issues), and the commercial support is available at [support.abp.io](https://support.abp.io). +Support for open-source ABP Framework client-side packages is available at [GitHub Issues](https://github.com/abpframework/abp/issues), and the commercial support is available at [abp.io/support](https://abp.io/support/questions). diff --git a/npm/ng-packs/packages/core/locale/src/utils/register-locale.ts b/npm/ng-packs/packages/core/locale/src/utils/register-locale.ts index 5d6ae52645..b3703d3400 100644 --- a/npm/ng-packs/packages/core/locale/src/utils/register-locale.ts +++ b/npm/ng-packs/packages/core/locale/src/utils/register-locale.ts @@ -130,7 +130,7 @@ export async function defaultLocalErrorHandlerFn({ locale, resolve }: LocaleErro if (isDevMode()) { console.error( - `Cannot find the ${locale} locale file. You can check how can add new culture at https://docs.abp.io/en/abp/latest/UI/Angular/Localization#adding-a-new-culture`, + `Cannot find the ${locale} locale file. You can check how can add new culture at https://abp.io/docs/latest/framework/ui/angular/localization#adding-a-new-culture`, ); } diff --git a/npm/ng-packs/packages/core/package.json b/npm/ng-packs/packages/core/package.json index d359ae4e3b..181339afe9 100644 --- a/npm/ng-packs/packages/core/package.json +++ b/npm/ng-packs/packages/core/package.json @@ -1,13 +1,13 @@ { "name": "@abp/ng.core", - "version": "8.3.0", + "version": "8.3.1", "homepage": "https://abp.io", "repository": { "type": "git", "url": "https://github.com/abpframework/abp.git" }, "dependencies": { - "@abp/utils": "~8.3.0", + "@abp/utils": "~8.3.1", "just-clone": "^6.0.0", "just-compare": "^2.0.0", "ts-toolbelt": "^9.0.0", diff --git a/npm/ng-packs/packages/feature-management/package.json b/npm/ng-packs/packages/feature-management/package.json index c0eb03d2c0..093ffc1ee6 100644 --- a/npm/ng-packs/packages/feature-management/package.json +++ b/npm/ng-packs/packages/feature-management/package.json @@ -1,13 +1,13 @@ { "name": "@abp/ng.feature-management", - "version": "8.3.0", + "version": "8.3.1", "homepage": "https://abp.io", "repository": { "type": "git", "url": "https://github.com/abpframework/abp.git" }, "dependencies": { - "@abp/ng.theme.shared": "~8.3.0", + "@abp/ng.theme.shared": "~8.3.1", "tslib": "^2.0.0" }, "publishConfig": { diff --git a/npm/ng-packs/packages/generators/package.json b/npm/ng-packs/packages/generators/package.json index 28b79e08e7..671fdcddda 100644 --- a/npm/ng-packs/packages/generators/package.json +++ b/npm/ng-packs/packages/generators/package.json @@ -1,6 +1,6 @@ { "name": "@abp/nx.generators", - "version": "8.3.0", + "version": "8.3.1", "homepage": "https://abp.io", "generators": "./generators.json", "type": "commonjs", diff --git a/npm/ng-packs/packages/identity/package.json b/npm/ng-packs/packages/identity/package.json index cd2617105d..e14c0f7092 100644 --- a/npm/ng-packs/packages/identity/package.json +++ b/npm/ng-packs/packages/identity/package.json @@ -1,15 +1,15 @@ { "name": "@abp/ng.identity", - "version": "8.3.0", + "version": "8.3.1", "homepage": "https://abp.io", "repository": { "type": "git", "url": "https://github.com/abpframework/abp.git" }, "dependencies": { - "@abp/ng.components": "~8.3.0", - "@abp/ng.permission-management": "~8.3.0", - "@abp/ng.theme.shared": "~8.3.0", + "@abp/ng.components": "~8.3.1", + "@abp/ng.permission-management": "~8.3.1", + "@abp/ng.theme.shared": "~8.3.1", "tslib": "^2.0.0" }, "publishConfig": { diff --git a/npm/ng-packs/packages/oauth/package.json b/npm/ng-packs/packages/oauth/package.json index 89b8ed1ad7..030610c826 100644 --- a/npm/ng-packs/packages/oauth/package.json +++ b/npm/ng-packs/packages/oauth/package.json @@ -1,14 +1,14 @@ { "name": "@abp/ng.oauth", - "version": "8.3.0", + "version": "8.3.1", "homepage": "https://abp.io", "repository": { "type": "git", "url": "https://github.com/abpframework/abp.git" }, "dependencies": { - "@abp/ng.core": "~8.3.0", - "@abp/utils": "~8.3.0", + "@abp/ng.core": "~8.3.1", + "@abp/utils": "~8.3.1", "angular-oauth2-oidc": "^17.0.0", "just-clone": "^6.0.0", "just-compare": "^2.0.0", diff --git a/npm/ng-packs/packages/permission-management/package.json b/npm/ng-packs/packages/permission-management/package.json index 862c04870e..cbb055a4bf 100644 --- a/npm/ng-packs/packages/permission-management/package.json +++ b/npm/ng-packs/packages/permission-management/package.json @@ -1,13 +1,13 @@ { "name": "@abp/ng.permission-management", - "version": "8.3.0", + "version": "8.3.1", "homepage": "https://abp.io", "repository": { "type": "git", "url": "https://github.com/abpframework/abp.git" }, "dependencies": { - "@abp/ng.theme.shared": "~8.3.0", + "@abp/ng.theme.shared": "~8.3.1", "tslib": "^2.0.0" }, "publishConfig": { diff --git a/npm/ng-packs/packages/schematics/package.json b/npm/ng-packs/packages/schematics/package.json index edc2aadf71..2651054540 100644 --- a/npm/ng-packs/packages/schematics/package.json +++ b/npm/ng-packs/packages/schematics/package.json @@ -1,6 +1,6 @@ { "name": "@abp/ng.schematics", - "version": "8.3.0", + "version": "8.3.1", "author": "", "schematics": "./collection.json", "dependencies": { diff --git a/npm/ng-packs/packages/setting-management/package.json b/npm/ng-packs/packages/setting-management/package.json index 2e04e52d72..7c0ecaddf6 100644 --- a/npm/ng-packs/packages/setting-management/package.json +++ b/npm/ng-packs/packages/setting-management/package.json @@ -1,14 +1,14 @@ { "name": "@abp/ng.setting-management", - "version": "8.3.0", + "version": "8.3.1", "homepage": "https://abp.io", "repository": { "type": "git", "url": "https://github.com/abpframework/abp.git" }, "dependencies": { - "@abp/ng.components": "~8.3.0", - "@abp/ng.theme.shared": "~8.3.0", + "@abp/ng.components": "~8.3.1", + "@abp/ng.theme.shared": "~8.3.1", "tslib": "^2.0.0" }, "publishConfig": { diff --git a/npm/ng-packs/packages/tenant-management/package.json b/npm/ng-packs/packages/tenant-management/package.json index d4923aac88..f401d42077 100644 --- a/npm/ng-packs/packages/tenant-management/package.json +++ b/npm/ng-packs/packages/tenant-management/package.json @@ -1,14 +1,14 @@ { "name": "@abp/ng.tenant-management", - "version": "8.3.0", + "version": "8.3.1", "homepage": "https://abp.io", "repository": { "type": "git", "url": "https://github.com/abpframework/abp.git" }, "dependencies": { - "@abp/ng.feature-management": "~8.3.0", - "@abp/ng.theme.shared": "~8.3.0", + "@abp/ng.feature-management": "~8.3.1", + "@abp/ng.theme.shared": "~8.3.1", "tslib": "^2.0.0" }, "publishConfig": { diff --git a/npm/ng-packs/packages/theme-basic/package.json b/npm/ng-packs/packages/theme-basic/package.json index 4685fdff0f..e74b3c99c3 100644 --- a/npm/ng-packs/packages/theme-basic/package.json +++ b/npm/ng-packs/packages/theme-basic/package.json @@ -1,14 +1,14 @@ { "name": "@abp/ng.theme.basic", - "version": "8.3.0", + "version": "8.3.1", "homepage": "https://abp.io", "repository": { "type": "git", "url": "https://github.com/abpframework/abp.git" }, "dependencies": { - "@abp/ng.account.core": "~8.3.0", - "@abp/ng.theme.shared": "~8.3.0", + "@abp/ng.account.core": "~8.3.1", + "@abp/ng.theme.shared": "~8.3.1", "tslib": "^2.0.0" }, "publishConfig": { diff --git a/npm/ng-packs/packages/theme-shared/package.json b/npm/ng-packs/packages/theme-shared/package.json index 73ae5ab3fa..31852111ad 100644 --- a/npm/ng-packs/packages/theme-shared/package.json +++ b/npm/ng-packs/packages/theme-shared/package.json @@ -1,13 +1,13 @@ { "name": "@abp/ng.theme.shared", - "version": "8.3.0", + "version": "8.3.1", "homepage": "https://abp.io", "repository": { "type": "git", "url": "https://github.com/abpframework/abp.git" }, "dependencies": { - "@abp/ng.core": "~8.3.0", + "@abp/ng.core": "~8.3.1", "@fortawesome/fontawesome-free": "^5.15.4", "@ng-bootstrap/ng-bootstrap": "~16.0.0", "@ngx-validate/core": "^0.2.0", diff --git a/npm/ng-packs/packages/theme-shared/src/lib/components/password/password.component.ts b/npm/ng-packs/packages/theme-shared/src/lib/components/password/password.component.ts index 559515268c..05ca59f093 100644 --- a/npm/ng-packs/packages/theme-shared/src/lib/components/password/password.component.ts +++ b/npm/ng-packs/packages/theme-shared/src/lib/components/password/password.component.ts @@ -5,7 +5,7 @@ import { CommonModule } from '@angular/common'; /** * @deprecated use ShowPasswordDirective directive - * https://docs.abp.io/en/abp/latest/UI/Angular/Show-Password-Directive + * https://abp.io/docs/latest/framework/ui/angular/show-password-directive */ @Component({ selector: 'abp-password', diff --git a/npm/ng-packs/packages/theme-shared/src/lib/tokens/http-error.token.ts b/npm/ng-packs/packages/theme-shared/src/lib/tokens/http-error.token.ts index 96d913f297..86ebe9083c 100644 --- a/npm/ng-packs/packages/theme-shared/src/lib/tokens/http-error.token.ts +++ b/npm/ng-packs/packages/theme-shared/src/lib/tokens/http-error.token.ts @@ -4,7 +4,7 @@ import { CustomHttpErrorHandlerService, HttpErrorConfig, HttpErrorHandler } from export const HTTP_ERROR_CONFIG = new InjectionToken('HTTP_ERROR_CONFIG'); /** - @deprecated use **`CUSTOM_ERROR_HANDLERS`** injection token instead of this, see more info https://docs.abp.io/en/abp/latest/UI/Angular/HTTP-Requests + @deprecated use **`CUSTOM_ERROR_HANDLERS`** injection token instead of this, see more info https://abp.io/docs/latest/framework/ui/angular/http-requests */ export const HTTP_ERROR_HANDLER = new InjectionToken('HTTP_ERROR_HANDLER'); diff --git a/npm/packs/anchor-js/package.json b/npm/packs/anchor-js/package.json index fd89d404e0..53ef9d28d5 100644 --- a/npm/packs/anchor-js/package.json +++ b/npm/packs/anchor-js/package.json @@ -1,11 +1,11 @@ { - "version": "8.3.0", + "version": "8.3.1", "name": "@abp/anchor-js", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/core": "~8.3.0", + "@abp/core": "~8.3.1", "anchor-js": "^5.0.0" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431", diff --git a/npm/packs/aspnetcore.components.server.basictheme/package.json b/npm/packs/aspnetcore.components.server.basictheme/package.json index 0012af2931..5e56ca6830 100644 --- a/npm/packs/aspnetcore.components.server.basictheme/package.json +++ b/npm/packs/aspnetcore.components.server.basictheme/package.json @@ -1,11 +1,11 @@ { - "version": "8.3.0", + "version": "8.3.1", "name": "@abp/aspnetcore.components.server.basictheme", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/aspnetcore.components.server.theming": "~8.3.0" + "@abp/aspnetcore.components.server.theming": "~8.3.1" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431", "homepage": "https://abp.io", diff --git a/npm/packs/aspnetcore.components.server.theming/package.json b/npm/packs/aspnetcore.components.server.theming/package.json index 33703c8b11..2cf3e4a0af 100644 --- a/npm/packs/aspnetcore.components.server.theming/package.json +++ b/npm/packs/aspnetcore.components.server.theming/package.json @@ -1,12 +1,12 @@ { - "version": "8.3.0", + "version": "8.3.1", "name": "@abp/aspnetcore.components.server.theming", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/bootstrap": "~8.3.0", - "@abp/font-awesome": "~8.3.0" + "@abp/bootstrap": "~8.3.1", + "@abp/font-awesome": "~8.3.1" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431", "homepage": "https://abp.io", diff --git a/npm/packs/aspnetcore.mvc.ui.theme.basic/package.json b/npm/packs/aspnetcore.mvc.ui.theme.basic/package.json index 3f07ddc20a..67c1240fea 100644 --- a/npm/packs/aspnetcore.mvc.ui.theme.basic/package.json +++ b/npm/packs/aspnetcore.mvc.ui.theme.basic/package.json @@ -1,5 +1,5 @@ { - "version": "8.3.0", + "version": "8.3.1", "name": "@abp/aspnetcore.mvc.ui.theme.basic", "repository": { "type": "git", @@ -10,7 +10,7 @@ "access": "public" }, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.shared": "~8.3.0" + "@abp/aspnetcore.mvc.ui.theme.shared": "~8.3.1" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431", "homepage": "https://abp.io", diff --git a/npm/packs/aspnetcore.mvc.ui.theme.shared/package.json b/npm/packs/aspnetcore.mvc.ui.theme.shared/package.json index a413a66478..5ad6f78166 100644 --- a/npm/packs/aspnetcore.mvc.ui.theme.shared/package.json +++ b/npm/packs/aspnetcore.mvc.ui.theme.shared/package.json @@ -1,5 +1,5 @@ { - "version": "8.3.0", + "version": "8.3.1", "name": "@abp/aspnetcore.mvc.ui.theme.shared", "repository": { "type": "git", @@ -10,22 +10,22 @@ "access": "public" }, "dependencies": { - "@abp/aspnetcore.mvc.ui": "~8.3.0", - "@abp/bootstrap": "~8.3.0", - "@abp/bootstrap-datepicker": "~8.3.0", - "@abp/bootstrap-daterangepicker": "~8.3.0", - "@abp/datatables.net-bs5": "~8.3.0", - "@abp/font-awesome": "~8.3.0", - "@abp/jquery-form": "~8.3.0", - "@abp/jquery-validation-unobtrusive": "~8.3.0", - "@abp/lodash": "~8.3.0", - "@abp/luxon": "~8.3.0", - "@abp/malihu-custom-scrollbar-plugin": "~8.3.0", - "@abp/moment": "~8.3.0", - "@abp/select2": "~8.3.0", - "@abp/sweetalert2": "~8.3.0", - "@abp/timeago": "~8.3.0", - "@abp/toastr": "~8.3.0" + "@abp/aspnetcore.mvc.ui": "~8.3.1", + "@abp/bootstrap": "~8.3.1", + "@abp/bootstrap-datepicker": "~8.3.1", + "@abp/bootstrap-daterangepicker": "~8.3.1", + "@abp/datatables.net-bs5": "~8.3.1", + "@abp/font-awesome": "~8.3.1", + "@abp/jquery-form": "~8.3.1", + "@abp/jquery-validation-unobtrusive": "~8.3.1", + "@abp/lodash": "~8.3.1", + "@abp/luxon": "~8.3.1", + "@abp/malihu-custom-scrollbar-plugin": "~8.3.1", + "@abp/moment": "~8.3.1", + "@abp/select2": "~8.3.1", + "@abp/sweetalert2": "~8.3.1", + "@abp/timeago": "~8.3.1", + "@abp/toastr": "~8.3.1" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431", "homepage": "https://abp.io", diff --git a/npm/packs/aspnetcore.mvc.ui/package-lock.json b/npm/packs/aspnetcore.mvc.ui/package-lock.json index 7f2e9dafab..5e3fccc3ec 100644 --- a/npm/packs/aspnetcore.mvc.ui/package-lock.json +++ b/npm/packs/aspnetcore.mvc.ui/package-lock.json @@ -1,6 +1,6 @@ { "name": "@abp/aspnetcore.mvc.ui", - "version": "8.3.0", + "version": "8.3.1", "lockfileVersion": 1, "requires": true, "packages": { diff --git a/npm/packs/aspnetcore.mvc.ui/package.json b/npm/packs/aspnetcore.mvc.ui/package.json index 65e95b0e54..266cfb8a6a 100644 --- a/npm/packs/aspnetcore.mvc.ui/package.json +++ b/npm/packs/aspnetcore.mvc.ui/package.json @@ -1,5 +1,5 @@ { - "version": "8.3.0", + "version": "8.3.1", "name": "@abp/aspnetcore.mvc.ui", "repository": { "type": "git", diff --git a/npm/packs/blogging/package.json b/npm/packs/blogging/package.json index 2ef191542f..cad5fa0a3e 100644 --- a/npm/packs/blogging/package.json +++ b/npm/packs/blogging/package.json @@ -1,14 +1,14 @@ { - "version": "8.3.0", + "version": "8.3.1", "name": "@abp/blogging", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.shared": "~8.3.0", - "@abp/owl.carousel": "~8.3.0", - "@abp/prismjs": "~8.3.0", - "@abp/tui-editor": "~8.3.0" + "@abp/aspnetcore.mvc.ui.theme.shared": "~8.3.1", + "@abp/owl.carousel": "~8.3.1", + "@abp/prismjs": "~8.3.1", + "@abp/tui-editor": "~8.3.1" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431", "homepage": "https://abp.io", diff --git a/npm/packs/bootstrap-datepicker/package.json b/npm/packs/bootstrap-datepicker/package.json index ca23ca04c7..ca704f7b77 100644 --- a/npm/packs/bootstrap-datepicker/package.json +++ b/npm/packs/bootstrap-datepicker/package.json @@ -1,5 +1,5 @@ { - "version": "8.3.0", + "version": "8.3.1", "name": "@abp/bootstrap-datepicker", "repository": { "type": "git", diff --git a/npm/packs/bootstrap-daterangepicker/package.json b/npm/packs/bootstrap-daterangepicker/package.json index 4c21c29f88..42e9450a3c 100644 --- a/npm/packs/bootstrap-daterangepicker/package.json +++ b/npm/packs/bootstrap-daterangepicker/package.json @@ -1,5 +1,5 @@ { - "version": "8.3.0", + "version": "8.3.1", "name": "@abp/bootstrap-daterangepicker", "repository": { "type": "git", diff --git a/npm/packs/bootstrap/package.json b/npm/packs/bootstrap/package.json index 3f33c9d6a4..c1b30da34d 100644 --- a/npm/packs/bootstrap/package.json +++ b/npm/packs/bootstrap/package.json @@ -1,5 +1,5 @@ { - "version": "8.3.0", + "version": "8.3.1", "name": "@abp/bootstrap", "repository": { "type": "git", @@ -10,7 +10,7 @@ "access": "public" }, "dependencies": { - "@abp/core": "~8.3.0", + "@abp/core": "~8.3.1", "bootstrap": "^5.3.3" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431", diff --git a/npm/packs/chart.js/package.json b/npm/packs/chart.js/package.json index 540b145fba..a869c9c353 100644 --- a/npm/packs/chart.js/package.json +++ b/npm/packs/chart.js/package.json @@ -1,5 +1,5 @@ { - "version": "8.3.0", + "version": "8.3.1", "name": "@abp/chart.js", "publishConfig": { "access": "public" diff --git a/npm/packs/clipboard/package.json b/npm/packs/clipboard/package.json index 647f1aa46c..25a613cd21 100644 --- a/npm/packs/clipboard/package.json +++ b/npm/packs/clipboard/package.json @@ -1,11 +1,11 @@ { - "version": "8.3.0", + "version": "8.3.1", "name": "@abp/clipboard", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/core": "~8.3.0", + "@abp/core": "~8.3.1", "clipboard": "^2.0.11" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431", diff --git a/npm/packs/cms-kit.admin/package.json b/npm/packs/cms-kit.admin/package.json index 80f1fa2736..64d15bcda8 100644 --- a/npm/packs/cms-kit.admin/package.json +++ b/npm/packs/cms-kit.admin/package.json @@ -1,16 +1,16 @@ { - "version": "8.3.0", + "version": "8.3.1", "name": "@abp/cms-kit.admin", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/codemirror": "~8.3.0", - "@abp/jstree": "~8.3.0", - "@abp/markdown-it": "~8.3.0", - "@abp/slugify": "~8.3.0", - "@abp/tui-editor": "~8.3.0", - "@abp/uppy": "~8.3.0" + "@abp/codemirror": "~8.3.1", + "@abp/jstree": "~8.3.1", + "@abp/markdown-it": "~8.3.1", + "@abp/slugify": "~8.3.1", + "@abp/tui-editor": "~8.3.1", + "@abp/uppy": "~8.3.1" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431", "homepage": "https://abp.io", diff --git a/npm/packs/cms-kit.public/package.json b/npm/packs/cms-kit.public/package.json index bd1e2c0bd5..a7e407dcf9 100644 --- a/npm/packs/cms-kit.public/package.json +++ b/npm/packs/cms-kit.public/package.json @@ -1,12 +1,12 @@ { - "version": "8.3.0", + "version": "8.3.1", "name": "@abp/cms-kit.public", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/highlight.js": "~8.3.0", - "@abp/star-rating-svg": "~8.3.0" + "@abp/highlight.js": "~8.3.1", + "@abp/star-rating-svg": "~8.3.1" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431", "homepage": "https://abp.io", diff --git a/npm/packs/cms-kit/package.json b/npm/packs/cms-kit/package.json index 4a51bb35a5..03a25df6ea 100644 --- a/npm/packs/cms-kit/package.json +++ b/npm/packs/cms-kit/package.json @@ -1,12 +1,12 @@ { - "version": "8.3.0", + "version": "8.3.1", "name": "@abp/cms-kit", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/cms-kit.admin": "~8.3.0", - "@abp/cms-kit.public": "~8.3.0" + "@abp/cms-kit.admin": "~8.3.1", + "@abp/cms-kit.public": "~8.3.1" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431", "homepage": "https://abp.io", diff --git a/npm/packs/codemirror/package.json b/npm/packs/codemirror/package.json index a9c78e009a..7e018b6ec6 100644 --- a/npm/packs/codemirror/package.json +++ b/npm/packs/codemirror/package.json @@ -1,11 +1,11 @@ { - "version": "8.3.0", + "version": "8.3.1", "name": "@abp/codemirror", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/core": "~8.3.0", + "@abp/core": "~8.3.1", "codemirror": "^6.0.1" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431", diff --git a/npm/packs/core/package.json b/npm/packs/core/package.json index 2aa9201d27..49014255a9 100644 --- a/npm/packs/core/package.json +++ b/npm/packs/core/package.json @@ -1,5 +1,5 @@ { - "version": "8.3.0", + "version": "8.3.1", "name": "@abp/core", "repository": { "type": "git", @@ -10,7 +10,7 @@ "access": "public" }, "dependencies": { - "@abp/utils": "~8.3.0" + "@abp/utils": "~8.3.1" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431", "homepage": "https://abp.io", diff --git a/npm/packs/cropperjs/package.json b/npm/packs/cropperjs/package.json index f96c0e2610..3d943ff773 100644 --- a/npm/packs/cropperjs/package.json +++ b/npm/packs/cropperjs/package.json @@ -1,11 +1,11 @@ { - "version": "8.3.0", + "version": "8.3.1", "name": "@abp/cropperjs", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/core": "~8.3.0", + "@abp/core": "~8.3.1", "cropperjs": "^1.6.2" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431", diff --git a/npm/packs/datatables.net-bs4/package.json b/npm/packs/datatables.net-bs4/package.json index a3fc1c5423..f7bd27fdc3 100644 --- a/npm/packs/datatables.net-bs4/package.json +++ b/npm/packs/datatables.net-bs4/package.json @@ -1,5 +1,5 @@ { - "version": "8.3.0", + "version": "8.3.1", "name": "@abp/datatables.net-bs4", "repository": { "type": "git", @@ -10,7 +10,7 @@ "access": "public" }, "dependencies": { - "@abp/datatables.net": "~8.3.0", + "@abp/datatables.net": "~8.3.1", "datatables.net-bs4": "^2.0.8" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431", diff --git a/npm/packs/datatables.net-bs5/package.json b/npm/packs/datatables.net-bs5/package.json index d4d5e9a279..baa947afb7 100644 --- a/npm/packs/datatables.net-bs5/package.json +++ b/npm/packs/datatables.net-bs5/package.json @@ -1,11 +1,11 @@ { - "version": "8.3.0", + "version": "8.3.1", "name": "@abp/datatables.net-bs5", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/datatables.net": "~8.3.0", + "@abp/datatables.net": "~8.3.1", "datatables.net-bs5": "^2.0.8" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431", diff --git a/npm/packs/datatables.net/package.json b/npm/packs/datatables.net/package.json index 68324d0f9d..902c43e585 100644 --- a/npm/packs/datatables.net/package.json +++ b/npm/packs/datatables.net/package.json @@ -1,5 +1,5 @@ { - "version": "8.3.0", + "version": "8.3.1", "name": "@abp/datatables.net", "repository": { "type": "git", @@ -10,7 +10,7 @@ "access": "public" }, "dependencies": { - "@abp/jquery": "~8.3.0", + "@abp/jquery": "~8.3.1", "datatables.net": "^2.0.8" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431", diff --git a/npm/packs/docs/package.json b/npm/packs/docs/package.json index 36d50dea63..7efdcae40a 100644 --- a/npm/packs/docs/package.json +++ b/npm/packs/docs/package.json @@ -1,15 +1,15 @@ { - "version": "8.3.0", + "version": "8.3.1", "name": "@abp/docs", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/anchor-js": "~8.3.0", - "@abp/clipboard": "~8.3.0", - "@abp/malihu-custom-scrollbar-plugin": "~8.3.0", - "@abp/popper.js": "~8.3.0", - "@abp/prismjs": "~8.3.0" + "@abp/anchor-js": "~8.3.1", + "@abp/clipboard": "~8.3.1", + "@abp/malihu-custom-scrollbar-plugin": "~8.3.1", + "@abp/popper.js": "~8.3.1", + "@abp/prismjs": "~8.3.1" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431", "homepage": "https://abp.io", diff --git a/npm/packs/flag-icon-css/package.json b/npm/packs/flag-icon-css/package.json index a191804b85..6012a8278d 100644 --- a/npm/packs/flag-icon-css/package.json +++ b/npm/packs/flag-icon-css/package.json @@ -1,5 +1,5 @@ { - "version": "8.3.0", + "version": "8.3.1", "name": "@abp/flag-icon-css", "publishConfig": { "access": "public" diff --git a/npm/packs/flag-icons/package.json b/npm/packs/flag-icons/package.json index 900dc2df88..76b8011adf 100644 --- a/npm/packs/flag-icons/package.json +++ b/npm/packs/flag-icons/package.json @@ -1,5 +1,5 @@ { - "version": "8.3.0", + "version": "8.3.1", "name": "@abp/flag-icons", "publishConfig": { "access": "public" diff --git a/npm/packs/font-awesome/package.json b/npm/packs/font-awesome/package.json index 82a85c21e9..0c43d2da99 100644 --- a/npm/packs/font-awesome/package.json +++ b/npm/packs/font-awesome/package.json @@ -1,5 +1,5 @@ { - "version": "8.3.0", + "version": "8.3.1", "name": "@abp/font-awesome", "repository": { "type": "git", @@ -10,7 +10,7 @@ "access": "public" }, "dependencies": { - "@abp/core": "~8.3.0", + "@abp/core": "~8.3.1", "@fortawesome/fontawesome-free": "^6.5.2" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431", diff --git a/npm/packs/highlight.js/package.json b/npm/packs/highlight.js/package.json index 904dfc6554..4ac8d2cfaa 100644 --- a/npm/packs/highlight.js/package.json +++ b/npm/packs/highlight.js/package.json @@ -1,11 +1,11 @@ { - "version": "8.3.0", + "version": "8.3.1", "name": "@abp/highlight.js", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/core": "~8.3.0", + "@abp/core": "~8.3.1", "@highlightjs/cdn-assets": "~11.9.0" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431", diff --git a/npm/packs/jquery-form/package.json b/npm/packs/jquery-form/package.json index 36a3a1dcea..060313b8fd 100644 --- a/npm/packs/jquery-form/package.json +++ b/npm/packs/jquery-form/package.json @@ -1,5 +1,5 @@ { - "version": "8.3.0", + "version": "8.3.1", "name": "@abp/jquery-form", "repository": { "type": "git", @@ -10,7 +10,7 @@ "access": "public" }, "dependencies": { - "@abp/jquery": "~8.3.0", + "@abp/jquery": "~8.3.1", "jquery-form": "^4.3.0" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431", diff --git a/npm/packs/jquery-validation-unobtrusive/package.json b/npm/packs/jquery-validation-unobtrusive/package.json index ace2ea9270..bc82d5cb3b 100644 --- a/npm/packs/jquery-validation-unobtrusive/package.json +++ b/npm/packs/jquery-validation-unobtrusive/package.json @@ -1,5 +1,5 @@ { - "version": "8.3.0", + "version": "8.3.1", "name": "@abp/jquery-validation-unobtrusive", "repository": { "type": "git", @@ -10,7 +10,7 @@ "access": "public" }, "dependencies": { - "@abp/jquery-validation": "~8.3.0", + "@abp/jquery-validation": "~8.3.1", "jquery-validation-unobtrusive": "^4.0.0" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431", diff --git a/npm/packs/jquery-validation/package.json b/npm/packs/jquery-validation/package.json index 4aef5ae19f..0d09d90cae 100644 --- a/npm/packs/jquery-validation/package.json +++ b/npm/packs/jquery-validation/package.json @@ -1,5 +1,5 @@ { - "version": "8.3.0", + "version": "8.3.1", "name": "@abp/jquery-validation", "repository": { "type": "git", @@ -10,7 +10,7 @@ "access": "public" }, "dependencies": { - "@abp/jquery": "~8.3.0", + "@abp/jquery": "~8.3.1", "jquery-validation": "^1.20.1" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431", diff --git a/npm/packs/jquery/package.json b/npm/packs/jquery/package.json index 8774c94075..093737856e 100644 --- a/npm/packs/jquery/package.json +++ b/npm/packs/jquery/package.json @@ -1,5 +1,5 @@ { - "version": "8.3.0", + "version": "8.3.1", "name": "@abp/jquery", "repository": { "type": "git", @@ -10,7 +10,7 @@ "access": "public" }, "dependencies": { - "@abp/core": "~8.3.0", + "@abp/core": "~8.3.1", "jquery": "~3.7.1" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431", diff --git a/npm/packs/jstree/package.json b/npm/packs/jstree/package.json index 4923ca3fdb..6cb024bd80 100644 --- a/npm/packs/jstree/package.json +++ b/npm/packs/jstree/package.json @@ -1,11 +1,11 @@ { - "version": "8.3.0", + "version": "8.3.1", "name": "@abp/jstree", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/jquery": "~8.3.0", + "@abp/jquery": "~8.3.1", "jstree": "^3.3.16" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431", diff --git a/npm/packs/lodash/package.json b/npm/packs/lodash/package.json index 4f3a512eff..389df96373 100644 --- a/npm/packs/lodash/package.json +++ b/npm/packs/lodash/package.json @@ -1,5 +1,5 @@ { - "version": "8.3.0", + "version": "8.3.1", "name": "@abp/lodash", "repository": { "type": "git", @@ -10,7 +10,7 @@ "access": "public" }, "dependencies": { - "@abp/core": "~8.3.0", + "@abp/core": "~8.3.1", "lodash": "^4.17.21" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431", diff --git a/npm/packs/luxon/package.json b/npm/packs/luxon/package.json index a7255dd2ad..352f9a330e 100644 --- a/npm/packs/luxon/package.json +++ b/npm/packs/luxon/package.json @@ -1,5 +1,5 @@ { - "version": "8.3.0", + "version": "8.3.1", "name": "@abp/luxon", "repository": { "type": "git", @@ -10,7 +10,7 @@ "access": "public" }, "dependencies": { - "@abp/core": "~8.3.0", + "@abp/core": "~8.3.1", "luxon": "^3.4.4" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431", diff --git a/npm/packs/malihu-custom-scrollbar-plugin/package.json b/npm/packs/malihu-custom-scrollbar-plugin/package.json index 2103a1040f..c995c94e8a 100644 --- a/npm/packs/malihu-custom-scrollbar-plugin/package.json +++ b/npm/packs/malihu-custom-scrollbar-plugin/package.json @@ -1,5 +1,5 @@ { - "version": "8.3.0", + "version": "8.3.1", "name": "@abp/malihu-custom-scrollbar-plugin", "repository": { "type": "git", @@ -10,7 +10,7 @@ "access": "public" }, "dependencies": { - "@abp/core": "~8.3.0", + "@abp/core": "~8.3.1", "malihu-custom-scrollbar-plugin": "^3.1.5" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431", diff --git a/npm/packs/markdown-it/package.json b/npm/packs/markdown-it/package.json index 4146b4b7e5..26a0490bab 100644 --- a/npm/packs/markdown-it/package.json +++ b/npm/packs/markdown-it/package.json @@ -1,11 +1,11 @@ { - "version": "8.3.0", + "version": "8.3.1", "name": "@abp/markdown-it", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/core": "~8.3.0", + "@abp/core": "~8.3.1", "markdown-it": "^14.1.0" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431", diff --git a/npm/packs/moment/package.json b/npm/packs/moment/package.json index 5f906b4cd9..f6fe0152d5 100644 --- a/npm/packs/moment/package.json +++ b/npm/packs/moment/package.json @@ -1,5 +1,5 @@ { - "version": "8.3.0", + "version": "8.3.1", "name": "@abp/moment", "repository": { "type": "git", diff --git a/npm/packs/owl.carousel/package.json b/npm/packs/owl.carousel/package.json index 0b667ecb41..9df1387618 100644 --- a/npm/packs/owl.carousel/package.json +++ b/npm/packs/owl.carousel/package.json @@ -1,11 +1,11 @@ { - "version": "8.3.0", + "version": "8.3.1", "name": "@abp/owl.carousel", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/core": "~8.3.0", + "@abp/core": "~8.3.1", "owl.carousel": "^2.3.4" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431", diff --git a/npm/packs/popper.js/package.json b/npm/packs/popper.js/package.json index fa1a86b6a6..60c3085de6 100644 --- a/npm/packs/popper.js/package.json +++ b/npm/packs/popper.js/package.json @@ -1,11 +1,11 @@ { - "version": "8.3.0", + "version": "8.3.1", "name": "@abp/popper.js", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/core": "~8.3.0", + "@abp/core": "~8.3.1", "@popperjs/core": "^2.11.8" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431", diff --git a/npm/packs/prismjs/package.json b/npm/packs/prismjs/package.json index af5671f7f5..9468f7f223 100644 --- a/npm/packs/prismjs/package.json +++ b/npm/packs/prismjs/package.json @@ -1,12 +1,12 @@ { - "version": "8.3.0", + "version": "8.3.1", "name": "@abp/prismjs", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/clipboard": "~8.3.0", - "@abp/core": "~8.3.0", + "@abp/clipboard": "~8.3.1", + "@abp/core": "~8.3.1", "prismjs": "^1.29.0" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431", diff --git a/npm/packs/qrcode/README.md b/npm/packs/qrcode/README.md index 8416714abe..297acee426 100644 --- a/npm/packs/qrcode/README.md +++ b/npm/packs/qrcode/README.md @@ -5,25 +5,23 @@ For more information, check out the below links: 🔗Official Website: https://abp.io -🔗Commercial Website: https://commercial.abp.io - -🔗Commercial Demo: https://commercial.abp.io/demo +🔗Live Demo: https://abp.io/demo 🔗GitHub Repository: https://github.com/abpframework/abp 🔗Official Theme: https://www.LeptonTheme.com -🔗Documentation: https://docs.abp.io +🔗Documentation: https://abp.io/docs/latest/ -🔗Community: https://community.abp.io +🔗Community: https://abp.io/community/ -🔗Blog: https://blog.abp.io +🔗Blog: https://abp.io/blog/ 🔗Books: https://abp.io/books 🔗Twitter: https://twitter.com/abpframework -🔗Discord: https://community.abp.io/discord +🔗Discord: https://abp.io/community/discord 🔗Stackoverflow: https://stackoverflow.com/questions/tagged/abp @@ -34,7 +32,7 @@ For more information, check out the below links: Why should you use the ABP.IO Platform instead of creating a new solution from scratch? -You can find the answer here 👉🏻 [Why ABP Platform?](https://docs.abp.io/en/commercial/latest/why-abp-io-platform) +You can find the answer here 👉🏻 [Why ABP Platform?](https://abp.io/docs/latest/others/why-abp-platform) ## 🚀 Key Features of the ABP Framework @@ -99,7 +97,7 @@ You can find the answer here 👉🏻 [Why ABP Platform?](https://docs.abp.io/en ## 🧐 How It Works? -The following page explains how you use the ABP.IO Platform as a .NET developer 👉 [How it works?](https://commercial.abp.io/how-it-works) +The following page explains how you use the ABP.IO Platform as a .NET developer 👉 [How it works?](https://abp.io/how-it-works) ### 📘 Supported Database Providers @@ -126,4 +124,4 @@ The following page explains how you use the ABP.IO Platform as a .NET developer ## 📫 Bug & Support -Support for open-source ABP Framework client-side packages is available at [GitHub Issues](https://github.com/abpframework/abp/issues), and the commercial support is available at [support.abp.io](https://support.abp.io). +Support for open-source ABP Framework client-side packages is available at [GitHub Issues](https://github.com/abpframework/abp/issues), and the commercial support is available at [abp.io/support](https://abp.io/support/questions). diff --git a/npm/packs/qrcode/package.json b/npm/packs/qrcode/package.json index 0725fff12d..292d26a295 100644 --- a/npm/packs/qrcode/package.json +++ b/npm/packs/qrcode/package.json @@ -1,5 +1,5 @@ { - "version": "8.3.0", + "version": "8.3.1", "name": "@abp/qrcode", "repository": { "type": "git", @@ -10,7 +10,7 @@ "access": "public" }, "dependencies": { - "@abp/core": "~8.3.0" + "@abp/core": "~8.3.1" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431", "homepage": "https://abp.io", diff --git a/npm/packs/select2/package.json b/npm/packs/select2/package.json index 4af92ff2e9..3bab30cff0 100644 --- a/npm/packs/select2/package.json +++ b/npm/packs/select2/package.json @@ -1,5 +1,5 @@ { - "version": "8.3.0", + "version": "8.3.1", "name": "@abp/select2", "repository": { "type": "git", @@ -10,7 +10,7 @@ "access": "public" }, "dependencies": { - "@abp/core": "~8.3.0", + "@abp/core": "~8.3.1", "select2": "^4.0.13" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431", diff --git a/npm/packs/signalr/package.json b/npm/packs/signalr/package.json index 8c9363b193..f55153550a 100644 --- a/npm/packs/signalr/package.json +++ b/npm/packs/signalr/package.json @@ -1,11 +1,11 @@ { - "version": "8.3.0", + "version": "8.3.1", "name": "@abp/signalr", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/core": "~8.3.0", + "@abp/core": "~8.3.1", "@microsoft/signalr": "~8.0.0" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431", diff --git a/npm/packs/slugify/package.json b/npm/packs/slugify/package.json index e03b21ac8b..06bd3f6477 100644 --- a/npm/packs/slugify/package.json +++ b/npm/packs/slugify/package.json @@ -1,5 +1,5 @@ { - "version": "8.3.0", + "version": "8.3.1", "name": "@abp/slugify", "publishConfig": { "access": "public" diff --git a/npm/packs/star-rating-svg/package.json b/npm/packs/star-rating-svg/package.json index d3651a533e..0a6850e580 100644 --- a/npm/packs/star-rating-svg/package.json +++ b/npm/packs/star-rating-svg/package.json @@ -1,11 +1,11 @@ { - "version": "8.3.0", + "version": "8.3.1", "name": "@abp/star-rating-svg", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/jquery": "~8.3.0", + "@abp/jquery": "~8.3.1", "star-rating-svg": "^3.5.0" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431", diff --git a/npm/packs/sweetalert2/package.json b/npm/packs/sweetalert2/package.json index 4b315f3e78..6840fbe452 100644 --- a/npm/packs/sweetalert2/package.json +++ b/npm/packs/sweetalert2/package.json @@ -1,5 +1,5 @@ { - "version": "8.3.0", + "version": "8.3.1", "name": "@abp/sweetalert2", "publishConfig": { "access": "public" @@ -10,7 +10,7 @@ "directory": "npm/packs/sweetalert2" }, "dependencies": { - "@abp/core": "~8.3.0", + "@abp/core": "~8.3.1", "sweetalert2": "^11.3.6" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431", diff --git a/npm/packs/timeago/package.json b/npm/packs/timeago/package.json index 861af9ca6f..6026cf922e 100644 --- a/npm/packs/timeago/package.json +++ b/npm/packs/timeago/package.json @@ -1,5 +1,5 @@ { - "version": "8.3.0", + "version": "8.3.1", "name": "@abp/timeago", "repository": { "type": "git", @@ -10,7 +10,7 @@ "access": "public" }, "dependencies": { - "@abp/jquery": "~8.3.0", + "@abp/jquery": "~8.3.1", "timeago": "^1.6.7" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431", diff --git a/npm/packs/toastr/package.json b/npm/packs/toastr/package.json index b789d4f922..90b72675ee 100644 --- a/npm/packs/toastr/package.json +++ b/npm/packs/toastr/package.json @@ -1,5 +1,5 @@ { - "version": "8.3.0", + "version": "8.3.1", "name": "@abp/toastr", "repository": { "type": "git", @@ -10,7 +10,7 @@ "access": "public" }, "dependencies": { - "@abp/jquery": "~8.3.0", + "@abp/jquery": "~8.3.1", "toastr": "^2.1.4" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431", diff --git a/npm/packs/tui-editor/README.md b/npm/packs/tui-editor/README.md index 8da4e7cf7a..8864fb2367 100644 --- a/npm/packs/tui-editor/README.md +++ b/npm/packs/tui-editor/README.md @@ -5,25 +5,23 @@ For more information, check out the below links: 🔗Official Website: https://abp.io -🔗Commercial Website: https://commercial.abp.io - -🔗Commercial Demo: https://commercial.abp.io/demo +🔗Commercial Demo: https://abp.io/demo 🔗GitHub Repository: https://github.com/abpframework/abp 🔗Official Theme: https://www.LeptonTheme.com -🔗Documentation: https://docs.abp.io +🔗Documentation: https://abp.io/docs/latest/ -🔗Community: https://community.abp.io +🔗Community: https://abp.io/community/ -🔗Blog: https://blog.abp.io +🔗Blog: https://abp.io/blog/ 🔗Books: https://abp.io/books 🔗Twitter: https://twitter.com/abpframework -🔗Discord: https://community.abp.io/discord +🔗Discord: https://abp.io/community/discord 🔗Stackoverflow: https://stackoverflow.com/questions/tagged/abp @@ -34,7 +32,7 @@ For more information, check out the below links: Why should you use the ABP.IO Platform instead of creating a new solution from scratch? -You can find the answer here 👉🏻 [Why ABP Platform?](https://docs.abp.io/en/commercial/latest/why-abp-io-platform) +You can find the answer here 👉🏻 [Why ABP Platform?](https://abp.io/docs/latest/others/why-abp-platform) ## 🚀 Key Features of the ABP Framework @@ -99,7 +97,7 @@ You can find the answer here 👉🏻 [Why ABP Platform?](https://docs.abp.io/en ## 🧐 How It Works? -The following page explains how you use the ABP.IO Platform as a .NET developer 👉 [How it works?](https://commercial.abp.io/how-it-works) +The following page explains how you use the ABP.IO Platform as a .NET developer 👉 [How it works?](https://abp.io/how-it-works) ### 📘 Supported Database Providers @@ -126,7 +124,7 @@ The following page explains how you use the ABP.IO Platform as a .NET developer ## 📫 Bug & Support -Support for open-source ABP Framework client-side packages is available at [GitHub Issues](https://github.com/abpframework/abp/issues), and the commercial support is available at [support.abp.io](https://support.abp.io). +Support for open-source ABP Framework client-side packages is available at [GitHub Issues](https://github.com/abpframework/abp/issues), and the commercial support is available at [abp.io/support](https://abp.io/support/questions). ## How to update diff --git a/npm/packs/tui-editor/package.json b/npm/packs/tui-editor/package.json index 2c0ce92334..4b227e8c22 100644 --- a/npm/packs/tui-editor/package.json +++ b/npm/packs/tui-editor/package.json @@ -1,12 +1,12 @@ { - "version": "8.3.0", + "version": "8.3.1", "name": "@abp/tui-editor", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/jquery": "~8.3.0", - "@abp/prismjs": "~8.3.0" + "@abp/jquery": "~8.3.1", + "@abp/prismjs": "~8.3.1" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431", "homepage": "https://abp.io", diff --git a/npm/packs/uppy/package.json b/npm/packs/uppy/package.json index e93dafc93c..2eca0449ce 100644 --- a/npm/packs/uppy/package.json +++ b/npm/packs/uppy/package.json @@ -1,11 +1,11 @@ { - "version": "8.3.0", + "version": "8.3.1", "name": "@abp/uppy", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/core": "~8.3.0", + "@abp/core": "~8.3.1", "uppy": "^3.27.0" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431", diff --git a/npm/packs/utils/package.json b/npm/packs/utils/package.json index cc1530084d..00c19809d9 100644 --- a/npm/packs/utils/package.json +++ b/npm/packs/utils/package.json @@ -1,6 +1,6 @@ { "name": "@abp/utils", - "version": "8.3.0", + "version": "8.3.1", "scripts": { "prepublishOnly": "yarn install --ignore-scripts && node prepublish.js", "ng": "ng", diff --git a/npm/packs/vee-validate/package.json b/npm/packs/vee-validate/package.json index 697d06f2a6..62d116a5f4 100644 --- a/npm/packs/vee-validate/package.json +++ b/npm/packs/vee-validate/package.json @@ -1,11 +1,11 @@ { - "version": "8.3.0", + "version": "8.3.1", "name": "@abp/vee-validate", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/vue": "~8.3.0", + "@abp/vue": "~8.3.1", "vee-validate": "~3.4.4" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431", diff --git a/npm/packs/virtual-file-explorer/package.json b/npm/packs/virtual-file-explorer/package.json index 9a4a36dc12..5a9d05c2a7 100644 --- a/npm/packs/virtual-file-explorer/package.json +++ b/npm/packs/virtual-file-explorer/package.json @@ -1,12 +1,12 @@ { - "version": "8.3.0", + "version": "8.3.1", "name": "@abp/virtual-file-explorer", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/clipboard": "~8.3.0", - "@abp/prismjs": "~8.3.0" + "@abp/clipboard": "~8.3.1", + "@abp/prismjs": "~8.3.1" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431", "homepage": "https://abp.io", diff --git a/npm/packs/vue/README.md b/npm/packs/vue/README.md index 8416714abe..297acee426 100644 --- a/npm/packs/vue/README.md +++ b/npm/packs/vue/README.md @@ -5,25 +5,23 @@ For more information, check out the below links: 🔗Official Website: https://abp.io -🔗Commercial Website: https://commercial.abp.io - -🔗Commercial Demo: https://commercial.abp.io/demo +🔗Live Demo: https://abp.io/demo 🔗GitHub Repository: https://github.com/abpframework/abp 🔗Official Theme: https://www.LeptonTheme.com -🔗Documentation: https://docs.abp.io +🔗Documentation: https://abp.io/docs/latest/ -🔗Community: https://community.abp.io +🔗Community: https://abp.io/community/ -🔗Blog: https://blog.abp.io +🔗Blog: https://abp.io/blog/ 🔗Books: https://abp.io/books 🔗Twitter: https://twitter.com/abpframework -🔗Discord: https://community.abp.io/discord +🔗Discord: https://abp.io/community/discord 🔗Stackoverflow: https://stackoverflow.com/questions/tagged/abp @@ -34,7 +32,7 @@ For more information, check out the below links: Why should you use the ABP.IO Platform instead of creating a new solution from scratch? -You can find the answer here 👉🏻 [Why ABP Platform?](https://docs.abp.io/en/commercial/latest/why-abp-io-platform) +You can find the answer here 👉🏻 [Why ABP Platform?](https://abp.io/docs/latest/others/why-abp-platform) ## 🚀 Key Features of the ABP Framework @@ -99,7 +97,7 @@ You can find the answer here 👉🏻 [Why ABP Platform?](https://docs.abp.io/en ## 🧐 How It Works? -The following page explains how you use the ABP.IO Platform as a .NET developer 👉 [How it works?](https://commercial.abp.io/how-it-works) +The following page explains how you use the ABP.IO Platform as a .NET developer 👉 [How it works?](https://abp.io/how-it-works) ### 📘 Supported Database Providers @@ -126,4 +124,4 @@ The following page explains how you use the ABP.IO Platform as a .NET developer ## 📫 Bug & Support -Support for open-source ABP Framework client-side packages is available at [GitHub Issues](https://github.com/abpframework/abp/issues), and the commercial support is available at [support.abp.io](https://support.abp.io). +Support for open-source ABP Framework client-side packages is available at [GitHub Issues](https://github.com/abpframework/abp/issues), and the commercial support is available at [abp.io/support](https://abp.io/support/questions). diff --git a/npm/packs/vue/package.json b/npm/packs/vue/package.json index b3855eb41c..59b65de270 100644 --- a/npm/packs/vue/package.json +++ b/npm/packs/vue/package.json @@ -1,5 +1,5 @@ { - "version": "8.3.0", + "version": "8.3.1", "name": "@abp/vue", "publishConfig": { "access": "public" diff --git a/npm/packs/zxcvbn/package.json b/npm/packs/zxcvbn/package.json index c531c64056..8ac18f93c8 100644 --- a/npm/packs/zxcvbn/package.json +++ b/npm/packs/zxcvbn/package.json @@ -1,11 +1,11 @@ { - "version": "8.3.0", + "version": "8.3.1", "name": "@abp/zxcvbn", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/core": "~8.3.0", + "@abp/core": "~8.3.1", "zxcvbn": "^4.4.2" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431", diff --git a/source-code/Volo.Abp.Account.SourceCode/Volo.Abp.Account.SourceCode.zip b/source-code/Volo.Abp.Account.SourceCode/Volo.Abp.Account.SourceCode.zip index 19272c5597..109e89db16 100644 Binary files a/source-code/Volo.Abp.Account.SourceCode/Volo.Abp.Account.SourceCode.zip and b/source-code/Volo.Abp.Account.SourceCode/Volo.Abp.Account.SourceCode.zip differ diff --git a/source-code/Volo.Abp.AuditLogging.SourceCode/Volo.Abp.AuditLogging.SourceCode.zip b/source-code/Volo.Abp.AuditLogging.SourceCode/Volo.Abp.AuditLogging.SourceCode.zip index 64afbfd122..7caf7d574c 100644 Binary files a/source-code/Volo.Abp.AuditLogging.SourceCode/Volo.Abp.AuditLogging.SourceCode.zip and b/source-code/Volo.Abp.AuditLogging.SourceCode/Volo.Abp.AuditLogging.SourceCode.zip differ diff --git a/source-code/Volo.Abp.BackgroundJobs.SourceCode/Volo.Abp.BackgroundJobs.SourceCode.zip b/source-code/Volo.Abp.BackgroundJobs.SourceCode/Volo.Abp.BackgroundJobs.SourceCode.zip index 659f337333..be8e59c433 100644 Binary files a/source-code/Volo.Abp.BackgroundJobs.SourceCode/Volo.Abp.BackgroundJobs.SourceCode.zip and b/source-code/Volo.Abp.BackgroundJobs.SourceCode/Volo.Abp.BackgroundJobs.SourceCode.zip differ diff --git a/source-code/Volo.Abp.BasicTheme.SourceCode/Volo.Abp.BasicTheme.SourceCode.zip b/source-code/Volo.Abp.BasicTheme.SourceCode/Volo.Abp.BasicTheme.SourceCode.zip index bcbf997168..4162692aa1 100644 Binary files a/source-code/Volo.Abp.BasicTheme.SourceCode/Volo.Abp.BasicTheme.SourceCode.zip and b/source-code/Volo.Abp.BasicTheme.SourceCode/Volo.Abp.BasicTheme.SourceCode.zip differ diff --git a/source-code/Volo.Abp.BlobStoring.Database.SourceCode/Volo.Abp.BlobStoring.Database.SourceCode.zip b/source-code/Volo.Abp.BlobStoring.Database.SourceCode/Volo.Abp.BlobStoring.Database.SourceCode.zip index 015404c21b..b6d114572c 100644 Binary files a/source-code/Volo.Abp.BlobStoring.Database.SourceCode/Volo.Abp.BlobStoring.Database.SourceCode.zip and b/source-code/Volo.Abp.BlobStoring.Database.SourceCode/Volo.Abp.BlobStoring.Database.SourceCode.zip differ diff --git a/source-code/Volo.Abp.FeatureManagement.SourceCode/Volo.Abp.FeatureManagement.SourceCode.zip b/source-code/Volo.Abp.FeatureManagement.SourceCode/Volo.Abp.FeatureManagement.SourceCode.zip index 8e6bf05779..4d780aabca 100644 Binary files a/source-code/Volo.Abp.FeatureManagement.SourceCode/Volo.Abp.FeatureManagement.SourceCode.zip and b/source-code/Volo.Abp.FeatureManagement.SourceCode/Volo.Abp.FeatureManagement.SourceCode.zip differ diff --git a/source-code/Volo.Abp.Identity.SourceCode/Volo.Abp.Identity.SourceCode.zip b/source-code/Volo.Abp.Identity.SourceCode/Volo.Abp.Identity.SourceCode.zip index 870d2fc5a9..b3f04fa4e6 100644 Binary files a/source-code/Volo.Abp.Identity.SourceCode/Volo.Abp.Identity.SourceCode.zip and b/source-code/Volo.Abp.Identity.SourceCode/Volo.Abp.Identity.SourceCode.zip differ diff --git a/source-code/Volo.Abp.IdentityServer.SourceCode/Volo.Abp.IdentityServer.SourceCode.zip b/source-code/Volo.Abp.IdentityServer.SourceCode/Volo.Abp.IdentityServer.SourceCode.zip index 87d165f0ec..7ca798ec66 100644 Binary files a/source-code/Volo.Abp.IdentityServer.SourceCode/Volo.Abp.IdentityServer.SourceCode.zip and b/source-code/Volo.Abp.IdentityServer.SourceCode/Volo.Abp.IdentityServer.SourceCode.zip differ diff --git a/source-code/Volo.Abp.OpenIddict.SourceCode/Volo.Abp.OpenIddict.SourceCode.zip b/source-code/Volo.Abp.OpenIddict.SourceCode/Volo.Abp.OpenIddict.SourceCode.zip index 4fdc4696c7..f154bb54f1 100644 Binary files a/source-code/Volo.Abp.OpenIddict.SourceCode/Volo.Abp.OpenIddict.SourceCode.zip and b/source-code/Volo.Abp.OpenIddict.SourceCode/Volo.Abp.OpenIddict.SourceCode.zip differ diff --git a/source-code/Volo.Abp.PermissionManagement.SourceCode/Volo.Abp.PermissionManagement.SourceCode.zip b/source-code/Volo.Abp.PermissionManagement.SourceCode/Volo.Abp.PermissionManagement.SourceCode.zip index 2f3c13813e..649d77c3c2 100644 Binary files a/source-code/Volo.Abp.PermissionManagement.SourceCode/Volo.Abp.PermissionManagement.SourceCode.zip and b/source-code/Volo.Abp.PermissionManagement.SourceCode/Volo.Abp.PermissionManagement.SourceCode.zip differ diff --git a/source-code/Volo.Abp.SettingManagement.SourceCode/Volo.Abp.SettingManagement.SourceCode.zip b/source-code/Volo.Abp.SettingManagement.SourceCode/Volo.Abp.SettingManagement.SourceCode.zip index 110a32644c..7ceb98595a 100644 Binary files a/source-code/Volo.Abp.SettingManagement.SourceCode/Volo.Abp.SettingManagement.SourceCode.zip and b/source-code/Volo.Abp.SettingManagement.SourceCode/Volo.Abp.SettingManagement.SourceCode.zip differ diff --git a/source-code/Volo.Abp.TenantManagement.SourceCode/Volo.Abp.TenantManagement.SourceCode.zip b/source-code/Volo.Abp.TenantManagement.SourceCode/Volo.Abp.TenantManagement.SourceCode.zip index a809fb5866..5ae79fa57c 100644 Binary files a/source-code/Volo.Abp.TenantManagement.SourceCode/Volo.Abp.TenantManagement.SourceCode.zip and b/source-code/Volo.Abp.TenantManagement.SourceCode/Volo.Abp.TenantManagement.SourceCode.zip differ diff --git a/source-code/Volo.Abp.Users.SourceCode/Volo.Abp.Users.SourceCode.zip b/source-code/Volo.Abp.Users.SourceCode/Volo.Abp.Users.SourceCode.zip index f2080d9ce3..ed58d4c5ee 100644 Binary files a/source-code/Volo.Abp.Users.SourceCode/Volo.Abp.Users.SourceCode.zip and b/source-code/Volo.Abp.Users.SourceCode/Volo.Abp.Users.SourceCode.zip differ diff --git a/source-code/Volo.Abp.VirtualFileExplorer.SourceCode/Volo.Abp.VirtualFileExplorer.SourceCode.zip b/source-code/Volo.Abp.VirtualFileExplorer.SourceCode/Volo.Abp.VirtualFileExplorer.SourceCode.zip index f48f14e513..eed220d26c 100644 Binary files a/source-code/Volo.Abp.VirtualFileExplorer.SourceCode/Volo.Abp.VirtualFileExplorer.SourceCode.zip and b/source-code/Volo.Abp.VirtualFileExplorer.SourceCode/Volo.Abp.VirtualFileExplorer.SourceCode.zip differ diff --git a/source-code/Volo.Blogging.SourceCode/Volo.Blogging.SourceCode.zip b/source-code/Volo.Blogging.SourceCode/Volo.Blogging.SourceCode.zip index 759829b4b4..2cdf78bf6b 100644 Binary files a/source-code/Volo.Blogging.SourceCode/Volo.Blogging.SourceCode.zip and b/source-code/Volo.Blogging.SourceCode/Volo.Blogging.SourceCode.zip differ diff --git a/source-code/Volo.ClientSimulation.SourceCode/Volo.ClientSimulation.SourceCode.zip b/source-code/Volo.ClientSimulation.SourceCode/Volo.ClientSimulation.SourceCode.zip index 68193f472d..7c3ccf5bdd 100644 Binary files a/source-code/Volo.ClientSimulation.SourceCode/Volo.ClientSimulation.SourceCode.zip and b/source-code/Volo.ClientSimulation.SourceCode/Volo.ClientSimulation.SourceCode.zip differ diff --git a/source-code/Volo.CmsKit.SourceCode/Volo.CmsKit.SourceCode.zip b/source-code/Volo.CmsKit.SourceCode/Volo.CmsKit.SourceCode.zip index ef907dc0fc..c53fed5c0f 100644 Binary files a/source-code/Volo.CmsKit.SourceCode/Volo.CmsKit.SourceCode.zip and b/source-code/Volo.CmsKit.SourceCode/Volo.CmsKit.SourceCode.zip differ diff --git a/source-code/Volo.Docs.SourceCode/Volo.Docs.SourceCode.zip b/source-code/Volo.Docs.SourceCode/Volo.Docs.SourceCode.zip index 3142b5a37a..598e8037ad 100644 Binary files a/source-code/Volo.Docs.SourceCode/Volo.Docs.SourceCode.zip and b/source-code/Volo.Docs.SourceCode/Volo.Docs.SourceCode.zip differ diff --git a/templates/app-nolayers/angular/package.json b/templates/app-nolayers/angular/package.json index 169dea7ea5..c0caf92c3c 100644 --- a/templates/app-nolayers/angular/package.json +++ b/templates/app-nolayers/angular/package.json @@ -12,15 +12,15 @@ }, "private": true, "dependencies": { - "@abp/ng.account": "~8.3.0", - "@abp/ng.components": "~8.3.0", - "@abp/ng.core": "~8.3.0", - "@abp/ng.identity": "~8.3.0", - "@abp/ng.oauth": "~8.3.0", - "@abp/ng.setting-management": "~8.3.0", - "@abp/ng.tenant-management": "~8.3.0", - "@abp/ng.theme.lepton-x": "~3.3.0", - "@abp/ng.theme.shared": "~8.3.0", + "@abp/ng.account": "~8.3.1", + "@abp/ng.components": "~8.3.1", + "@abp/ng.core": "~8.3.1", + "@abp/ng.identity": "~8.3.1", + "@abp/ng.oauth": "~8.3.1", + "@abp/ng.setting-management": "~8.3.1", + "@abp/ng.tenant-management": "~8.3.1", + "@abp/ng.theme.lepton-x": "~3.3.1", + "@abp/ng.theme.shared": "~8.3.1", "@angular/animations": "~18.1.0", "@angular/common": "~18.1.0", "@angular/compiler": "~18.1.0", @@ -36,7 +36,7 @@ "zone.js": "~0.14.0" }, "devDependencies": { - "@abp/ng.schematics": "~8.3.0", + "@abp/ng.schematics": "~8.3.1", "@angular-devkit/build-angular": "~18.1.0", "@angular-eslint/builder": "~18.1.0", "@angular-eslint/eslint-plugin": "~18.1.0", diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server.Mongo/package.json b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server.Mongo/package.json index e2c26387ff..42cfc4551f 100644 --- a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server.Mongo/package.json +++ b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server.Mongo/package.json @@ -3,7 +3,7 @@ "name": "my-app", "private": true, "dependencies": { - "@abp/aspnetcore.components.server.leptonxlitetheme": "~3.3.0", - "@abp/aspnetcore.mvc.ui.theme.leptonxlite": "~3.3.0" + "@abp/aspnetcore.components.server.leptonxlitetheme": "~3.3.1", + "@abp/aspnetcore.mvc.ui.theme.leptonxlite": "~3.3.1" } } diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server/package.json b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server/package.json index c6901f62c8..0033791b97 100644 --- a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server/package.json +++ b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server/package.json @@ -3,7 +3,7 @@ "name": "my-app", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.leptonxlite": "~3.3.0", - "@abp/aspnetcore.components.server.leptonxlitetheme": "~3.3.0" + "@abp/aspnetcore.mvc.ui.theme.leptonxlite": "~3.3.1", + "@abp/aspnetcore.components.server.leptonxlitetheme": "~3.3.1" } } diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Server.Mongo/package.json b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Server.Mongo/package.json index 2d93d3d4d5..437b7ad692 100644 --- a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Server.Mongo/package.json +++ b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Server.Mongo/package.json @@ -3,6 +3,6 @@ "name": "my-app", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.leptonxlite": "~3.3.0" + "@abp/aspnetcore.mvc.ui.theme.leptonxlite": "~3.3.1" } } diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Server/package.json b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Server/package.json index 2d93d3d4d5..437b7ad692 100644 --- a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Server/package.json +++ b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Server/package.json @@ -3,6 +3,6 @@ "name": "my-app", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.leptonxlite": "~3.3.0" + "@abp/aspnetcore.mvc.ui.theme.leptonxlite": "~3.3.1" } } diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host.Mongo/package.json b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host.Mongo/package.json index 2d93d3d4d5..437b7ad692 100644 --- a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host.Mongo/package.json +++ b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host.Mongo/package.json @@ -3,6 +3,6 @@ "name": "my-app", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.leptonxlite": "~3.3.0" + "@abp/aspnetcore.mvc.ui.theme.leptonxlite": "~3.3.1" } } diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host/package.json b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host/package.json index 2d93d3d4d5..437b7ad692 100644 --- a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host/package.json +++ b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host/package.json @@ -3,6 +3,6 @@ "name": "my-app", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.leptonxlite": "~3.3.0" + "@abp/aspnetcore.mvc.ui.theme.leptonxlite": "~3.3.1" } } diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc.Mongo/package.json b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc.Mongo/package.json index 2d93d3d4d5..437b7ad692 100644 --- a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc.Mongo/package.json +++ b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc.Mongo/package.json @@ -3,6 +3,6 @@ "name": "my-app", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.leptonxlite": "~3.3.0" + "@abp/aspnetcore.mvc.ui.theme.leptonxlite": "~3.3.1" } } diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc/package.json b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc/package.json index 2d93d3d4d5..437b7ad692 100644 --- a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc/package.json +++ b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc/package.json @@ -3,6 +3,6 @@ "name": "my-app", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.leptonxlite": "~3.3.0" + "@abp/aspnetcore.mvc.ui.theme.leptonxlite": "~3.3.1" } } diff --git a/templates/app/angular/package.json b/templates/app/angular/package.json index 169dea7ea5..c0caf92c3c 100644 --- a/templates/app/angular/package.json +++ b/templates/app/angular/package.json @@ -12,15 +12,15 @@ }, "private": true, "dependencies": { - "@abp/ng.account": "~8.3.0", - "@abp/ng.components": "~8.3.0", - "@abp/ng.core": "~8.3.0", - "@abp/ng.identity": "~8.3.0", - "@abp/ng.oauth": "~8.3.0", - "@abp/ng.setting-management": "~8.3.0", - "@abp/ng.tenant-management": "~8.3.0", - "@abp/ng.theme.lepton-x": "~3.3.0", - "@abp/ng.theme.shared": "~8.3.0", + "@abp/ng.account": "~8.3.1", + "@abp/ng.components": "~8.3.1", + "@abp/ng.core": "~8.3.1", + "@abp/ng.identity": "~8.3.1", + "@abp/ng.oauth": "~8.3.1", + "@abp/ng.setting-management": "~8.3.1", + "@abp/ng.tenant-management": "~8.3.1", + "@abp/ng.theme.lepton-x": "~3.3.1", + "@abp/ng.theme.shared": "~8.3.1", "@angular/animations": "~18.1.0", "@angular/common": "~18.1.0", "@angular/compiler": "~18.1.0", @@ -36,7 +36,7 @@ "zone.js": "~0.14.0" }, "devDependencies": { - "@abp/ng.schematics": "~8.3.0", + "@abp/ng.schematics": "~8.3.1", "@angular-devkit/build-angular": "~18.1.0", "@angular-eslint/builder": "~18.1.0", "@angular-eslint/eslint-plugin": "~18.1.0", diff --git a/templates/app/angular/src/app/home/home.component.html b/templates/app/angular/src/app/home/home.component.html index dc5fb1a532..c4149e6905 100644 --- a/templates/app/angular/src/app/home/home.component.html +++ b/templates/app/angular/src/app/home/home.component.html @@ -1,309 +1,120 @@ -
-
-
-
-
- @if(!hasLoggedIn){ -

Welcome

-

- {{ '::LongWelcomeMessage' | abpLocalization }} -

-
{{ 'AbpAccount::Login' | abpLocalization }} - } - -

Getting Started

- +

Let's improve your application!

+

Here are some links to help you get started:

+
+
+
+
+ + } + " + > -

Web Application Development Tutorial

- - -

Customize Lepton Theme

-

Learn how to customize LeptonX Theme as you wish.

- Customize Lepton -
- - -
-
-
-
-
- - -
-
-
-
-
- -

- A unique community platform for - ABP Lovers! -

-

- Explore all ABP users' experiences with the ABP Framework, discover articles and videos on - how to use ABP, and join raffles for a chance to win surprise gifts! -

- Join ABP Community -
- -
-
-
-
- -
-
-
-
-
-

THE OFFICIAL GUIDE

-

Mastering ABP Framework

-

- Written by the creator of the ABP Framework, this book will help you gain a complete - understanding of the framework and modern web application development techniques. -

- -
-
- -
-
-
-
-
- -
- - -

- {{ context.label }} -
- - -
-
- -
-
-
+ " + > - -
-
-
-
{{ context.title }}
+
-
-
- - - @for(item of context.items; track $index; let last = $last){ - - - + ] } - -
- @if(item.icon){ -
- @if(item.iconType === 'image'){ - - }@else if(item.iconType === 'icon'){ - - }@else{ -
- } -
+
+ - - - -
-
+ } + " + > + + +

+ + + + +

+
-
diff --git a/templates/app/aspnet-core/README.md b/templates/app/aspnet-core/README.md index 3ac1e6aa79..e9dc40663d 100644 --- a/templates/app/aspnet-core/README.md +++ b/templates/app/aspnet-core/README.md @@ -2,7 +2,7 @@ ## About this solution -This is a layered startup solution based on [Domain Driven Design (DDD)](https://docs.abp.io/en/abp/latest/Domain-Driven-Design) practises. All the fundamental ABP modules are already installed. +This is a layered startup solution based on [Domain Driven Design (DDD)](https://abp.io/docs/latest/framework/architecture/domain-driven-design) practises. All the fundamental ABP modules are already installed. ### Pre-requirements @@ -52,7 +52,7 @@ It is recommended to use **two** RSA certificates, distinct from the certificate For more information, please refer to: https://documentation.openiddict.com/configuration/encryption-and-signing-credentials.html#registering-a-certificate-recommended-for-production-ready-scenarios -> Also, see the [Configuring OpenIddict](https://docs.abp.io/en/abp/latest/Deployment/Configuring-OpenIddict#production-environment) documentation for more information. +> Also, see the [Configuring OpenIddict](https://abp.io/docs/latest/deployment/configuring-openiddict#production-environment) documentation for more information. #### Install Client-Side Libraries @@ -108,43 +108,43 @@ This is a layered monolith application that consists of the following applicatio ### Deploying the application -Deploying an ABP application is not different than deploying any .NET or ASP.NET Core application. However, there are some topics that you should care about when you are deploying your applications. You can check ABP's [Deployment documentation](https://docs.abp.io/en/abp/latest/Deployment/Index) before deploying your application. +Deploying an ABP application is not different than deploying any .NET or ASP.NET Core application. However, there are some topics that you should care about when you are deploying your applications. You can check ABP's [Deployment documentation](https://abp.io/docs/latest/deployment) before deploying your application. ### Additional resources You can see the following resources to learn more about your solution and the ABP Framework: -* [Web Application Development Tutorial](https://docs.abp.io/en/abp/latest/Tutorials/Part-1) -* [Application Startup Template Structure](https://docs.abp.io/en/abp/latest/Startup-Templates/Application) +* [Web Application Development Tutorial](https://abp.io/docs/latest/tutorials/book-store/part-01?UI=Blazor&DB=EF) +* [Application Startup Template Structure](https://abp.io/docs/latest/solution-templates/layered-web-application) -* [ASP.NET Core MVC / Razor Pages: The Basic Theme](https://docs.abp.io/en/abp/latest/UI/AspNetCore/Basic-Theme) +* [ASP.NET Core MVC / Razor Pages: The Basic Theme](https://abp.io/docs/latest/framework/ui/mvc-razor-pages/basic-theme) -* [LeptonX Lite MVC UI](https://docs.abp.io/en/abp/latest/Themes/LeptonXLite/AspNetCore) +* [LeptonX Lite MVC UI](https://abp.io/docs/latest/ui-themes/lepton-x-lite/asp-net-core) -* [Blazor UI: Basic Theme](https://docs.abp.io/en/abp/latest/UI/Blazor/Basic-Theme?UI=BlazorServer) +* [Blazor UI: Basic Theme](https://abp.io/docs/latest/framework/ui/blazor/basic-theme?UI=BlazorServer) -* [LeptonX Lite Blazor UI](https://docs.abp.io/en/abp/latest/Themes/LeptonXLite/Blazor?UI=BlazorServer) +* [LeptonX Lite Blazor UI](https://abp.io/docs/latest/ui-themes/lepton-x-lite/blazor?UI=BlazorServer) -* [Blazor UI: Basic Theme](https://docs.abp.io/en/abp/latest/UI/Blazor/Basic-Theme?UI=Blazor) +* [Blazor UI: Basic Theme](https://abp.io/docs/latest/framework/ui/blazor/basic-theme?UI=Blazor) -* [LeptonX Lite Blazor UI](https://docs.abp.io/en/abp/latest/Themes/LeptonXLite/Blazor?UI=Blazor) +* [LeptonX Lite Blazor UI](https://abp.io/docs/latest/ui-themes/lepton-x-lite/blazor?UI=Blazor) -* [Angular UI: Basic Theme](https://docs.abp.io/en/abp/latest/UI/Angular/Basic-Theme) +* [Angular UI: Basic Theme](https://abp.io/docs/latest/framework/ui/angular/basic-theme) -* [LeptonX Lite Angular UI](https://docs.abp.io/en/abp/latest/Themes/LeptonXLite/Angular) +* [LeptonX Lite Angular UI](https://abp.io/docs/latest/ui-themes/lepton-x-lite/angular) diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.AuthServer/package.json b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.AuthServer/package.json index 2a1a50dcab..d5bcfbd471 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.AuthServer/package.json +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.AuthServer/package.json @@ -3,6 +3,6 @@ "name": "my-app-authserver", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.leptonxlite": "~3.3.0" + "@abp/aspnetcore.mvc.ui.theme.leptonxlite": "~3.3.1" } } diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Client/MyProjectNameBundleContributor.cs b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Client/MyProjectNameBundleContributor.cs index 8ed6208237..3eb2bbc785 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Client/MyProjectNameBundleContributor.cs +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Client/MyProjectNameBundleContributor.cs @@ -3,7 +3,7 @@ namespace MyCompanyName.MyProjectName.Blazor.Client; /* Add your global styles/scripts here. - * See https://docs.abp.io/en/abp/latest/UI/Blazor/Global-Scripts-Styles to learn how to use it + * See https://abp.io/docs/latest/framework/ui/blazor/global-scripts-styles to learn how to use it */ public class MyProjectNameBundleContributor : IBundleContributor { diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Client/Pages/Index.razor b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Client/Pages/Index.razor index 6b01b38267..a932861897 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Client/Pages/Index.razor +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Client/Pages/Index.razor @@ -1,4 +1,4 @@ -@page "/" +@page "/" @using Volo.Abp.MultiTenancy @inherits MyProjectNameComponentBase @inject AuthenticationStateProvider AuthenticationStateProvider @@ -10,39 +10,30 @@

Getting Started

Learn how to create and run - a - new web application using the application startup - template.

- Getting - Started + a new web application using the application startup template.

+ Getting Started

Web Application Development Tutorial

-

Learn how to build an ABP based - web - application named Acme.BookStore.

+

Learn how to build an ABP based web application named Acme.BookStore.

Explore Tutorial

Customize Lepton Theme

-

Learn how to customize LeptonX - Theme - as you wish.

+

Learn how to customize LeptonX Theme as you wish.

Customize Lepton
+
-

You can check for - similar problems and solutions, or open a - new topic to discuss your specific issue.

- Visit Support +

You can check for similar problems and solutions, or open a new topic to discuss your specific issue.

+ Visit Support
@@ -51,232 +42,44 @@
-

You can find content - on .NET development, cross-platform, ASP.NET - application templates, ABP-related news, and - more.

- Visit Blog - +

You can find content on .NET development, cross-platform, ASP.NET application templates, ABP-related news, and more.

+ Visit Blog
-
-
-
- -

A unique community platform - for ABP Lovers!

-

Explore all ABP users' - experiences with the ABP Framework, discover - articles and videos on how to use ABP, and join - raffles for a chance to win surprise gifts!

- Join ABP - Community -
- -
-
- -
-
-
-
-
More from ABP.IO
-
-
- -
- - - - - - - - - - - - - - - - - - - - - - - -
-
-
Latest Release Logs
-
- - - -
-
-
Video Courses
-
- - - -
-
-
Samples
-
- - - -
-
-
Books
-
- - - -
-
-
FAQ
-
- - - -
-
-
-
+
+

Let's improve your application!

+

Here are some links to help you get started:

-
-
-
-
-
-

THE OFFICIAL GUIDE

-

Mastering ABP Framework

-

Written by the creator of the ABP - Framework, this book will help you gain a complete - understanding of the framework - and modern web application development techniques.

- + +
+
+
+
+
+
Learn the ABP Framework
+

Explore the comprehensive documentation to learn how to build a modern web application.

+ See Documents
-
- +
+
+
+
Samples
+

See the example projects built with the ABP Framework.

+ All samples
- -
-
-
-
-
-
-
Follow us on Social Media
-
-
-
- - - - - - - - - - - - - - - - - - - - - - - -
- -
X.com
-
- - - -
- -
Discord
-
- - - -
- -
Stack Overflow
-
- - - -
- -
YouTube
-
- - - -
- -
Instagram
-
- - - -
+
+
+
ABP Community
+

Get involved with a vibrant community and become a contributor.

+ Community + Contribute +
diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server.Tiered/package.json b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server.Tiered/package.json index c6901f62c8..0033791b97 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server.Tiered/package.json +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server.Tiered/package.json @@ -3,7 +3,7 @@ "name": "my-app", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.leptonxlite": "~3.3.0", - "@abp/aspnetcore.components.server.leptonxlitetheme": "~3.3.0" + "@abp/aspnetcore.mvc.ui.theme.leptonxlite": "~3.3.1", + "@abp/aspnetcore.components.server.leptonxlitetheme": "~3.3.1" } } diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server/Components/Pages/Index.razor b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server/Components/Pages/Index.razor index d0a8d0ac7b..008b98b46d 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server/Components/Pages/Index.razor +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server/Components/Pages/Index.razor @@ -1,4 +1,4 @@ -@page "/" +@page "/" @using Volo.Abp.MultiTenancy @inherits MyProjectNameComponentBase @inject AuthenticationStateProvider AuthenticationStateProvider @@ -9,276 +9,92 @@

Getting Started

-

Learn how to create and run - a - new web application using the application startup - template.

- Getting - Started +

Learn how to create and run a new web application using the application startup template.

+ Getting Started

Web Application Development Tutorial

-

Learn how to build an ABP based - web - application named Acme.BookStore.

+

Learn how to build an ABP based web application named Acme.BookStore.

Explore Tutorial

Customize Lepton Theme

-

Learn how to customize LeptonX - Theme - as you wish.

+

Learn how to customize LeptonX Theme as you wish.

Customize Lepton
-
-
-
-
-
- -

You can check for - similar problems and solutions, or open a - new topic to discuss your specific issue.

- Visit Support - -
-
-
-
-
-
- -

You can find content - on .NET development, cross-platform, ASP.NET - application templates, ABP-related news, and - more.

- Visit Blog - -
-
+
+
+
+ +

You can check for similar problems and solutions, or open a new topic to discuss your specific issue.

+ Visit Support +
+
-

A unique community platform - for ABP Lovers!

-

Explore all ABP users' - experiences with the ABP Framework, discover - articles and videos on how to use ABP, and join - raffles for a chance to win surprise gifts!

- Join ABP - Community +

A unique community platform for ABP Lovers!

+

Explore all ABP users' experiences with the ABP Framework, discover articles and videos on how to use ABP, and join raffles for a chance to win surprise gifts!

+ Join ABP Community
-
-
-
-
-
More from ABP.IO
-
-
+
+

Let's improve your application!

+

Here are some links to help you get started:

+
-
- - - - - - - - - - - - - - - - - - - - - - - -
-
-
Latest Release Logs
-
- - - -
-
-
Video Courses
-
- - - -
-
-
Samples
-
- - - -
-
-
Books
-
- - - -
-
-
FAQ
-
- - - -
+
+
+
+
+
+
Learn the ABP Framework
+

Explore the comprehensive documentation to learn how to build a modern web application.

+ See Documents
-
-
-
-
-
-
-
-

THE OFFICIAL GUIDE

-

Mastering ABP Framework

-

Written by the creator of the ABP - Framework, this book will help you gain a complete - understanding of the framework - and modern web application development techniques.

- -
-
- -
+
+
+
Samples
+

See the example projects built with the ABP Framework.

+ All samples +
+
+
+
+
ABP Community
+

Get involved with a vibrant community and become a contributor.

+ Community + Contribute
-
-
-
-
-
-
Follow us on Social Media
+
+
+
+
ABP Blog
+

Take a look at our recently published articles.

+ See Blog +
-
-
- - - - - - - - - - - - - - - - - - - - - - - -
- -
X.com
-
- - - -
- -
Discord
-
- - - -
- -
Stack Overflow
-
- - - -
- -
YouTube
-
- - - -
- -
Instagram
-
- - - -
+
+
+
Github
+

Do you love the ABP Framework? Please give a star to support it!

+ See Open Source Framework
-
\ No newline at end of file +
diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server/package.json b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server/package.json index c6901f62c8..0033791b97 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server/package.json +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server/package.json @@ -3,7 +3,7 @@ "name": "my-app", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.leptonxlite": "~3.3.0", - "@abp/aspnetcore.components.server.leptonxlitetheme": "~3.3.0" + "@abp/aspnetcore.mvc.ui.theme.leptonxlite": "~3.3.1", + "@abp/aspnetcore.components.server.leptonxlitetheme": "~3.3.1" } } diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.WebApp.Client/Pages/Index.razor b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.WebApp.Client/Pages/Index.razor index 8efe9db682..b98f41c5c4 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.WebApp.Client/Pages/Index.razor +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.WebApp.Client/Pages/Index.razor @@ -1,4 +1,4 @@ -@page "/" +@page "/" @inherits MyProjectNameComponentBase @inject AuthenticationStateProvider AuthenticationStateProvider @@ -8,40 +8,80 @@

Getting Started

-

Learn how to create and run - a - new web application using the application startup - template.

- Getting - Started +

Learn how to create and run a new web application using the application startup template.

+ Getting Started

Web Application Development Tutorial

-

Learn how to build an ABP based - web - application named Acme.BookStore.

+

Learn how to build an ABP based web application named Acme.BookStore.

Explore Tutorial

Customize Lepton Theme

-

Learn how to customize LeptonX - Theme - as you wish.

+

Learn how to customize LeptonX Theme as you wish.

Customize Lepton
+ +
+

Let's improve your application!

+

Here are some links to help you get started:

+
+ +
+
+
+
+
+
Learn the ABP Framework
+

Explore the comprehensive documentation to learn how to build a modern web application.

+ See Documents +
+
+
+
+
Samples
+

See the example projects built with the ABP Framework.

+ All samples +
+
+
+
+
ABP Community
+

Get involved with a vibrant community and become a contributor.

+ Community + Contribute +
+
+
+
+
+
+
ABP Blog
+

Take a look at our recently published articles.

+ See Blog +
+
+
+
+
Github
+

Do you love the ABP Framework? Please give a star to support it!

+ GitHub +
+
+
+
+
+
-

You can check for - similar problems and solutions, or open a - new topic to discuss your specific issue.

- Visit Support +

You can check for similar problems and solutions, or open a new topic to discuss your specific issue.

+ Visit Support
@@ -50,232 +90,62 @@
-

You can find content - on .NET development, cross-platform, ASP.NET - application templates, ABP-related news, and - more.

- Visit Blog - +

You can find content on .NET development, cross-platform, ASP.NET application templates, ABP-related news, and more.

+ Visit Blog
-
-
-
- -

A unique community platform - for ABP Lovers!

-

Explore all ABP users' - experiences with the ABP Framework, discover - articles and videos on how to use ABP, and join - raffles for a chance to win surprise gifts!

- Join ABP - Community -
- -
-
-
-
-
-
-
More from ABP.IO
-
-
+
+
+

+ ABP is a platform based on the open source ABP framework. It provides pre-built application modules, + rapid application development tooling, professional UI themes, premium support, and more. +

-
- - - - - - - - - - - - - - - - - - - - - - - -
-
-
Latest Release Logs
-
- - - -
-
-
Video Courses
-
- - - -
-
-
Samples
-
- - - -
-
-
Books
-
- - - -
-
-
FAQ
-
- - - -
+
+
+
+
+ Startup Templates + Details +
-
-
-
-
-
-
-
-

THE OFFICIAL GUIDE

-

Mastering ABP Framework

-

Written by the creator of the ABP - Framework, this book will help you gain a complete - understanding of the framework - and modern web application development techniques.

- -
-
- -
+
+
+
+ Application Modules + Details +
-
-
-
-
-
-
-
Follow us on Social Media
+
+
+
+ Developer
Tools + Details +
+
+
+
+
+
+ UI Themes + Details +
+
-
-
- - - - - - - - - - - - - - - - - - - - - - - -
- -
X.com
-
- - - -
- -
Discord
-
- - - -
- -
Stack Overflow
-
- - - -
- -
YouTube
-
- - - -
- -
Instagram
-
- - - -
+
+
+
+ Support + Details +
diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.WebApp.Tiered/package.json b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.WebApp.Tiered/package.json index c6901f62c8..0033791b97 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.WebApp.Tiered/package.json +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.WebApp.Tiered/package.json @@ -3,7 +3,7 @@ "name": "my-app", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.leptonxlite": "~3.3.0", - "@abp/aspnetcore.components.server.leptonxlitetheme": "~3.3.0" + "@abp/aspnetcore.mvc.ui.theme.leptonxlite": "~3.3.1", + "@abp/aspnetcore.components.server.leptonxlitetheme": "~3.3.1" } } diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.WebApp/package.json b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.WebApp/package.json index c6901f62c8..0033791b97 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.WebApp/package.json +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.WebApp/package.json @@ -3,7 +3,7 @@ "name": "my-app", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.leptonxlite": "~3.3.0", - "@abp/aspnetcore.components.server.leptonxlitetheme": "~3.3.0" + "@abp/aspnetcore.mvc.ui.theme.leptonxlite": "~3.3.1", + "@abp/aspnetcore.components.server.leptonxlitetheme": "~3.3.1" } } diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.HostWithIds/package.json b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.HostWithIds/package.json index 2d93d3d4d5..437b7ad692 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.HostWithIds/package.json +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.HostWithIds/package.json @@ -3,6 +3,6 @@ "name": "my-app", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.leptonxlite": "~3.3.0" + "@abp/aspnetcore.mvc.ui.theme.leptonxlite": "~3.3.1" } } diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web.Host/package.json b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web.Host/package.json index 2d93d3d4d5..437b7ad692 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web.Host/package.json +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web.Host/package.json @@ -3,6 +3,6 @@ "name": "my-app", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.leptonxlite": "~3.3.0" + "@abp/aspnetcore.mvc.ui.theme.leptonxlite": "~3.3.1" } } diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web/Pages/Index.cshtml b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web/Pages/Index.cshtml index 0aac26c69a..c25e4f4486 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web/Pages/Index.cshtml +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web/Pages/Index.cshtml @@ -1,57 +1,33 @@ -@page -@using Microsoft.AspNetCore.Mvc.Localization -@using MyCompanyName.MyProjectName.Localization -@using Volo.Abp.Users -@model MyCompanyName.MyProjectName.Web.Pages.IndexModel -@inject IHtmlLocalizer L -@inject ICurrentUser CurrentUser -@section styles { - -} -@section scripts { - -} -

Getting Started

-

Learn how to create and run - a - new web application using the application startup - template.

- Getting - Started +

Learn how to create and run a new web application using the application startup template.

+ Getting Started

Web Application Development Tutorial

-

Learn how to build an ABP based - web - application named Acme.BookStore.

+

Learn how to build an ABP based web application named Acme.BookStore.

Explore Tutorial

Customize Lepton Theme

-

Learn how to customize LeptonX - Theme - as you wish.

+

Learn how to customize LeptonX Theme as you wish.

Customize Lepton
+
-

You can check for - similar problems and solutions, or open a - new topic to discuss your specific issue.

- Visit Support +

You can check for similar problems and solutions, or open a new topic to discuss your specific issue.

+ Visit Support
@@ -60,234 +36,24 @@
-

You can find content - on .NET development, cross-platform, ASP.NET - application templates, ABP-related news, and - more.

- Visit Blog - +

You can find content on .NET development, cross-platform, ASP.NET application templates, ABP-related news, and more.

+ Visit Blog
+
-

A unique community platform - for ABP Lovers!

-

Explore all ABP users' - experiences with the ABP Framework, discover - articles and videos on how to use ABP, and join - raffles for a chance to win surprise gifts!

- Join ABP - Community +

A unique community platform for ABP Lovers!

+

Explore all ABP users' experiences with the ABP Framework, discover articles and videos on how to use ABP, and join raffles for a chance to win surprise gifts!

+ Join ABP Community
- -
-
-
-
-
More from ABP.IO
-
-
- -
- - - - - - - - - - - - - - - - - - - - - - - -
-
-
Latest Release Logs
-
- - - -
-
-
Video Courses
-
- - - -
-
-
Samples
-
- - - -
-
-
Books
-
- - - -
-
-
FAQ
-
- - - -
-
-
-
-
-
-
-
-
-
-

THE OFFICIAL GUIDE

-

Mastering ABP Framework

-

Written by the creator of the ABP - Framework, this book will help you gain a complete - understanding of the framework - and modern web application development techniques.

- -
-
- -
-
- -
-
-
-
-
-
-
Follow us on Social Media
-
-
-
- - - - - - - - - - - - - - - - - - - - - - - -
- -
X.com
-
- - - -
- -
Discord
-
- - - -
- -
Stack Overflow
-
- - - -
- -
YouTube
-
- - - -
- -
Instagram
-
- - - -
-
-
-
-
-
\ No newline at end of file diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web/package.json b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web/package.json index 2d93d3d4d5..437b7ad692 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web/package.json +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web/package.json @@ -3,6 +3,6 @@ "name": "my-app", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.leptonxlite": "~3.3.0" + "@abp/aspnetcore.mvc.ui.theme.leptonxlite": "~3.3.1" } } diff --git a/templates/app/react-native/.eslintrc.json b/templates/app/react-native/.eslintrc.json deleted file mode 100644 index 6702dcefd6..0000000000 --- a/templates/app/react-native/.eslintrc.json +++ /dev/null @@ -1,25 +0,0 @@ -{ - "extends": ["airbnb", "prettier", "prettier/react"], - "parser": "babel-eslint", - "env": { - "jest": true - }, - "rules": { - "no-use-before-define": 0, - "react/jsx-filename-extension": 0, - "react/prop-types": ["error", { "ignore": ["navigation", "children"] }], - "react/require-default-props": 0, - "react/jsx-props-no-spreading": 0, - "react/forbid-prop-types": 0, - "import/prefer-default-export": 0, - "comma-dangle": 0, - "no-underscore-dangle": 1, - "no-plusplus": ["error", { "allowForLoopAfterthoughts": true }], - "no-param-reassign": 0, - "operator-linebreak": 0, - "global-require": 0 - }, - "globals": { - "fetch": false - } -} diff --git a/templates/app/react-native/.expo-shared/assets.json b/templates/app/react-native/.expo-shared/assets.json deleted file mode 100644 index 1e6decfbb5..0000000000 --- a/templates/app/react-native/.expo-shared/assets.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "12bb71342c6255bbf50437ec8f4441c083f47cdb74bd89160c15e4f43e52a1cb": true, - "40b842e832070c58deac6aa9e08fa459302ee3f9da492c7e77d93d2fbf4a56fd": true -} diff --git a/templates/app/react-native/.gitignore b/templates/app/react-native/.gitignore deleted file mode 100644 index ec8a36a257..0000000000 --- a/templates/app/react-native/.gitignore +++ /dev/null @@ -1,14 +0,0 @@ -node_modules/ -.expo/ -dist/ -npm-debug.* -*.jks -*.p8 -*.p12 -*.key -*.mobileprovision -*.orig.* -web-build/ - -# macOS -.DS_Store diff --git a/templates/app/react-native/.prettierrc b/templates/app/react-native/.prettierrc deleted file mode 100644 index 471fac2824..0000000000 --- a/templates/app/react-native/.prettierrc +++ /dev/null @@ -1,9 +0,0 @@ -{ - "trailingComma": "all", - "singleQuote": true, - "jsxSingleQuote": false, - "printWidth": 80, - "semi": true, - "jsxBracketSameLine": true, - "arrowParens": "avoid" -} diff --git a/templates/app/react-native/.vscode/extensions.json b/templates/app/react-native/.vscode/extensions.json deleted file mode 100644 index d7df89c9cd..0000000000 --- a/templates/app/react-native/.vscode/extensions.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "recommendations": ["esbenp.prettier-vscode", "dbaeumer.vscode-eslint"] -} diff --git a/templates/app/react-native/App.js b/templates/app/react-native/App.js deleted file mode 100644 index 6505569f2b..0000000000 --- a/templates/app/react-native/App.js +++ /dev/null @@ -1,101 +0,0 @@ -import { NavigationContainer } from '@react-navigation/native'; -import { createNativeStackNavigator } from '@react-navigation/native-stack'; -import i18n from 'i18n-js'; -import { NativeBaseProvider } from 'native-base'; -import React, { useEffect, useMemo, useState } from 'react'; -import { enableScreens } from 'react-native-screens'; -import { Provider } from 'react-redux'; -import { PersistGate } from 'redux-persist/integration/react'; -import { getEnvVars } from './Environment'; -import Loading from './src/components/Loading/Loading'; -import { LocalizationContext } from './src/contexts/LocalizationContext'; -import { initAPIInterceptor } from './src/interceptors/APIInterceptor'; -import AuthNavigator from './src/navigators/AuthNavigator'; -import DrawerNavigator from './src/navigators/DrawerNavigator'; -import { persistor, store } from './src/store'; -import AppActions from './src/store/actions/AppActions'; -import PersistentStorageActions from './src/store/actions/PersistentStorageActions'; -import { createLanguageSelector } from './src/store/selectors/AppSelectors'; -import { createTokenSelector } from './src/store/selectors/PersistentStorageSelectors'; -import { connectToRedux } from './src/utils/ReduxConnect'; -import { isTokenValid } from './src/utils/TokenUtils'; - -const Stack = createNativeStackNavigator(); - -const { localization } = getEnvVars(); - -i18n.defaultSeparator = '::'; - -const cloneT = i18n.t; -i18n.t = (key, ...args) => { - if (key.slice(0, 2) === '::') { - key = localization.defaultResourceName + key; - } - return cloneT(key, ...args); -}; - -enableScreens(); -initAPIInterceptor(store); - -export default function App() { - const language = createLanguageSelector()(store.getState()); - const [isReady, setIsReady] = useState(false); - - const localizationContextValue = useMemo( - () => ({ - t: i18n.t, - locale: (language || {}).cultureName, - }), - [language] - ); - - useEffect(() => { - store.dispatch( - AppActions.fetchAppConfigAsync({ - callback: () => setIsReady(true), - showLoading: true, - }) - ); - }, []); - - return ( - - - - - {isReady ? ( - - - - ) : null} - - - - - - ); -} - -function AppContainer({token, setToken}) { - const isValid = useMemo(() => isTokenValid(token), [token]); - - useEffect(() => { - if (!isValid && token && token.access_token) { - setToken({}) - } - }, [isValid]); - - - return isValid ? : -} - - -const ConnectedAppContainer = connectToRedux({ - component: AppContainer, - stateProps: (state) => ({ - token: createTokenSelector()(state), - }), - dispatchProps: { - setToken: PersistentStorageActions.setToken, - }, -}); diff --git a/templates/app/react-native/Environment.js b/templates/app/react-native/Environment.js deleted file mode 100644 index a4a23995f7..0000000000 --- a/templates/app/react-native/Environment.js +++ /dev/null @@ -1,32 +0,0 @@ -const yourIP = 'localhost'; // See the docs https://docs.abp.io/en/abp/latest/Getting-Started-React-Native?Tiered=No -const port = 44305; -const apiUrl = `http://${yourIP}:${port}`; -const ENV = { - dev: { - apiUrl: apiUrl, - oAuthConfig: { - issuer: apiUrl, - clientId: 'MyProjectName_App', - scope: 'offline_access MyProjectName', - }, - localization: { - defaultResourceName: 'MyProjectName', - }, - }, - prod: { - apiUrl: 'http://localhost:44305', - oAuthConfig: { - issuer: 'http://localhost:44305', - clientId: 'MyProjectName_App', - scope: 'offline_access MyProjectName', - }, - localization: { - defaultResourceName: 'MyProjectName', - }, - }, -}; - -export const getEnvVars = () => { - // eslint-disable-next-line no-undef - return __DEV__ ? ENV.dev : ENV.prod; -}; diff --git a/templates/app/react-native/app.json b/templates/app/react-native/app.json deleted file mode 100644 index 5b78afa519..0000000000 --- a/templates/app/react-native/app.json +++ /dev/null @@ -1,34 +0,0 @@ -{ - "expo": { - "name": "MyProjectName", - "slug": "MyProjectName", - "version": "1.0.0", - "orientation": "portrait", - "icon": "./assets/icon.png", - "splash": { - "image": "./assets/splash.png", - "resizeMode": "cover", - "backgroundColor": "#38003c" - }, - "updates": { - "fallbackToCacheTimeout": 0 - }, - "assetBundlePatterns": ["**/*"], - "ios": { - "supportsTablet": true, - "bundleIdentifier": "com.MyCompanyName.MyProjectName", - "buildNumber": "1.0.0" - }, - "android": { - "package": "com.MyCompanyName.MyProjectName", - "versionCode": 1, - "adaptiveIcon": { - "foregroundImage": "./assets/adaptive-icon.png", - "backgroundColor": "#FFFFFF" - } - }, - "web": { - "favicon": "./assets/icon.png" - } - } -} diff --git a/templates/app/react-native/assets/adaptive-icon.png b/templates/app/react-native/assets/adaptive-icon.png deleted file mode 100644 index 03d6f6b6c6..0000000000 Binary files a/templates/app/react-native/assets/adaptive-icon.png and /dev/null differ diff --git a/templates/app/react-native/assets/avatar.png b/templates/app/react-native/assets/avatar.png deleted file mode 100644 index 8a1daa0121..0000000000 Binary files a/templates/app/react-native/assets/avatar.png and /dev/null differ diff --git a/templates/app/react-native/assets/icon.png b/templates/app/react-native/assets/icon.png deleted file mode 100644 index 528c8711d7..0000000000 Binary files a/templates/app/react-native/assets/icon.png and /dev/null differ diff --git a/templates/app/react-native/assets/logo.png b/templates/app/react-native/assets/logo.png deleted file mode 100644 index b9b1e36c50..0000000000 Binary files a/templates/app/react-native/assets/logo.png and /dev/null differ diff --git a/templates/app/react-native/assets/splash.png b/templates/app/react-native/assets/splash.png deleted file mode 100644 index 0d5f0ec026..0000000000 Binary files a/templates/app/react-native/assets/splash.png and /dev/null differ diff --git a/templates/app/react-native/babel.config.js b/templates/app/react-native/babel.config.js deleted file mode 100644 index d715221e05..0000000000 --- a/templates/app/react-native/babel.config.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = function(api) { - api.cache(true); - return { - presets: ['babel-preset-expo'], - plugins: ['react-native-reanimated/plugin'], - }; -}; \ No newline at end of file diff --git a/templates/app/react-native/package.json b/templates/app/react-native/package.json deleted file mode 100644 index 9fbe23ea4b..0000000000 --- a/templates/app/react-native/package.json +++ /dev/null @@ -1,44 +0,0 @@ -{ - "name": "myprojectname", - "version": "1.0.0", - "main": "node_modules/expo/AppEntry.js", - "scripts": { - "start": "expo start --port 19000", - "android": "expo start --android", - "ios": "expo start --ios", - "web": "expo start --web", - "eject": "expo eject" - }, - "dependencies": { - "@react-native-async-storage/async-storage": "1.18.2", - "@react-navigation/drawer": "^6.5.4", - "@react-navigation/native": "^6.1.0", - "@react-navigation/native-stack": "^6.9.5", - "@reduxjs/toolkit": "^1.7.1", - "axios": "~1.2.1", - "expo": "^49.0.0", - "expo-status-bar": "~1.6.0", - "formik": "^2.2.9", - "i18n-js": "^3.8.0", - "native-base": "^3.4.25", - "prop-types": "^15.8.1", - "react": "18.2.0", - "react-dom": "18.2.0", - "react-native": "0.72.10", - "react-native-chart-kit": "^6.11.0", - "react-native-gesture-handler": "~2.12.0", - "react-native-reanimated": "~3.3.0", - "react-native-safe-area-context": "4.6.3", - "react-native-screens": "~3.22.0", - "react-native-svg": "13.9.0", - "react-native-web": "~0.19.6", - "react-redux": "^8.0.5", - "redux-persist": "^6.0.0", - "redux-saga": "^1.2.1", - "yup": "^0.32.11" - }, - "devDependencies": { - "@babel/core": "^7.19.3" - }, - "private": true -} diff --git a/templates/app/react-native/src/api/API.js b/templates/app/react-native/src/api/API.js deleted file mode 100644 index dc604f62e9..0000000000 --- a/templates/app/react-native/src/api/API.js +++ /dev/null @@ -1,11 +0,0 @@ -import axios from 'axios'; -import { getEnvVars } from '../../Environment'; - -const { apiUrl } = getEnvVars(); - -const axiosInstance = axios.create({ - baseURL: apiUrl, - withCredentials: false -}); - -export default axiosInstance; diff --git a/templates/app/react-native/src/api/AccountAPI.js b/templates/app/react-native/src/api/AccountAPI.js deleted file mode 100644 index ddf49579d3..0000000000 --- a/templates/app/react-native/src/api/AccountAPI.js +++ /dev/null @@ -1,62 +0,0 @@ -import api from './API'; -import { getEnvVars } from '../../Environment'; - -const { oAuthConfig } = getEnvVars(); - -getLoginData = (username, password) => { - const formData = { - grant_type: 'password', - scope: oAuthConfig.scope, - username: username, - password: password, - client_id: oAuthConfig.clientId, - }; - - if (oAuthConfig.clientSecret) - formData['client_secret'] = oAuthConfig.clientSecret; - - return Object.entries(formData) - .map(([key, value]) => `${key}=${encodeURIComponent(value)}`) - .join('&'); -}; - -export const login = ({ username, password }) => - api({ - method: 'POST', - url: '/connect/token', - headers: { 'Content-Type': 'application/x-www-form-urlencoded' }, - data: getLoginData(username, password), - baseURL: oAuthConfig.issuer, - }).then(({ data }) => data); - -export const Logout = ( - input = { client_id: '', token: '', token_type_hint: '' }, -) => { - if (!input.token_type_hint) { - input.token_type_hint = 'access_token'; - } - - const _data = Object.entries(input) - .map(([key, value]) => `${key}=${encodeURIComponent(value)}`) - .join('&'); - - return api({ - method: 'POST', - url: '/connect/revocat', - headers: { 'Content-Type': 'application/x-www-form-urlencoded' }, - data: _data, - baseURL: oAuthConfig.issuer, - }).then(({ data }) => data); -}; - -export const getTenant = tenantName => - api({ - method: 'GET', - url: `/api/abp/multi-tenancy/tenants/by-name/${tenantName}`, - }).then(({ data }) => data); - -export const getTenantById = tenantId => - api({ - method: 'GET', - url: `/api/abp/multi-tenancy/tenants/by-id/${tenantId}`, - }).then(({ data }) => data); diff --git a/templates/app/react-native/src/api/ApplicationConfigurationAPI.js b/templates/app/react-native/src/api/ApplicationConfigurationAPI.js deleted file mode 100644 index 96fcbea5cd..0000000000 --- a/templates/app/react-native/src/api/ApplicationConfigurationAPI.js +++ /dev/null @@ -1,30 +0,0 @@ -import i18n from 'i18n-js'; -import api from './API'; - -export const getApplicationConfiguration = () => - api - .get('/api/abp/application-configuration') - .then(({ data }) => data) - .then(async config => { - const { cultureName } = config.localization.currentCulture; - i18n.locale = cultureName; - - Object.keys(config.localization.values).forEach(key => { - const resource = config.localization.values[key]; - - if (typeof resource !== 'object') return; - - Object.keys(resource).forEach(key2 => { - if (/'{|{/g.test(resource[key2])) { - resource[key2] = resource[key2].replace(/'{|{/g, '{{').replace(/}'|}/g, '}}'); - } - }); - }); - - i18n.translations[cultureName] = { - ...config.localization.values, - ...(i18n.translations[cultureName] || {}), - }; - - return config; - }); diff --git a/templates/app/react-native/src/api/IdentityAPI.js b/templates/app/react-native/src/api/IdentityAPI.js deleted file mode 100644 index 9ae81ad2b5..0000000000 --- a/templates/app/react-native/src/api/IdentityAPI.js +++ /dev/null @@ -1,27 +0,0 @@ -import api from './API'; - - -export const getAllRoles = () => api.get('/api/identity/roles/all').then(({ data }) => data.items); - -export const getUserRoles = id => - api.get(`/api/identity/users/${id}/roles`).then(({ data }) => data.items); - -export const getUsers = (params = { maxResultCount: 10, skipCount: 0 }) => - api.get('/api/identity/users', { params }).then(({ data }) => data); - -export const getUserById = id => api.get(`/api/identity/users/${id}`).then(({ data }) => data); - -export const createUser = body => api.post('/api/identity/users', body).then(({ data }) => data); - -export const updateUser = (body, id) => - api.put(`/api/identity/users/${id}`, body).then(({ data }) => data); - -export const removeUser = id => api.delete(`/api/identity/users/${id}`); - -export const getProfileDetail = () => api.get('/api/account/my-profile').then(({ data }) => data); - -export const updateProfileDetail = body => - api.put('/api/account/my-profile', body).then(({ data }) => data); - -export const changePassword = body => - api.post('/api/account/my-profile/change-password', body).then(({ data }) => data); diff --git a/templates/app/react-native/src/api/TenantManagementAPI.js b/templates/app/react-native/src/api/TenantManagementAPI.js deleted file mode 100644 index f60ed96450..0000000000 --- a/templates/app/react-native/src/api/TenantManagementAPI.js +++ /dev/null @@ -1,21 +0,0 @@ -import api from './API'; - -export function getTenants(params = {}) { - return api.get('/api/multi-tenancy/tenants', { params }).then(({ data }) => data); -} - -export function createTenant(body) { - return api.post('/api/multi-tenancy/tenants', body).then(({ data }) => data); -} - -export function getTenantById(id) { - return api.get(`/api/multi-tenancy/tenants/${id}`).then(({ data }) => data); -} - -export function updateTenant(body, id) { - return api.put(`/api/multi-tenancy/tenants/${id}`, body).then(({ data }) => data); -} - -export function removeTenant(id) { - return api.delete(`/api/multi-tenancy/tenants/${id}`).then(({ data }) => data); -} diff --git a/templates/app/react-native/src/components/AddIcon/AddIcon.js b/templates/app/react-native/src/components/AddIcon/AddIcon.js deleted file mode 100644 index b4cc26f36f..0000000000 --- a/templates/app/react-native/src/components/AddIcon/AddIcon.js +++ /dev/null @@ -1,16 +0,0 @@ -import { Ionicons } from '@expo/vector-icons'; -import { Icon } from 'native-base'; -import React from 'react'; - -export default function AddIcon({ onPress, ...iconProps }) { - return ( - - ); -} diff --git a/templates/app/react-native/src/components/DataList/DataList.js b/templates/app/react-native/src/components/DataList/DataList.js deleted file mode 100644 index 9dce6d9562..0000000000 --- a/templates/app/react-native/src/components/DataList/DataList.js +++ /dev/null @@ -1,143 +0,0 @@ -import { Ionicons } from '@expo/vector-icons'; -import { useFocusEffect } from '@react-navigation/native'; -import i18n from 'i18n-js'; -import { Box, Center, FlatList, Icon, Input, Spinner, Text } from 'native-base'; -import PropTypes from 'prop-types'; -import React, { forwardRef, useCallback, useEffect, useState } from 'react'; -import { StyleSheet, View } from 'react-native'; -import LoadingActions from '../../store/actions/LoadingActions'; -import { debounce } from '../../utils/Debounce'; -import { connectToRedux } from '../../utils/ReduxConnect'; -import LoadingButton from '../LoadingButton/LoadingButton'; - -function DataList({ - navigation, - fetchFn, - render, - maxResultCount = 15, - debounceTime = 350, - ...props -}) { - const [records, setRecords] = useState([]); - const [totalCount, setTotalCount] = useState(0); - const [loading, setLoading] = useState(false); - const [searchLoading, setSearchLoading] = useState(false); - const [buttonLoading, setButtonLoading] = useState(false); - const [skipCount, setSkipCount] = useState(0); - const [filter, setFilter] = useState(''); - - const fetch = (skip = 0, isRefreshingActive = true) => { - if (isRefreshingActive) setLoading(true); - return fetchFn({ filter, maxResultCount, skipCount: skip }) - .then(({ items, totalCount: total }) => { - setTotalCount(total); - setRecords(skip ? [...records, ...items] : items); - setSkipCount(skip); - }) - .finally(() => { - if (isRefreshingActive) setLoading(false); - }); - }; - - const fetchPartial = () => { - if (loading || records.length === totalCount) return; - - setButtonLoading(true); - fetch(skipCount + maxResultCount, false).finally(() => - setButtonLoading(false) - ); - }; - - useFocusEffect( - useCallback(() => { - setSkipCount(0); - fetch(0, false); - }, []) - ); - - useEffect(() => { - function searchFetch() { - setSearchLoading(true); - return fetch(0, false).finally(() => - setTimeout(() => setSearchLoading(false), 150) - ); - } - debounce(searchFetch, debounceTime)(); - }, [filter]); - - return ( -
- - - ) : ( - - ) - } - /> - ( - <> - {render(...args)} - {args.index + 1 === skipCount + maxResultCount && - totalCount > records.length ? ( - - fetchPartial()} - > - {i18n.t('AbpUi::LoadMore')} - - - ) : null} - - )} - {...props} - /> - -
- ); -} - -DataList.propTypes = { - ...FlatList.propTypes, - fetchFn: PropTypes.func.isRequired, - render: PropTypes.func.isRequired, - maxResultCount: PropTypes.number, - debounceTime: PropTypes.number, -}; - -const styles = StyleSheet.create({ - container: { flex: 1 }, - list: {}, -}); - -const Forwarded = forwardRef((props, ref) => ( - -)); - -export default connectToRedux({ - component: Forwarded, - dispatchProps: { - startLoading: LoadingActions.start, - stopLoading: LoadingActions.stop, - }, -}); diff --git a/templates/app/react-native/src/components/DrawerContent/DrawerContent.js b/templates/app/react-native/src/components/DrawerContent/DrawerContent.js deleted file mode 100644 index 4f7792fab5..0000000000 --- a/templates/app/react-native/src/components/DrawerContent/DrawerContent.js +++ /dev/null @@ -1,104 +0,0 @@ -import { Ionicons } from '@expo/vector-icons'; -import Constants from 'expo-constants'; -import i18n from 'i18n-js'; -import { List, Text, View } from 'native-base'; -import PropTypes from 'prop-types'; -import React from 'react'; -import { Image, StyleSheet } from 'react-native'; -import { SafeAreaView } from 'react-native-safe-area-context'; -import { withPermission } from '../../hocs/PermissionHOC'; - -const screens = { - HomeStack: { label: '::Menu:Home', iconName: 'home' }, - UsersStack: { - label: 'AbpIdentity::Users', - iconName: 'people', - requiredPolicy: 'AbpIdentity.Users', - }, - TenantsStack: { - label: 'AbpTenantManagement::Tenants', - iconName: 'book-outline', - requiredPolicy: 'AbpTenantManagement.Tenants', - }, - SettingsStack: { label: 'AbpSettingManagement::Settings', iconName: 'cog' }, -}; - -const ListItemWithPermission = withPermission(List.Item); - -function DrawerContent({ - navigation, - state: { routeNames, index: currentScreenIndex }, -}) { - const navigate = (screen) => { - navigation.navigate(screen); - navigation.closeDrawer(); - }; - - return ( - - - - - - - {routeNames.map((name) => ( - navigate(name)} - my="0" - > - - {i18n.t(screens[name].label)} - - ))} - - - - - © MyProjectName - - - v{Constants.expoConfig.version} - - - - ); -} - -const styles = StyleSheet.create({ - container: { - flexGrow: 1, - }, - logo: { - marginTop: 20, - marginBottom: 15, - }, - headerView: { - alignItems: 'center', - }, - footer: { - backgroundColor: '#eee', - flexDirection: 'row', - justifyContent: 'space-between', - }, - copyRight: { - margin: 15, - }, - version: { - margin: 15, - }, -}); - -DrawerContent.propTypes = { - state: PropTypes.object.isRequired, -}; - -export default DrawerContent; diff --git a/templates/app/react-native/src/components/FormButtons/FormButtons.js b/templates/app/react-native/src/components/FormButtons/FormButtons.js deleted file mode 100644 index d844f7747a..0000000000 --- a/templates/app/react-native/src/components/FormButtons/FormButtons.js +++ /dev/null @@ -1,78 +0,0 @@ -import i18n from 'i18n-js'; -import { Button, Text } from 'native-base'; -import PropTypes from 'prop-types'; -import React, { forwardRef } from 'react'; -import { Alert, StyleSheet, View } from 'react-native'; - -function FormButtons({ - submit, - remove, - removeMessage, - isRemoveDisabled, - isSubmitDisabled, - isShowRemove = false, - isShowSubmit = true, -}) { - const confirmation = () => { - Alert.alert( - i18n.t('AbpUi::AreYouSure'), - removeMessage, - [ - { - text: i18n.t('AbpUi::Cancel'), - style: 'cancel', - }, - { text: i18n.t('AbpUi::Yes'), onPress: () => remove() }, - ], - { cancelable: true }, - ); - }; - - return ( - - {isShowRemove ? ( - - ) : null} - {isShowSubmit ? ( - - ) : null} - - ); -} - -FormButtons.propTypes = { - submit: PropTypes.func.isRequired, - remove: PropTypes.func, - removeMessage: PropTypes.string, - style: PropTypes.any, - isRemoveDisabled: PropTypes.bool, - isSubmitDisabled: PropTypes.bool, - isShowRemove: PropTypes.bool, - isShowSubmit: PropTypes.bool, -}; - -const styles = StyleSheet.create({ - container: { - width: '100%', - justifyContent: 'center', - alignItems: 'center', - position: 'absolute', - bottom: 0, - flexDirection: 'row', - }, -}); - -const Forwarded = forwardRef((props, ref) => ); - -export default Forwarded; diff --git a/templates/app/react-native/src/components/FormButtons/index.js b/templates/app/react-native/src/components/FormButtons/index.js deleted file mode 100644 index bf8864e7e0..0000000000 --- a/templates/app/react-native/src/components/FormButtons/index.js +++ /dev/null @@ -1 +0,0 @@ -export { default as FormButtons } from './FormButtons'; diff --git a/templates/app/react-native/src/components/HamburgerIcon/HamburgerIcon.js b/templates/app/react-native/src/components/HamburgerIcon/HamburgerIcon.js deleted file mode 100644 index 2d165f8249..0000000000 --- a/templates/app/react-native/src/components/HamburgerIcon/HamburgerIcon.js +++ /dev/null @@ -1,17 +0,0 @@ -import { Ionicons } from '@expo/vector-icons'; -import { Icon } from 'native-base'; -import React from 'react'; -import { Platform } from 'react-native'; - -export default function HamburgerIcon({ navigation, ...iconProps }) { - return ( - navigation.openDrawer()} - as={Ionicons} - name={Platform.OS ? 'ios-menu' : 'md-menu'} - size="8" - marginLeft={2} - {...iconProps} - /> - ); -} diff --git a/templates/app/react-native/src/components/Loading/Loading.js b/templates/app/react-native/src/components/Loading/Loading.js deleted file mode 100644 index bd8f5ff180..0000000000 --- a/templates/app/react-native/src/components/Loading/Loading.js +++ /dev/null @@ -1,62 +0,0 @@ -import { Spinner, View } from 'native-base'; -import PropTypes from 'prop-types'; -import React, { forwardRef } from 'react'; -import { StyleSheet } from 'react-native'; -import { - createLoadingSelector, - createOpacitySelector -} from '../../store/selectors/LoadingSelectors'; -import { connectToRedux } from '../../utils/ReduxConnect'; - -function Loading({ loading, opacity }) { - return loading ? ( - - - - - ) : null; -} -const Forwarded = forwardRef((props, ref) => ); - -const backdropStyle = { - position: 'absolute', - top: 0, - left: 0, - width: '100%', - height: '100%', - backgroundColor: '#fff', -}; - -export const styles = StyleSheet.create({ - container: { - ...backdropStyle, - backgroundColor: 'transparent', - // zIndex: activeTheme.zIndex.indicator, // TODO - alignItems: 'center', - justifyContent: 'center', - }, - backdrop: backdropStyle, - spinner: { - // color: activeTheme.brandPrimary, // TODO - fontSize: 100, - }, -}); - -Loading.propTypes = { - style: PropTypes.objectOf(PropTypes.any), - loading: PropTypes.bool, - opacity: PropTypes.number, -}; - -export default connectToRedux({ - component: Forwarded, - stateProps: state => ({ - loading: createLoadingSelector()(state), - opacity: createOpacitySelector()(state), - }), -}); diff --git a/templates/app/react-native/src/components/LoadingButton/LoadingButton.js b/templates/app/react-native/src/components/LoadingButton/LoadingButton.js deleted file mode 100644 index d36c7fc68c..0000000000 --- a/templates/app/react-native/src/components/LoadingButton/LoadingButton.js +++ /dev/null @@ -1,22 +0,0 @@ -import { Button, Spinner } from 'native-base'; -import PropTypes from 'prop-types'; -import React from 'react'; -import { StyleSheet } from 'react-native'; - -export default function LoadingButton({ loading = false, style, children, ...props }) { - return ( - - ); -} - -LoadingButton.propTypes = { - ...Button.propTypes, - loading: PropTypes.bool.isRequired, -}; - -const styles = StyleSheet.create({ - button: { marginTop: 20, marginBottom: 30, height: 30 }, -}); \ No newline at end of file diff --git a/templates/app/react-native/src/components/TenantBox/TenantBox.js b/templates/app/react-native/src/components/TenantBox/TenantBox.js deleted file mode 100644 index 939efb3c88..0000000000 --- a/templates/app/react-native/src/components/TenantBox/TenantBox.js +++ /dev/null @@ -1,143 +0,0 @@ -import i18n from 'i18n-js'; -import { Box, Button, FormControl, Input, Text } from 'native-base'; -import PropTypes from 'prop-types'; -import React, { forwardRef, useState } from 'react'; -import { Alert, StyleSheet, View } from 'react-native'; -import { getTenant } from '../../api/AccountAPI'; -import PersistentStorageActions from '../../store/actions/PersistentStorageActions'; -import { createTenantSelector } from '../../store/selectors/PersistentStorageSelectors'; -import { connectToRedux } from '../../utils/ReduxConnect'; - -function TenantBox({ - tenant = {}, - setTenant, - showTenantSelection, - toggleTenantSelection, -}) { - const [tenantName, setTenantName] = useState(tenant.name); - - const findTenant = () => { - if (!tenantName) { - setTenant({}); - toggleTenantSelection(); - return; - } - - getTenant(tenantName).then(({ success, ...data }) => { - if (!success) { - Alert.alert( - i18n.t('AbpUi::Error'), - i18n.t('AbpUiMultiTenancy::GivenTenantIsNotAvailable', { - 0: tenantName, - }), - [{ text: i18n.t('AbpUi::Ok') }] - ); - return; - } - setTenant(data); - toggleTenantSelection(); - }); - }; - - return ( - <> - - - - {i18n.t('AbpUiMultiTenancy::Tenant')} - - - {tenant.name - ? tenant.name - : i18n.t('AbpUiMultiTenancy::NotSelected')} - - - - - {showTenantSelection ? ( - - - - {i18n.t('AbpUiMultiTenancy::Name')} - - - - - {i18n.t('AbpUiMultiTenancy::SwitchTenantHint')} - - - - - - - ) : null} - - ); -} - -TenantBox.propTypes = { - setTenant: PropTypes.func.isRequired, - showTenantSelection: PropTypes.bool.isRequired, - toggleTenantSelection: PropTypes.func.isRequired, - tenant: PropTypes.object.isRequired, -}; - -const styles = StyleSheet.create({ - button: { marginTop: 20, width: '49%' }, - - tenant: { color: '#777' }, - title: { - marginRight: 10, - fontSize: 13, - fontWeight: '600', - textTransform: 'uppercase', - }, - hint: { color: '#bbb', textAlign: 'left' }, -}); - -const Forwarded = forwardRef((props, ref) => ( - -)); - -export default connectToRedux({ - component: Forwarded, - dispatchProps: { - setTenant: PersistentStorageActions.setTenant, - }, - stateProps: (state) => ({ - tenant: createTenantSelector()(state), - }), -}); \ No newline at end of file diff --git a/templates/app/react-native/src/components/ValidationMessage/ValidationMessage.js b/templates/app/react-native/src/components/ValidationMessage/ValidationMessage.js deleted file mode 100644 index c2a398f379..0000000000 --- a/templates/app/react-native/src/components/ValidationMessage/ValidationMessage.js +++ /dev/null @@ -1,16 +0,0 @@ -import i18n from 'i18n-js'; -import React, { forwardRef } from 'react'; -import { Text } from 'react-native'; - -const ValidationMessage = ({ children, ...props }) => - children ? {i18n.t(children)} : null; - -const styles = { - fontSize: 12, - marginTop: 3, - color: '#ed2f2f', -}; - -const Forwarded = forwardRef((props, ref) => ); - -export default Forwarded diff --git a/templates/app/react-native/src/contexts/LocalizationContext.js b/templates/app/react-native/src/contexts/LocalizationContext.js deleted file mode 100644 index 83c68ba2bc..0000000000 --- a/templates/app/react-native/src/contexts/LocalizationContext.js +++ /dev/null @@ -1,3 +0,0 @@ -import React from 'react'; - -export const LocalizationContext = React.createContext(); diff --git a/templates/app/react-native/src/hocs/PermissionHOC.js b/templates/app/react-native/src/hocs/PermissionHOC.js deleted file mode 100644 index 6cf8025428..0000000000 --- a/templates/app/react-native/src/hocs/PermissionHOC.js +++ /dev/null @@ -1,17 +0,0 @@ -import React, { forwardRef } from 'react'; -import PropTypes from 'prop-types'; -import { usePermission } from '../hooks/UsePermission'; - -export function withPermission(Component, policyKey) { - const Forwarded = forwardRef((props, ref) => { - const isGranted = - policyKey || props.policyKey ? usePermission(policyKey || props.policyKey) : true; - return isGranted ? : null; - }); - - Forwarded.propTypes = { - policyKey: PropTypes.string, - }; - - return Forwarded; -} diff --git a/templates/app/react-native/src/hooks/UsePermission.js b/templates/app/react-native/src/hooks/UsePermission.js deleted file mode 100644 index a50d8f7fa1..0000000000 --- a/templates/app/react-native/src/hooks/UsePermission.js +++ /dev/null @@ -1,16 +0,0 @@ -import { useEffect, useState } from 'react'; -import { store } from '../store'; -import { createGrantedPolicySelector } from '../store/selectors/AppSelectors'; - -export function usePermission(key) { - const [permission, setPermission] = useState(false); - - const state = store.getState(); - const policy = createGrantedPolicySelector(key)(state); - - useEffect(() => { - setPermission(policy); - }, [policy]); - - return permission; -} diff --git a/templates/app/react-native/src/interceptors/APIInterceptor.js b/templates/app/react-native/src/interceptors/APIInterceptor.js deleted file mode 100644 index b5ffc56a3c..0000000000 --- a/templates/app/react-native/src/interceptors/APIInterceptor.js +++ /dev/null @@ -1,100 +0,0 @@ -import i18n from 'i18n-js'; -import { Toast } from 'native-base'; -import api from '../api/API'; -import LoadingActions from '../store/actions/LoadingActions'; -import PersistentStorageActions from '../store/actions/PersistentStorageActions'; - -export function initAPIInterceptor(store) { - api.interceptors.request.use( - async request => { - const { - persistentStorage: { token, language, tenant }, - } = store.getState(); - - if (!request.headers.Authorization && token && token.access_token) { - request.headers.Authorization = `${token.token_type} ${token.access_token}`; - } - - if (!request.headers['Content-Type']) { - request.headers['Content-Type'] = 'application/json'; - } - - if (!request.headers['Accept-Language'] && language) { - request.headers['Accept-Language'] = language; - } - - if (!request.headers.__tenant && tenant && tenant.tenantId) { - request.headers.__tenant = tenant.tenantId; - } - - return request; - }, - error => console.error(error), - ); - - api.interceptors.response.use( - response => response, - error => { - store.dispatch(LoadingActions.clear()); - const errorRes = error.response; - if (errorRes) { - if (errorRes.headers._abperrorformat && errorRes.status === 401) { - store.dispatch(PersistentStorageActions.setToken({})); - } - - showError({ error: errorRes.data.error || {}, status: errorRes.status }); - } else { - Toast.show({ - title: 'An unexpected error has occurred', - isClosable: true, - duration: 10000, - backgroundColor: 'danger.500', - }); - } - - return Promise.reject(error); - }, - ); -} - -function showError({ error = {}, status }) { - let message = ''; - let title = i18n.t('AbpAccount::DefaultErrorMessage'); - - if (typeof error === 'string') { - message = error; - } else if (error.details) { - message = error.details; - title = error.message; - } else if (error.message) { - message = error.message; - } else { - switch (status) { - case 401: - title = i18n.t('AbpAccount::DefaultErrorMessage401'); - message = i18n.t('AbpAccount::DefaultErrorMessage401Detail'); - break; - case 403: - title = i18n.t('AbpAccount::DefaultErrorMessage403'); - message = i18n.t('AbpAccount::DefaultErrorMessage403Detail'); - break; - case 404: - title = i18n.t('AbpAccount::DefaultErrorMessage404'); - message = i18n.t('AbpAccount::DefaultErrorMessage404Detail'); - break; - case 500: - title = i18n.t('AbpAccount::500Message'); - message = i18n.t('AbpAccount::InternalServerErrorMessage'); - break; - default: - break; - } - } - - Toast.show({ - title: `${title}\n${message}`, - isClosable: true, - duration: 10000, - backgroundColor: 'danger.500', - }); -} diff --git a/templates/app/react-native/src/navigators/AuthNavigator.js b/templates/app/react-native/src/navigators/AuthNavigator.js deleted file mode 100644 index 0311556deb..0000000000 --- a/templates/app/react-native/src/navigators/AuthNavigator.js +++ /dev/null @@ -1,22 +0,0 @@ -import { createNativeStackNavigator } from '@react-navigation/native-stack'; -import React, { useContext } from 'react'; -import { LocalizationContext } from '../contexts/LocalizationContext'; -import LoginScreen from '../screens/Login/LoginScreen'; - -const Stack = createNativeStackNavigator(); - -export default function AuthNavigator() { - const {t} = useContext(LocalizationContext); - - return ( - - ({ - title: t('AbpAccount::Login'), - })} - /> - - ); -} diff --git a/templates/app/react-native/src/navigators/DrawerNavigator.js b/templates/app/react-native/src/navigators/DrawerNavigator.js deleted file mode 100644 index 3cd83c8a13..0000000000 --- a/templates/app/react-native/src/navigators/DrawerNavigator.js +++ /dev/null @@ -1,43 +0,0 @@ -import { createDrawerNavigator } from '@react-navigation/drawer'; -import React from 'react'; -import DrawerContent from '../components/DrawerContent/DrawerContent'; -import HamburgerIcon from '../components/HamburgerIcon/HamburgerIcon'; -import { LocalizationContext } from '../contexts/LocalizationContext'; -import HomeStackNavigator from './HomeNavigator'; -import SettingsStackNavigator from './SettingsNavigator'; -import TenantsStackNavigator from './TenantsNavigator'; -import UsersStackNavigator from './UsersNavigator'; - -const Drawer = createDrawerNavigator(); - -export default function DrawerNavigator() { - const { t } = React.useContext(LocalizationContext); - - return ( - - ({ - title: t('::Menu:Home'), - headerLeft: () => , - })} - /> - null }} - /> - null }} - /> - null }} - /> - - ); -} diff --git a/templates/app/react-native/src/navigators/HomeNavigator.js b/templates/app/react-native/src/navigators/HomeNavigator.js deleted file mode 100644 index 8f9e588edd..0000000000 --- a/templates/app/react-native/src/navigators/HomeNavigator.js +++ /dev/null @@ -1,17 +0,0 @@ -import { createNativeStackNavigator } from '@react-navigation/native-stack'; -import React from 'react'; -import HomeScreen from '../screens/Home/HomeScreen'; - -const Stack = createNativeStackNavigator(); - -export default function HomeStackNavigator() { - return ( - - null}} - /> - - ); -} diff --git a/templates/app/react-native/src/navigators/SettingsNavigator.js b/templates/app/react-native/src/navigators/SettingsNavigator.js deleted file mode 100644 index 370da97b93..0000000000 --- a/templates/app/react-native/src/navigators/SettingsNavigator.js +++ /dev/null @@ -1,41 +0,0 @@ -import { createNativeStackNavigator } from '@react-navigation/native-stack'; -import i18n from 'i18n-js'; -import React from 'react'; -import HamburgerIcon from '../components/HamburgerIcon/HamburgerIcon'; -import { LocalizationContext } from '../contexts/LocalizationContext'; -import ChangePasswordScreen from '../screens/ChangePassword/ChangePasswordScreen'; -import ManageProfileScreen from '../screens/ManageProfile/ManageProfileScreen'; -import SettingsScreen from '../screens/Settings/SettingsScreen'; - -const Stack = createNativeStackNavigator(); - -export default function SettingsStackNavigator() { - const { t } = React.useContext(LocalizationContext); - - return ( - - ({ - headerLeft: () => , - title: t('AbpSettingManagement::Settings'), - })} - /> - - - - ); -} diff --git a/templates/app/react-native/src/navigators/TenantsNavigator.js b/templates/app/react-native/src/navigators/TenantsNavigator.js deleted file mode 100644 index 94ae711d42..0000000000 --- a/templates/app/react-native/src/navigators/TenantsNavigator.js +++ /dev/null @@ -1,35 +0,0 @@ - -import { createNativeStackNavigator } from '@react-navigation/native-stack'; -import React from 'react'; -import AddIcon from '../components/AddIcon/AddIcon'; -import HamburgerIcon from '../components/HamburgerIcon/HamburgerIcon'; -import { LocalizationContext } from '../contexts/LocalizationContext'; -import CreateUpdateTenantScreen from '../screens/CreateUpdateTenant/CreateUpdateTenantScreen'; -import TenantsScreen from '../screens/Tenants/TenantsScreen'; - -const Stack = createNativeStackNavigator(); - -export default function TenantsStackNavigator() { - const { t } = React.useContext(LocalizationContext); - - return ( - - ({ - title: t('AbpTenantManagement::Tenants'), - headerLeft: () => , - headerRight: () => navigation.navigate('CreateUpdateTenant')}/>, - })} - /> - ({ - title: t(route.params?.tenantId ? 'AbpTenantManagement::Edit' : 'AbpTenantManagement::NewTenant'), - })} - /> - - ); -} diff --git a/templates/app/react-native/src/navigators/UsersNavigator.js b/templates/app/react-native/src/navigators/UsersNavigator.js deleted file mode 100644 index 537129be14..0000000000 --- a/templates/app/react-native/src/navigators/UsersNavigator.js +++ /dev/null @@ -1,34 +0,0 @@ -import { createNativeStackNavigator } from '@react-navigation/native-stack'; -import React from 'react'; -import AddIcon from '../components/AddIcon/AddIcon'; -import HamburgerIcon from '../components/HamburgerIcon/HamburgerIcon'; -import { LocalizationContext } from '../contexts/LocalizationContext'; -import CreateUpdateUserScreen from '../screens/CreateUpdateUser/CreateUpdateUserScreen'; -import UsersScreen from '../screens/Users/UsersScreen'; - -const Stack = createNativeStackNavigator(); - -export default function UsersStackNavigator() { - const { t } = React.useContext(LocalizationContext); - - return ( - - ({ - title: t('AbpIdentity::Users'), - headerLeft: () => , - headerRight: () => navigation.navigate('CreateUpdateUser')}/>, - })} - /> - ({ - title: t(route.params?.userId ? 'AbpIdentity::Edit' : 'AbpIdentity::NewUser'), - })} - /> - - ); -} diff --git a/templates/app/react-native/src/screens/ChangePassword/ChangePasswordForm.js b/templates/app/react-native/src/screens/ChangePassword/ChangePasswordForm.js deleted file mode 100644 index 8621d00a99..0000000000 --- a/templates/app/react-native/src/screens/ChangePassword/ChangePasswordForm.js +++ /dev/null @@ -1,121 +0,0 @@ -import { useFormik } from 'formik'; -import i18n from 'i18n-js'; -import { - Box, - FormControl, - Input, - KeyboardAvoidingView, - Stack, - Icon -} from 'native-base'; -import PropTypes from 'prop-types'; -import React, { useRef, useState } from 'react'; -import * as Yup from 'yup'; -import { FormButtons } from '../../components/FormButtons'; -import ValidationMessage from '../../components/ValidationMessage/ValidationMessage'; -import { Ionicons } from '@expo/vector-icons'; - -const ValidationSchema = Yup.object().shape({ - currentPassword: Yup.string().required('AbpAccount::ThisFieldIsRequired.'), - newPassword: Yup.string().required('AbpAccount::ThisFieldIsRequired.'), -}); - -function ChangePasswordForm({ submit, cancel }) { - const [showCurrentPassword, setShowCurrentPassword] = useState(false); - const [showNewPassword, setShowNewPassword] = useState(false); - - const currentPasswordRef = useRef(); - const newPasswordRef = useRef(); - - const onSubmit = (values) => { - submit({ - ...values, - newPasswordConfirm: values.newPassword, - }); - }; - - const formik = useFormik({ - enableReinitialize: true, - validationSchema: ValidationSchema, - initialValues: { - currentPassword: '', - newPassword: '', - }, - onSubmit, - }); - - return ( - <> - - - - - {i18n.t('AbpIdentity::DisplayName:CurrentPassword')} - - newPasswordRef?.current?.focus()} - returnKeyType="next" - onChangeText={formik.handleChange('currentPassword')} - onBlur={formik.handleBlur('currentPassword')} - value={formik.values.currentPassword} - textContentType="password" - secureTextEntry={!showCurrentPassword} - InputRightElement={ - setShowCurrentPassword(!showCurrentPassword)} - /> - } - /> - - {formik.errors.currentPassword} - - - - - - - - {i18n.t('AbpIdentity::DisplayName:NewPassword')} - - setShowNewPassword(!showNewPassword)} - /> - } - /> - {formik.errors.newPassword} - - - - - - ); -} - -ChangePasswordForm.propTypes = { - submit: PropTypes.func.isRequired, - cancel: PropTypes.func.isRequired, -}; - -export default ChangePasswordForm; diff --git a/templates/app/react-native/src/screens/ChangePassword/ChangePasswordScreen.js b/templates/app/react-native/src/screens/ChangePassword/ChangePasswordScreen.js deleted file mode 100644 index 196c762a38..0000000000 --- a/templates/app/react-native/src/screens/ChangePassword/ChangePasswordScreen.js +++ /dev/null @@ -1,33 +0,0 @@ -import React from 'react'; -import PropTypes from 'prop-types'; -import { changePassword } from '../../api/IdentityAPI'; -import LoadingActions from '../../store/actions/LoadingActions'; -import { connectToRedux } from '../../utils/ReduxConnect'; -import ChangePasswordForm from './ChangePasswordForm'; - -function ChangePasswordScreen({ navigation, startLoading, stopLoading }) { - const submit = data => { - startLoading({ key: 'changePassword' }); - - changePassword(data) - .then(() => { - navigation.goBack(); - }) - .finally(() => stopLoading({ key: 'changePassword' })); - }; - - return navigation.goBack()} />; -} - -ChangePasswordScreen.propTypes = { - startLoading: PropTypes.func.isRequired, - stopLoading: PropTypes.func.isRequired, -}; - -export default connectToRedux({ - component: ChangePasswordScreen, - dispatchProps: { - startLoading: LoadingActions.start, - stopLoading: LoadingActions.stop, - }, -}); diff --git a/templates/app/react-native/src/screens/CreateUpdateTenant/CreateUpdateTenantForm.js b/templates/app/react-native/src/screens/CreateUpdateTenant/CreateUpdateTenantForm.js deleted file mode 100644 index b76f356062..0000000000 --- a/templates/app/react-native/src/screens/CreateUpdateTenant/CreateUpdateTenantForm.js +++ /dev/null @@ -1,144 +0,0 @@ -import { Ionicons } from '@expo/vector-icons'; -import { useFormik } from 'formik'; -import i18n from 'i18n-js'; -import { Box, FormControl, Icon, Input, Stack } from 'native-base'; -import PropTypes from 'prop-types'; -import React, { useRef, useState } from 'react'; -import * as Yup from 'yup'; -import { FormButtons } from '../../components/FormButtons'; -import ValidationMessage from '../../components/ValidationMessage/ValidationMessage'; -import { usePermission } from '../../hooks/UsePermission'; - -const validations = { - name: Yup.string().required('AbpAccount::ThisFieldIsRequired.'), -}; - -function CreateUpdateTenantForm({ editingTenant = {}, submit, remove }) { - const tenantNameRef = useRef(); - const adminEmailRef = useRef(); - const adminPasswordRef = useRef(); - - const [showAdminPassword, setShowAdminPassword] = useState(false); - const hasRemovePermission = usePermission('AbpTenantManagement.Tenants.Delete'); - - const adminEmailAddressValidation = Yup.lazy(() => - Yup.string() - .required('AbpAccount::ThisFieldIsRequired.') - .email('AbpAccount::ThisFieldIsNotAValidEmailAddress.'), - ); - - const adminPasswordValidation = Yup.lazy(() => - Yup.string().required('AbpAccount::ThisFieldIsRequired.'), - ); - - const onSubmit = values => { - submit({ - ...editingTenant, - ...values, - }); - }; - - const formik = useFormik({ - enableReinitialize: true, - validationSchema: Yup.object().shape({ - ...validations, - ...(!editingTenant.id && { - adminEmailAddress: adminEmailAddressValidation, - adminPassword: adminPasswordValidation, - }), - }), - initialValues: { - lockoutEnabled: false, - twoFactorEnabled: false, - ...editingTenant, - }, - onSubmit, - }); - - return ( - <> - - - - {i18n.t('AbpTenantManagement::TenantName')} - - {formik.errors.name} - - - - {!editingTenant.id ? ( - <> - - - - {i18n.t('AbpTenantManagement::DisplayName:AdminEmailAddress')} - - adminPasswordRef?.current?.focus()} - returnKeyType="next" - /> - {formik.errors.adminEmailAddress} - - - - - - - {i18n.t('AbpTenantManagement::DisplayName:AdminPassword')} - - setShowAdminPassword(!showAdminPassword)} - /> - } - /> - {formik.errors.adminPassword} - - - - ) : null} - - - - ); -} - -CreateUpdateTenantForm.propTypes = { - editingTenant: PropTypes.object, - submit: PropTypes.func.isRequired, - remove: PropTypes.func.isRequired, -}; - -export default CreateUpdateTenantForm; diff --git a/templates/app/react-native/src/screens/CreateUpdateTenant/CreateUpdateTenantScreen.js b/templates/app/react-native/src/screens/CreateUpdateTenant/CreateUpdateTenantScreen.js deleted file mode 100644 index a3f59a8cf7..0000000000 --- a/templates/app/react-native/src/screens/CreateUpdateTenant/CreateUpdateTenantScreen.js +++ /dev/null @@ -1,81 +0,0 @@ -import { useFocusEffect } from '@react-navigation/native'; -import PropTypes from 'prop-types'; -import React, { useCallback, useState } from 'react'; -import { - createTenant, - getTenantById, - removeTenant, - updateTenant -} from '../../api/TenantManagementAPI'; -import LoadingActions from '../../store/actions/LoadingActions'; -import { createLoadingSelector } from '../../store/selectors/LoadingSelectors'; -import { connectToRedux } from '../../utils/ReduxConnect'; -import CreateUpdateTenantForm from './CreateUpdateTenantForm'; - -function CreateUpdateTenantScreen({ navigation, route, startLoading, stopLoading }) { - const [tenant, setTenant] = useState(); - const tenantId = route.params?.tenantId; - - const remove = () => { - startLoading({ key: 'removeTenant' }); - removeTenant(tenantId) - .then(() => navigation.goBack()) - .finally(() => stopLoading({ key: 'removeTenant' })); - }; - - useFocusEffect( - useCallback(() => { - if (tenantId) { - getTenantById(tenantId).then((data = {}) => setTenant(data)); - } - }, []), - ); - - const submit = data => { - startLoading({ key: 'saveTenant' }); - let request; - if (data.id) { - request = updateTenant(data, tenantId); - } else { - request = createTenant(data); - } - - request - .then(() => { - navigation.goBack(); - }) - .finally(() => stopLoading({ key: 'saveTenant' })); - }; - - const renderForm = () => ( - - ); - - if (tenantId && tenant) { - return renderForm(); - } - - if (!tenantId) { - return renderForm(); - } - - return null; -} - -CreateUpdateTenantScreen.propTypes = { - startLoading: PropTypes.func.isRequired, - stopLoading: PropTypes.func.isRequired, -}; - -export default connectToRedux({ - component: CreateUpdateTenantScreen, - stateProps: state => ({ loading: createLoadingSelector()(state) }), - dispatchProps: { - startLoading: LoadingActions.start, - stopLoading: LoadingActions.stop, - }, -}); diff --git a/templates/app/react-native/src/screens/CreateUpdateUser/CreateUpdateUserForm.js b/templates/app/react-native/src/screens/CreateUpdateUser/CreateUpdateUserForm.js deleted file mode 100644 index bb394232ba..0000000000 --- a/templates/app/react-native/src/screens/CreateUpdateUser/CreateUpdateUserForm.js +++ /dev/null @@ -1,272 +0,0 @@ -import { Ionicons } from '@expo/vector-icons'; -import { useFormik } from 'formik'; -import i18n from 'i18n-js'; -import { - Box, - Button, - Checkbox, - FormControl, - Icon, - Input, - KeyboardAvoidingView, - Stack -} from 'native-base'; -import PropTypes from 'prop-types'; -import React, { useRef, useState } from 'react'; -import { Platform } from 'react-native'; -import * as Yup from 'yup'; -import { FormButtons } from '../../components/FormButtons'; -import ValidationMessage from '../../components/ValidationMessage/ValidationMessage'; -import { usePermission } from '../../hooks/UsePermission'; -import UserRoles from './UserRoles'; - -const validations = { - userName: Yup.string().required('AbpAccount::ThisFieldIsRequired.'), - email: Yup.string() - .email('AbpAccount::ThisFieldIsNotAValidEmailAddress.') - .required('AbpAccount::ThisFieldIsRequired.'), -}; - -let roleNames = []; - -function onChangeRoles(roles) { - roleNames = roles; -} - -function CreateUpdateUserForm({ editingUser = {}, submit, remove }) { - const [selectedTab, setSelectedTab] = useState(0); - const [showPassword, setShowPassword] = useState(false); - - const usernameRef = useRef(); - const nameRef = useRef(); - const surnameRef = useRef(); - const emailRef = useRef(); - const phoneNumberRef = useRef(); - const passwordRef = useRef(); - - const hasRemovePermission = usePermission('AbpIdentity.Users.Delete'); - - const onSubmit = (values) => { - submit({ - ...editingUser, - ...values, - roleNames, - }); - }; - - const passwordValidation = Yup.lazy(() => { - if (editingUser.id) { - return Yup.string(); - } - return Yup.string().required('AbpAccount::ThisFieldIsRequired.'); - }); - - const formik = useFormik({ - enableReinitialize: true, - validationSchema: Yup.object().shape({ - ...validations, - password: passwordValidation, - }), - initialValues: { - lockoutEnabled: false, - ...editingUser, - }, - onSubmit, - }); - - return ( - <> - - - - - - - - {selectedTab === 0 ? ( - <> - - - - {i18n.t('AbpIdentity::UserName')} - - nameRef.current.focus()} - returnKeyType="next" - onChangeText={formik.handleChange('userName')} - onBlur={formik.handleBlur('userName')} - value={formik.values.userName} - autoCapitalize="none" - /> - - {formik.errors.userName} - - - - - - - - {i18n.t('AbpIdentity::DisplayName:Name')} - - surnameRef.current.focus()} - returnKeyType="next" - onChangeText={formik.handleChange('name')} - onBlur={formik.handleBlur('name')} - value={formik.values.name} - /> - - - - - - - {i18n.t('AbpIdentity::DisplayName:Surname')} - - emailRef.current.focus()} - returnKeyType="next" - onChangeText={formik.handleChange('surname')} - onBlur={formik.handleBlur('surname')} - value={formik.values.surname} - /> - - - - - - - {i18n.t('AbpIdentity::EmailAddress')} - - phoneNumberRef.current.focus()} - returnKeyType="next" - onChangeText={formik.handleChange('email')} - onBlur={formik.handleBlur('email')} - value={formik.values.email} - autoCapitalize="none" - /> - {formik.errors.email} - - - - - - - {i18n.t('AbpIdentity::PhoneNumber')} - - passwordRef?.current?.focus()} - returnKeyType={!editingUser.id ? 'next' : 'default'} - onChangeText={formik.handleChange('phoneNumber')} - onBlur={formik.handleBlur('phoneNumber')} - value={formik.values.phoneNumber} - /> - - - - {!editingUser.id ? ( - - - - {i18n.t('AbpIdentity::Password')} - - setShowPassword(!showPassword)} - /> - } - /> - - {formik.errors.password} - - - - ) : null} - - - - - formik.setFieldValue( - 'lockoutEnabled', - !formik.values.lockoutEnabled - ) - } - > - {i18n.t('AbpIdentity::DisplayName:LockoutEnabled')} - - - - - ) : ( - - )} - - - - - ); -} - -CreateUpdateUserForm.propTypes = { - editingUser: PropTypes.object, - submit: PropTypes.func.isRequired, - remove: PropTypes.func.isRequired, -}; - -export default CreateUpdateUserForm; diff --git a/templates/app/react-native/src/screens/CreateUpdateUser/CreateUpdateUserScreen.js b/templates/app/react-native/src/screens/CreateUpdateUser/CreateUpdateUserScreen.js deleted file mode 100644 index e900fde8fc..0000000000 --- a/templates/app/react-native/src/screens/CreateUpdateUser/CreateUpdateUserScreen.js +++ /dev/null @@ -1,69 +0,0 @@ -import PropTypes from 'prop-types'; -import React, { useEffect, useState } from 'react'; -import { createUser, getUserById, removeUser, updateUser } from '../../api/IdentityAPI'; -import LoadingActions from '../../store/actions/LoadingActions'; -import { createLoadingSelector } from '../../store/selectors/LoadingSelectors'; -import { connectToRedux } from '../../utils/ReduxConnect'; -import CreateUpdateUserForm from './CreateUpdateUserForm'; - -function CreateUpdateUserScreen({ navigation, route, startLoading, stopLoading }) { - const [user, setUser] = useState(); - const userId = route.params?.userId; - - const remove = () => { - startLoading({ key: 'remove user' }); - removeUser(userId) - .then(() => navigation.goBack()) - .finally(() => stopLoading({ key: 'remove user' })); - }; - - useEffect(() => { - if (userId) { - getUserById(userId).then((data = {}) => setUser(data)); - } - }, []); - - const submit = data => { - startLoading({ key: 'saveUser' }); - let request; - if (data.id) { - request = updateUser(data, userId); - } else { - request = createUser(data); - } - - request - .then(() => { - navigation.goBack(); - }) - .finally(() => stopLoading({ key: 'saveUser' })); - }; - - const renderForm = () => ( - - ); - - if (userId && user) { - return renderForm(); - } - - if (!userId) { - return renderForm(); - } - - return null; -} - -CreateUpdateUserScreen.propTypes = { - startLoading: PropTypes.func.isRequired, - stopLoading: PropTypes.func.isRequired, -}; - -export default connectToRedux({ - component: CreateUpdateUserScreen, - stateProps: state => ({ loading: createLoadingSelector()(state) }), - dispatchProps: { - startLoading: LoadingActions.start, - stopLoading: LoadingActions.stop, - }, -}); diff --git a/templates/app/react-native/src/screens/CreateUpdateUser/UserRoles.js b/templates/app/react-native/src/screens/CreateUpdateUser/UserRoles.js deleted file mode 100644 index 25db76afee..0000000000 --- a/templates/app/react-native/src/screens/CreateUpdateUser/UserRoles.js +++ /dev/null @@ -1,58 +0,0 @@ -import { Box, Checkbox, List } from 'native-base'; -import PropTypes from 'prop-types'; -import React, { useEffect, useState } from 'react'; -import { getAllRoles, getUserRoles } from '../../api/IdentityAPI'; - -function UserRoles({ editingUser = {}, onChangeRoles }) { - const [roles, setRoles] = useState([]); - - const onPress = index => { - setRoles( - roles.map((role, i) => ({ - ...role, - isSelected: index === i ? !role.isSelected : role.isSelected, - })), - ); - }; - - useEffect(() => { - const requests = [getAllRoles()]; - if (editingUser.id) requests.push(getUserRoles(editingUser.id)); - - Promise.all(requests).then(([allRoles = [], userRoles = []]) => { - setRoles( - allRoles.map(role => ({ - ...role, - isSelected: editingUser.id - ? !!userRoles?.find(userRole => userRole?.id === role?.id) - : role.isDefault, - })), - ); - }); - }, []); - - useEffect(() => { - onChangeRoles(roles.filter(role => role.isSelected).map(role => role.name)); - }, [roles]); - - return ( - - - {roles.map((role, index) => ( - - onPress(index)} > - {role.name} - - - ))} - - - ); -} - -UserRoles.propTypes = { - editingUser: PropTypes.objectOf(PropTypes.any).isRequired, - onChangeRoles: PropTypes.func.isRequired, -}; - -export default UserRoles; diff --git a/templates/app/react-native/src/screens/Home/HomeScreen.js b/templates/app/react-native/src/screens/Home/HomeScreen.js deleted file mode 100644 index 82ca221e2d..0000000000 --- a/templates/app/react-native/src/screens/Home/HomeScreen.js +++ /dev/null @@ -1,30 +0,0 @@ -import i18n from 'i18n-js'; -import { Box, Center, Heading, Text } from 'native-base'; -import React from 'react'; -import { StyleSheet } from 'react-native'; - -function HomeScreen() { - return ( -
- - {i18n.t('::Welcome')} - - {i18n.t('::LongWelcomeMessage')} - - -
- ); -} - -const styles = StyleSheet.create({ - centeredText: { - textAlign: 'center', - marginBottom: 5 - }, -}); - -export default HomeScreen; diff --git a/templates/app/react-native/src/screens/Login/LoginScreen.js b/templates/app/react-native/src/screens/Login/LoginScreen.js deleted file mode 100644 index acb72076fa..0000000000 --- a/templates/app/react-native/src/screens/Login/LoginScreen.js +++ /dev/null @@ -1,154 +0,0 @@ -import { useFormik } from 'formik'; -import i18n from 'i18n-js'; -import { - Box, - Button, - Center, - FormControl, Image, Input, - Stack, - WarningOutlineIcon -} from 'native-base'; -import PropTypes from 'prop-types'; -import React, { useRef, useState } from 'react'; -import { View } from 'react-native'; -import { object, string } from 'yup'; -import { login } from '../../api/AccountAPI'; -import TenantBox from '../../components/TenantBox/TenantBox'; -import ValidationMessage from '../../components/ValidationMessage/ValidationMessage'; -import AppActions from '../../store/actions/AppActions'; -import LoadingActions from '../../store/actions/LoadingActions'; -import PersistentStorageActions from '../../store/actions/PersistentStorageActions'; -import { connectToRedux } from '../../utils/ReduxConnect'; - -const ValidationSchema = object().shape({ - username: string().required('AbpAccount::ThisFieldIsRequired.'), - password: string().required('AbpAccount::ThisFieldIsRequired.'), -}); - -function LoginScreen({ startLoading, stopLoading, setToken, fetchAppConfig }) { - const [showTenantSelection, setShowTenantSelection] = useState(false); - const passwordRef = useRef(null); - - const toggleTenantSelection = () => { - setShowTenantSelection(!showTenantSelection); - }; - - const submit = ({ username, password }) => { - startLoading({ key: 'login' }); - login({ username, password }) - .then((data) => - setToken({ - ...data, - expire_time: new Date().valueOf() + data.expires_in, - scope: undefined, - }) - ) - .then( - () => - new Promise((resolve) => - fetchAppConfig({ - showLoading: false, - callback: () => resolve(true), - }) - ) - ) - .finally(() => stopLoading({ key: 'login' })); - }; - - const formik = useFormik({ - validationSchema: ValidationSchema, - initialValues: { username: '', password: '' }, - onSubmit: submit, - }); - - return ( -
- - Image - - - - - - - - {i18n.t('AbpAccount::UserNameOrEmailAddress')} - - passwordRef?.current?.focus()} - size="lg" - /> - {formik.errors.username} - - - - - - - {i18n.t('AbpAccount::Password')} - - - } - > - {formik.errors.password} - - - - - - - - -
- ); -} - -LoginScreen.propTypes = { - startLoading: PropTypes.func.isRequired, - stopLoading: PropTypes.func.isRequired, - setToken: PropTypes.func.isRequired, - fetchAppConfig: PropTypes.func.isRequired, -}; - -export default connectToRedux({ - component: LoginScreen, - dispatchProps: { - startLoading: LoadingActions.start, - stopLoading: LoadingActions.stop, - fetchAppConfig: AppActions.fetchAppConfigAsync, - setToken: PersistentStorageActions.setToken, - }, -}); diff --git a/templates/app/react-native/src/screens/ManageProfile/ManageProfileForm.js b/templates/app/react-native/src/screens/ManageProfile/ManageProfileForm.js deleted file mode 100644 index 2dffd3624b..0000000000 --- a/templates/app/react-native/src/screens/ManageProfile/ManageProfileForm.js +++ /dev/null @@ -1,153 +0,0 @@ -import { useFormik } from 'formik'; -import i18n from 'i18n-js'; -import { - Box, - FormControl, - Input, - KeyboardAvoidingView, - Stack, -} from 'native-base'; -import PropTypes from 'prop-types'; -import React, { useRef } from 'react'; -import * as Yup from 'yup'; -import FormButtons from '../../components/FormButtons/FormButtons'; -import ValidationMessage from '../../components/ValidationMessage/ValidationMessage'; - -const ValidationSchema = Yup.object().shape({ - userName: Yup.string().required('AbpAccount::ThisFieldIsRequired.'), - email: Yup.string() - .required('AbpAccount::ThisFieldIsRequired.') - .email('AbpAccount::ThisFieldIsNotAValidEmailAddress.'), -}); - -function ManageProfileForm({ editingUser = {}, submit, cancel }) { - const usernameRef = useRef(); - const nameRef = useRef(); - const surnameRef = useRef(); - const emailRef = useRef(); - const phoneNumberRef = useRef(); - - const onSubmit = (values) => { - submit({ - ...editingUser, - ...values, - }); - }; - - const formik = useFormik({ - enableReinitialize: true, - validationSchema: ValidationSchema, - initialValues: { - ...editingUser, - }, - onSubmit, - }); - - return ( - <> - - - - - - {i18n.t('AbpIdentity::UserName')} - - nameRef?.current?.focus()} - returnKeyType="next" - onChangeText={formik.handleChange('userName')} - onBlur={formik.handleBlur('userName')} - value={formik.values.userName} - /> - {formik.errors.userName} - - - - - - - {i18n.t('AbpIdentity::DisplayName:Name')} - - surnameRef?.current?.focus()} - returnKeyType="next" - onChangeText={formik.handleChange('name')} - onBlur={formik.handleBlur('name')} - value={formik.values.name} - /> - - - - - - - {i18n.t('AbpIdentity::DisplayName:Surname')} - - phoneNumberRef?.current?.focus()} - returnKeyType="next" - onChangeText={formik.handleChange('surname')} - onBlur={formik.handleBlur('surname')} - value={formik.values.surname} - /> - - - - - - - {i18n.t('AbpIdentity::PhoneNumber')} - - emailRef?.current?.focus()} - returnKeyType="next" - onChangeText={formik.handleChange('phoneNumber')} - onBlur={formik.handleBlur('phoneNumber')} - value={formik.values.phoneNumber} - /> - - - - - - - {i18n.t('AbpIdentity::EmailAddress')} - - - {formik.errors.email} - - - - - - - ); -} - -ManageProfileForm.propTypes = { - editingUser: PropTypes.object.isRequired, - submit: PropTypes.func.isRequired, - cancel: PropTypes.func.isRequired, -}; - -export default ManageProfileForm; diff --git a/templates/app/react-native/src/screens/ManageProfile/ManageProfileScreen.js b/templates/app/react-native/src/screens/ManageProfile/ManageProfileScreen.js deleted file mode 100644 index 1f2e577a37..0000000000 --- a/templates/app/react-native/src/screens/ManageProfile/ManageProfileScreen.js +++ /dev/null @@ -1,50 +0,0 @@ -import React, { useState, useEffect } from 'react'; -import PropTypes from 'prop-types'; -import { updateProfileDetail, getProfileDetail } from '../../api/IdentityAPI'; -import ManageProfileForm from './ManageProfileForm'; -import LoadingActions from '../../store/actions/LoadingActions'; -import { connectToRedux } from '../../utils/ReduxConnect'; - -function ManageProfileScreen({ navigation, startLoading, stopLoading }) { - const [user, setUser] = useState(); - - useEffect(() => { - if (!user) { - startLoading({ key: 'manageProfile' }); - getProfileDetail() - .then((data = {}) => setUser(data)) - .finally(() => stopLoading({ key: 'manageProfile' })); - } - }); - - const submit = data => { - startLoading({ key: 'manageProfile' }); - - updateProfileDetail(data) - .then(() => { - navigation.goBack(); - }) - .finally(() => stopLoading({ key: 'manageProfile' })); - }; - - return ( - <> - {user ? ( - navigation.goBack()} /> - ) : null} - - ); -} - -ManageProfileScreen.propTypes = { - startLoading: PropTypes.func.isRequired, - stopLoading: PropTypes.func.isRequired, -}; - -export default connectToRedux({ - component: ManageProfileScreen, - dispatchProps: { - startLoading: LoadingActions.start, - stopLoading: LoadingActions.stop, - }, -}); diff --git a/templates/app/react-native/src/screens/Settings/SettingsScreen.js b/templates/app/react-native/src/screens/Settings/SettingsScreen.js deleted file mode 100644 index 58ede9cbb5..0000000000 --- a/templates/app/react-native/src/screens/Settings/SettingsScreen.js +++ /dev/null @@ -1,157 +0,0 @@ -import { Ionicons } from '@expo/vector-icons'; -import { useFocusEffect } from '@react-navigation/native'; -import i18n from 'i18n-js'; -import { - Avatar, - Button, - Divider, - FormControl, - List, - Select, - Stack, - Text, - View, -} from 'native-base'; -import PropTypes from 'prop-types'; -import React, { useCallback, useState } from 'react'; -import { getProfileDetail } from '../../api/IdentityAPI'; -import AppActions from '../../store/actions/AppActions'; -import { - createLanguageSelector, - createLanguagesSelector, -} from '../../store/selectors/AppSelectors'; -import { createTenantSelector } from '../../store/selectors/PersistentStorageSelectors'; -import { connectToRedux } from '../../utils/ReduxConnect'; -import { store } from '../../store/index'; -import { getEnvVars } from '../../../Environment'; - -const env = getEnvVars(); - -function SettingsScreen({ - navigation, - language, - languages, - setLanguageAsync, - logoutAsync, - tenant = {}, -}) { - const [user, setUser] = useState({}); - const [token, setToken] = useState(store.getState().persistentStorage.token); - - const fetchUser = () => { - getProfileDetail().then(data => { - setUser(data || {}); - }); - }; - - useFocusEffect( - useCallback(() => { - fetchUser(); - }, []), - ); - - const logout = () => { - const { clientId } = env.oAuthConfig; - const { access_token, refresh_token } = token; - - logoutAsync({ - client_id: clientId, - token: access_token, - refresh_token: refresh_token, - }); - }; - - return ( - - - navigation.navigate('ManageProfile')}> - - - - - {tenant.name ? `${tenant.name}/` : ''} - {user.userName ? `${user.userName}` : ''} - - - - - - - - navigation.navigate('ChangePassword')}> - - {i18n.t('AbpUi::ChangePassword')} - - - - - - - - - {i18n.t('AbpUi::Language')} - - - - - - - - - ); -} - -SettingsScreen.propTypes = { - setLanguageAsync: PropTypes.func.isRequired, - logoutAsync: PropTypes.func.isRequired, - language: PropTypes.object.isRequired, - languages: PropTypes.array.isRequired, - tenant: PropTypes.object.isRequired, -}; - -export default connectToRedux({ - component: SettingsScreen, - stateProps: state => ({ - languages: createLanguagesSelector()(state), - language: createLanguageSelector()(state), - tenant: createTenantSelector()(state), - }), - dispatchProps: { - setLanguageAsync: AppActions.setLanguageAsync, - logoutAsync: AppActions.logoutAsync, - }, -}); diff --git a/templates/app/react-native/src/screens/Tenants/TenantsScreen.js b/templates/app/react-native/src/screens/Tenants/TenantsScreen.js deleted file mode 100644 index da3dac53af..0000000000 --- a/templates/app/react-native/src/screens/Tenants/TenantsScreen.js +++ /dev/null @@ -1,51 +0,0 @@ -import { Box, HStack, Pressable, Text } from 'native-base'; -import React from 'react'; -import { getTenants } from '../../api/TenantManagementAPI'; -import DataList from '../../components/DataList/DataList'; -import { LocalizationContext } from '../../contexts/LocalizationContext'; - -function TenantsScreen({ navigation }) { - const { t } = React.useContext(LocalizationContext); - - return ( - - ( - navigateToCreateUpdateTenantScreen(navigation, item)} - > - - - {t('AbpTenantManagement::TenantName')}: - - {item.name} - - - - - )} - /> - - ); -} - -const navigateToCreateUpdateTenantScreen = (navigation, tenant = {}) => { - navigation.navigate('CreateUpdateTenant', { - tenantId: tenant.id, - }); -}; - -export default TenantsScreen; diff --git a/templates/app/react-native/src/screens/Users/UsersScreen.js b/templates/app/react-native/src/screens/Users/UsersScreen.js deleted file mode 100644 index b49658cb24..0000000000 --- a/templates/app/react-native/src/screens/Users/UsersScreen.js +++ /dev/null @@ -1,62 +0,0 @@ -import { Box, HStack, Pressable, Text } from 'native-base'; -import React from 'react'; -import { getUsers } from '../../api/IdentityAPI'; -import DataList from '../../components/DataList/DataList'; -import { LocalizationContext } from '../../contexts/LocalizationContext'; - -function UsersScreen({ navigation }) { - const { t } = React.useContext(LocalizationContext); - - return ( - ( - navigateToCreateUpdateUserScreen(navigation, item)} - > - - - {t('AbpIdentity::UserName')}: - - {item.userName} - - - - {t('AbpIdentity::EmailAddress')}: - - {item.email} - - - - {t('AbpIdentity::DisplayName:Name')}: - - {item.name} - - - - {t('AbpIdentity::DisplayName:Surname')}: - - {item.surname} - - - - - )} - /> - ); -} - -const navigateToCreateUpdateUserScreen = (navigation, user = {}) => { - navigation.navigate('CreateUpdateUser', { - userId: user.id, - }); -}; - -export default UsersScreen; diff --git a/templates/app/react-native/src/store/actions/AppActions.js b/templates/app/react-native/src/store/actions/AppActions.js deleted file mode 100644 index 413d923129..0000000000 --- a/templates/app/react-native/src/store/actions/AppActions.js +++ /dev/null @@ -1,26 +0,0 @@ -import { createAction } from '@reduxjs/toolkit'; - -const fetchAppConfigAsync = createAction( - 'app/fetchAppConfigAsync', - ({ callback = () => {}, showLoading = true } = {}) => ({ - payload: { callback, showLoading }, - }), -); - -const setAppConfig = createAction('app/setAppConfig'); - -const setLanguageAsync = createAction('app/setLanguageAsync'); - -const logoutAsync = createAction( - 'app/logoutAsync', - ({ client_id = '', token = '', refresh_token = '' } = {}) => ({ - payload: { client_id, token, refresh_token }, - }), -); - -export default { - fetchAppConfigAsync, - setAppConfig, - setLanguageAsync, - logoutAsync, -}; diff --git a/templates/app/react-native/src/store/actions/LoadingActions.js b/templates/app/react-native/src/store/actions/LoadingActions.js deleted file mode 100644 index 9705dc4e0f..0000000000 --- a/templates/app/react-native/src/store/actions/LoadingActions.js +++ /dev/null @@ -1,13 +0,0 @@ -import { createAction } from '@reduxjs/toolkit'; - -const start = createAction('loading/start'); - -const stop = createAction('loading/stop'); - -const clear = createAction('loading/clear'); - -export default { - start, - stop, - clear, -}; diff --git a/templates/app/react-native/src/store/actions/PersistentStorageActions.js b/templates/app/react-native/src/store/actions/PersistentStorageActions.js deleted file mode 100644 index 4b32d9ff31..0000000000 --- a/templates/app/react-native/src/store/actions/PersistentStorageActions.js +++ /dev/null @@ -1,13 +0,0 @@ -import { createAction } from '@reduxjs/toolkit'; - -const setToken = createAction('persistentStorage/setToken'); - -const setLanguage = createAction('persistentStorage/setLanguage'); - -const setTenant = createAction('persistentStorage/setTenant'); - -export default { - setToken, - setLanguage, - setTenant, -}; diff --git a/templates/app/react-native/src/store/index.js b/templates/app/react-native/src/store/index.js deleted file mode 100644 index d30a0890dd..0000000000 --- a/templates/app/react-native/src/store/index.js +++ /dev/null @@ -1,25 +0,0 @@ -import AsyncStorage from '@react-native-async-storage/async-storage'; -import { configureStore } from '@reduxjs/toolkit'; -import { persistReducer, persistStore } from 'redux-persist'; -import createSagaMiddleware from 'redux-saga'; -import rootReducer from './reducers'; -import { rootSaga } from './sagas'; - -const sagaMiddleware = createSagaMiddleware(); - -const persistConfig = { - key: 'root', - storage: AsyncStorage, - whitelist: ['persistentStorage'], -}; - -const persistedReducer = persistReducer(persistConfig, rootReducer); - -export const store = configureStore({ - reducer: persistedReducer, - middleware: [sagaMiddleware], -}); - -export const persistor = persistStore(store); - -sagaMiddleware.run(rootSaga); diff --git a/templates/app/react-native/src/store/reducers/AppReducer.js b/templates/app/react-native/src/store/reducers/AppReducer.js deleted file mode 100644 index a628f7f802..0000000000 --- a/templates/app/react-native/src/store/reducers/AppReducer.js +++ /dev/null @@ -1,12 +0,0 @@ -import { createReducer } from '@reduxjs/toolkit'; -import AppActions from '../actions/AppActions'; - -const initialState = { - appConfig: {}, -}; - -export default createReducer(initialState, builder => - builder.addCase(AppActions.setAppConfig, (state, action) => { - state.appConfig = action.payload; - }), -); diff --git a/templates/app/react-native/src/store/reducers/LoadingReducer.js b/templates/app/react-native/src/store/reducers/LoadingReducer.js deleted file mode 100644 index 99ccb14149..0000000000 --- a/templates/app/react-native/src/store/reducers/LoadingReducer.js +++ /dev/null @@ -1,23 +0,0 @@ -import { createReducer } from '@reduxjs/toolkit'; -import LoadingActions from '../actions/LoadingActions'; - -const initialState = { activeLoadings: {}, loading: false }; - -export default createReducer(initialState, builder => - builder - .addCase(LoadingActions.start, (state, action) => { - const { key, opacity } = action.payload; - return { - ...state, - actives: { ...state.activeLoadings, [key]: action }, - loading: true, - opacity, - }; - }) - .addCase(LoadingActions.stop, (state, action) => { - delete state.activeLoadings[action.payload.key]; - - state.loading = !!Object.keys(state.activeLoadings).length; - }) - .addCase(LoadingActions.clear, () => ({})), -); diff --git a/templates/app/react-native/src/store/reducers/PersistentStorageReducer.js b/templates/app/react-native/src/store/reducers/PersistentStorageReducer.js deleted file mode 100644 index d4d8f9a32b..0000000000 --- a/templates/app/react-native/src/store/reducers/PersistentStorageReducer.js +++ /dev/null @@ -1,17 +0,0 @@ -import { createReducer } from '@reduxjs/toolkit'; -import PersistentStorageActions from '../actions/PersistentStorageActions'; - -const initialState = { token: {}, language: null, tenant: {} }; - -export default createReducer(initialState, builder => - builder - .addCase(PersistentStorageActions.setToken, (state, action) => { - state.token = action.payload; - }) - .addCase(PersistentStorageActions.setLanguage, (state, action) => { - state.language = action.payload; - }) - .addCase(PersistentStorageActions.setTenant, (state, action) => { - state.tenant = action.payload; - }), -); diff --git a/templates/app/react-native/src/store/reducers/index.js b/templates/app/react-native/src/store/reducers/index.js deleted file mode 100644 index 0479999c14..0000000000 --- a/templates/app/react-native/src/store/reducers/index.js +++ /dev/null @@ -1,12 +0,0 @@ -import { combineReducers } from '@reduxjs/toolkit'; -import AppReducer from './AppReducer'; -import LoadingReducer from './LoadingReducer'; -import PersistentStorageReducer from './PersistentStorageReducer'; - -const rootReducer = combineReducers({ - loading: LoadingReducer, - app: AppReducer, - persistentStorage: PersistentStorageReducer, -}); - -export default rootReducer; diff --git a/templates/app/react-native/src/store/sagas/AppSaga.js b/templates/app/react-native/src/store/sagas/AppSaga.js deleted file mode 100644 index 8eb795a971..0000000000 --- a/templates/app/react-native/src/store/sagas/AppSaga.js +++ /dev/null @@ -1,50 +0,0 @@ -import { all, call, put, takeLatest } from 'redux-saga/effects'; -import { Logout } from '../../api/AccountAPI'; -import { getApplicationConfiguration } from '../../api/ApplicationConfigurationAPI'; -import AppActions from '../actions/AppActions'; -import LoadingActions from '../actions/LoadingActions'; -import PersistentStorageActions from '../actions/PersistentStorageActions'; - -function* fetchAppConfig({ payload: { showLoading, callback } }) { - if (showLoading) { - yield put(LoadingActions.start({ key: 'appConfig', opacity: 1 })); - } - - const data = yield call(getApplicationConfiguration); - yield put(AppActions.setAppConfig(data)); - yield put( - PersistentStorageActions.setLanguage( - data.localization.currentCulture.cultureName, - ), - ); - if (showLoading) yield put(LoadingActions.stop({ key: 'appConfig' })); - callback(); -} - -function* setLanguage(action) { - yield put(PersistentStorageActions.setLanguage(action.payload)); - yield put(AppActions.fetchAppConfigAsync()); -} - -function* logout({ payload: { client_id, token, refresh_token } }) { - const data = { client_id, token }; - - yield call(Logout, data); - - if (!!refresh_token) { - data.token = refresh_token; - data.token_type_hint = 'refresh_token'; - yield call(Logout, data); - } - - yield put(PersistentStorageActions.setToken({})); - yield put(AppActions.fetchAppConfigAsync()); -} - -export default function* () { - yield all([ - takeLatest(AppActions.setLanguageAsync.type, setLanguage), - takeLatest(AppActions.fetchAppConfigAsync.type, fetchAppConfig), - takeLatest(AppActions.logoutAsync.type, logout), - ]); -} diff --git a/templates/app/react-native/src/store/sagas/index.js b/templates/app/react-native/src/store/sagas/index.js deleted file mode 100644 index 1b56c35c2c..0000000000 --- a/templates/app/react-native/src/store/sagas/index.js +++ /dev/null @@ -1,6 +0,0 @@ -import { all, fork } from 'redux-saga/effects'; -import AppSaga from './AppSaga'; - -export function* rootSaga() { - yield all([fork(AppSaga)]); -} diff --git a/templates/app/react-native/src/store/selectors/AppSelectors.js b/templates/app/react-native/src/store/selectors/AppSelectors.js deleted file mode 100644 index 82e0000b71..0000000000 --- a/templates/app/react-native/src/store/selectors/AppSelectors.js +++ /dev/null @@ -1,19 +0,0 @@ -import { createSelector } from 'reselect'; - -const getApp = state => state.app; - -export function createAppConfigSelector() { - return createSelector([getApp], state => state.appConfig); -} - -export function createLanguageSelector() { - return createSelector([getApp], state => state?.appConfig?.localization?.currentCulture); -} - -export function createLanguagesSelector() { - return createSelector([getApp], state => state?.appConfig?.localization?.languages); -} - -export function createGrantedPolicySelector(key) { - return createSelector([getApp], state => state?.appConfig?.auth?.grantedPolicies[key] ?? false); -} diff --git a/templates/app/react-native/src/store/selectors/LoadingSelectors.js b/templates/app/react-native/src/store/selectors/LoadingSelectors.js deleted file mode 100644 index 47a798fe2c..0000000000 --- a/templates/app/react-native/src/store/selectors/LoadingSelectors.js +++ /dev/null @@ -1,11 +0,0 @@ -import { createSelector } from 'reselect'; - -const getLoading = state => state.loading; - -export function createLoadingSelector() { - return createSelector([getLoading], loading => loading.loading); -} - -export function createOpacitySelector() { - return createSelector([getLoading], loading => loading.opacity); -} diff --git a/templates/app/react-native/src/store/selectors/PersistentStorageSelectors.js b/templates/app/react-native/src/store/selectors/PersistentStorageSelectors.js deleted file mode 100644 index d5d86f8b7d..0000000000 --- a/templates/app/react-native/src/store/selectors/PersistentStorageSelectors.js +++ /dev/null @@ -1,11 +0,0 @@ -import { createSelector } from 'reselect'; - -const getPersistentStorage = state => state.persistentStorage; - -export function createTokenSelector() { - return createSelector([getPersistentStorage], persistentStorage => persistentStorage.token); -} - -export function createTenantSelector() { - return createSelector([getPersistentStorage], persistentStorage => persistentStorage.tenant); -} diff --git a/templates/app/react-native/src/utils/DateExtensions.js b/templates/app/react-native/src/utils/DateExtensions.js deleted file mode 100644 index 890a6fdfc5..0000000000 --- a/templates/app/react-native/src/utils/DateExtensions.js +++ /dev/null @@ -1,5 +0,0 @@ -export function toLocalISOString(date) { - const timezoneOffset = date.getTimezoneOffset(); - - return new Date(date.getTime() - timezoneOffset * 60000).toISOString(); -} diff --git a/templates/app/react-native/src/utils/Debounce.js b/templates/app/react-native/src/utils/Debounce.js deleted file mode 100644 index 34588c63d4..0000000000 --- a/templates/app/react-native/src/utils/Debounce.js +++ /dev/null @@ -1,14 +0,0 @@ -export function debounce(func, wait, immediate) { - let timeout; - return (...args) => { - const context = this; - const later = () => { - timeout = null; - if (!immediate) func.apply(context, args); - }; - const callNow = immediate && !timeout; - clearTimeout(timeout); - timeout = setTimeout(later, wait); - if (callNow) func.apply(context, args); - }; -} diff --git a/templates/app/react-native/src/utils/RandomColor.js b/templates/app/react-native/src/utils/RandomColor.js deleted file mode 100644 index a925d77763..0000000000 --- a/templates/app/react-native/src/utils/RandomColor.js +++ /dev/null @@ -1,12 +0,0 @@ -export function getRandomColors(count) { - const colors = []; - - for (let i = 0; i < count; i++) { - const r = ((i + 5) * (i + 5) * 474) % 255; - const g = ((i + 5) * (i + 5) * 1600) % 255; - const b = ((i + 5) * (i + 5) * 84065) % 255; - colors.push(`rgba(${r}, ${g}, ${b})`); - } - - return colors; -} diff --git a/templates/app/react-native/src/utils/ReduxConnect.js b/templates/app/react-native/src/utils/ReduxConnect.js deleted file mode 100644 index be68b186af..0000000000 --- a/templates/app/react-native/src/utils/ReduxConnect.js +++ /dev/null @@ -1,9 +0,0 @@ -import { connect } from 'react-redux'; - -export function connectToRedux({ component, stateProps = () => ({}), dispatchProps = () => ({}) }) { - const mapStateToProps = () => stateProps; - - const mapDispatchToProps = dispatchProps; - - return connect(mapStateToProps, mapDispatchToProps)(component); -} diff --git a/templates/app/react-native/src/utils/TokenUtils.js b/templates/app/react-native/src/utils/TokenUtils.js deleted file mode 100644 index ab1925061b..0000000000 --- a/templates/app/react-native/src/utils/TokenUtils.js +++ /dev/null @@ -1,7 +0,0 @@ -export function isTokenValid(token) { - if (!token || typeof token !== 'object' || !token.expire_time) return false; - - const now = new Date().valueOf(); - - return now < token.expire_time; -} diff --git a/templates/module/angular/package.json b/templates/module/angular/package.json index 13ec8b0b1b..6379a88a16 100644 --- a/templates/module/angular/package.json +++ b/templates/module/angular/package.json @@ -13,15 +13,15 @@ }, "private": true, "dependencies": { - "@abp/ng.account": "~8.3.0", - "@abp/ng.components": "~8.3.0", - "@abp/ng.core": "~8.3.0", - "@abp/ng.identity": "~8.3.0", - "@abp/ng.oauth": "~8.3.0", - "@abp/ng.setting-management": "~8.3.0", - "@abp/ng.tenant-management": "~8.3.0", - "@abp/ng.theme.basic": "~8.3.0", - "@abp/ng.theme.shared": "~8.3.0", + "@abp/ng.account": "~8.3.1", + "@abp/ng.components": "~8.3.1", + "@abp/ng.core": "~8.3.1", + "@abp/ng.identity": "~8.3.1", + "@abp/ng.oauth": "~8.3.1", + "@abp/ng.setting-management": "~8.3.1", + "@abp/ng.tenant-management": "~8.3.1", + "@abp/ng.theme.basic": "~8.3.1", + "@abp/ng.theme.shared": "~8.3.1", "@angular/animations": "~18.1.0", "@angular/common": "~18.1.0", "@angular/compiler": "~18.1.0", @@ -36,7 +36,7 @@ "zone.js": "~0.14.0" }, "devDependencies": { - "@abp/ng.schematics": "~8.3.0", + "@abp/ng.schematics": "~8.3.1", "@angular-devkit/build-angular": "~18.1.0", "@angular-eslint/builder": "~18.1.0", "@angular-eslint/eslint-plugin": "~18.1.0", diff --git a/templates/module/angular/projects/my-project-name/package.json b/templates/module/angular/projects/my-project-name/package.json index 6c95bc92b2..e3c0bec7d6 100644 --- a/templates/module/angular/projects/my-project-name/package.json +++ b/templates/module/angular/projects/my-project-name/package.json @@ -4,8 +4,8 @@ "peerDependencies": { "@angular/common": "~18.1.0", "@angular/core": "~18.1.0", - "@abp/ng.core": "~8.3.0", - "@abp/ng.theme.shared": "~8.3.0" + "@abp/ng.core": "~8.3.1", + "@abp/ng.theme.shared": "~8.3.1" }, "dependencies": { "tslib": "^2.1.0" diff --git a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.AuthServer/package.json b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.AuthServer/package.json index ace84a4cf2..580e70e3e2 100644 --- a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.AuthServer/package.json +++ b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.AuthServer/package.json @@ -3,6 +3,6 @@ "name": "my-app-authserver", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.basic": "~8.3.0" + "@abp/aspnetcore.mvc.ui.theme.basic": "~8.3.1" } } diff --git a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Blazor.Server.Host/package.json b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Blazor.Server.Host/package.json index 08805b20e8..f646ce2e1f 100644 --- a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Blazor.Server.Host/package.json +++ b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Blazor.Server.Host/package.json @@ -3,7 +3,7 @@ "name": "my-app", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.basic": "~8.3.0", - "@abp/aspnetcore.components.server.basictheme": "~8.3.0" + "@abp/aspnetcore.mvc.ui.theme.basic": "~8.3.1", + "@abp/aspnetcore.components.server.basictheme": "~8.3.1" } } diff --git a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Host/package.json b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Host/package.json index 7dad1fc3e2..a631510c85 100644 --- a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Host/package.json +++ b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Host/package.json @@ -3,6 +3,6 @@ "name": "my-app", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.basic": "~8.3.0" + "@abp/aspnetcore.mvc.ui.theme.basic": "~8.3.1" } } diff --git a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Unified/package.json b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Unified/package.json index 7dad1fc3e2..a631510c85 100644 --- a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Unified/package.json +++ b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Unified/package.json @@ -3,6 +3,6 @@ "name": "my-app", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.basic": "~8.3.0" + "@abp/aspnetcore.mvc.ui.theme.basic": "~8.3.1" } }